JavaScript 썸네일형 리스트형 Deep Copy vs Shallow Copy Deep Copy vs Shallow Copy Deep Copy(깊은 복사)와 Shallow Copy(얕은 복사)는 객체를 복사할 때 사용되는 두 가지 방식이며, 객체 내의 데이터를 어떻게 처리하는지에 따라 구분된다. Deep Copy(깊은 복사) 깊은 복사는 객체의 모든 레벨을 재귀적으로 복사한다. 객체 내부의 다른 객체나 배열 등도 새롭게 복사되어, 복사된 객체는 원본 객체와 완전히 독립적인 복제본이 된다. 이 방식을 사용하면 복사된 객체를 수정해도 원본 객체에는 영향을 주지 않고, 반대의 경우도 마찬가지이다. 깊은 복사는 복사 과정이 상대적으로 느리고, 메모리 사용량이 더 많다는 단점이 있지만, 복사된 객체가 원본 객체와 완전히 독립적이 되므로, 두 객체 간의 상호 작용을 걱정하지 않아도 된다. 예.. 더보기 크래프톤 정글 week08, day64 - "User Mode vs Kernel Mode", "Register vs Memory", User Stack, 잔디심기 User Mode vs Kernel Mode Kernel Mode (커널 모드) 정의 커널 모드는 운영체제의 핵심 부분이 작동하는 모드이다. 이 모드에서는 CPU가 모든 하드웨어에 대한 전체적인 접근 권한을 갖는다. 커널 모드에서 실행되는 코드는 시스템의 모든 메모리와 하드웨어 리소스를 자유롭게 조작할 수 있다. 특징 커널 모드에서는 운영체제가 시스템의 낮은 수준의 작업을 수행한다. 이 모드에서 실행되는 코드는 시스템의 안정성과 보안에 직접적인 영향을 미칠 수 있기 때문에, 일반적으로 신뢰할 수 있는 운영체제의 핵심 부분에 한정되어 있다. 용도 하드웨어와의 직접적인 통신, 메모리 관리, 프로세스 및 스레드 생성 관리, 시스템 호출 처리 등 User Mode (유저 모드) 정의 사용자 모드는 일반 응용 프.. 더보기 크래프톤 정글 week08, day63 - 잔디심기, pintOS - Project1 result 오늘의 잔디심기 백준 15819 자바스크립트 브론즈1 너의핸들은 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); const yourHandle = (n, i) => { const handle = []; for(let i = 1; i 더보기 크래프톤 정글 week08, day62 - 잔디심기, mlfqs-load-avg까지 구현 오늘의 잔디심기 백준 15680 자바스크립트 브론즈5 연세대학교 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); const n = input[0]; if (n == 0) console.log('YONSEI'); else console.log('Leading the Way to the Future'); 단순 0과 1을 비교해서 출력만 하는 문제 pintos 구간은 도저히 알고리즘 문제를 못 풀것 같다. 10분도 안걸리는 문제들로 최대한 버티려고 하는 중 일요일은.. 더보기 크래프톤 정글 week08, day61 - 잔디심기, 조건 변수, convar 성공 오늘의 잔디심기 백준 25495 자바스크립트 브론즈2 에어팟 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); const Airpot = (n) => { const phoneList = input[1].split(" ").map(Number); let batteryUse = 0; let lastPhone = 0; let lastPhoneUse = 0; for(let i = 0; i < n; i++) { if(phoneList[i] == lastPhone) { b.. 더보기 크래프톤 정글 week08, day60 - 잔디심기, priority-donate-multiple 구현 오늘의 잔디심기 백준 11718 자바스크립트 브론즈5 그대로 출력 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); let i = 0; while(true) { if(input[i] == null) break; console.log(input[i]); i++; } 입력으로 받아온 값을 전부 그대로 출력해야 하는데 자바스크립트 특성 상 입력을 input 배열로 받기 때문에 끝나는 부분을 while로 잡아줬다. 당분간은 pintOS에 매진해야 할 것 같아 브론즈 문.. 더보기 크래프톤 정글 week07, day59 - 잔디심기, alarm-simultaneous 구현 오늘의 잔디심기 백준 2523 자바스크립트 브론즈3 별 찍기 13 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().split("\n"); const n = Number(input[0]); const star = '*'; for (let i = 1; i 0; i--) { let result = ''; for (let j = 0; j < i; j++) { result += star; } console.log(result); } 오늘도 열심히 pintOS 죽쑤느라 간단한 문제로 잔디 심기.. 더보기 크래프톤 정글 week07, day58 - demand paging, TLB, 추상화 디자인, 잔디심기 demand paging 운영체제에서 사용하는 메모리 관리 전략 중 하나로, 프로그램 실행 시 모든 메모리를 물리적 메모리에 적재하는 대신, 필요한 페이지만 메모리에 적재하는 방식 프로그램이 실행되기 위해서는 그 프로그램의 모든 코드와 데이터가 물리적 메모리에 적재되어야 하지만, 특정 함수는 실행 중에 한 번도 호출되지 않을 수 있고 또한 프로그램이 크면 모든 데이터를 메모리에 적재하는 것은 메모리 자원을 낭비하게 된다. 이런 문제를 해결하기 위해 demand paging 전략이 사용된다. 이 전략을 프로그램 실행 시 필요한 페이지만 메모리에 적재하고, 나머지 페이지는 디스크에 남겨두며, 이후 필요에 따라 메모리에 적재한다. 이를 통해 메모리 사용량을 줄이고 시스템의 전반적인 효율성을 향상 시킬 수 있다.. 더보기 이전 1 2 3 다음