본문 바로가기

분류 전체보기100

Javascript - 동작 방식 자바스크립트 엔진자바스크립트를 실행하기 위해서는 자바스크립트 엔진이 필요하다. 자바스크립트 엔진은 자바스크립트 코드를 실행하는 프로그램 또는 인터프리터이다. 인터프리터란?프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다.원시 코드를 기계어로 번역하는 컴파일러와 대비된다. 자바스크립트 엔진의 대표적인 예시로는 구글의 V8 엔진이 있다.자바스크립트 엔진의 주요 구성요소로는 메모리 힙(Memory Heap)과 콜 스택(Call stack)이 있다.메모리 힙(Memory Heap) : 메모리 할당이 일어나는 곳콜 스택(Call Stack) : 코드가 실행될 때 호출 스택이 쌓이는 곳[ 메모리 힙 ]변수 선언, 함수 저장, 호출 등의 작업이 발생하는 공간const num = 531;.. 2025. 1. 22.
Javascript - 얕은 복사, 깊은 복사 JS의 얕은 복사, 깊은 복사를 이해하기 위해선 우선 자바스크립트의 값에 대해 알아야한다.자바스크립트에서 값은 원시값과 참조값으로 나뉜다. 원시값NumberStringBooleanNullUndefined 원시값은 값을 복사할 때 복사된 값을 다른 메모리에 할당하기 때문에 원래의 값과 복사된 값이 서로에게 영향을 미치지 않는다const a = 1;let b = a;b = 2console.log(a); //1console.log(b); //2  참조값ObjectSymbol 참조값은 변수가 객체의 주소를 가리키는 값이기 때문에 복사된 값(주소)이 같은 값을 가리킨다const a = {number: 1};let b = a;b.number = 2console.log(a); // {number: 2}console... 2025. 1. 14.
Javascript - 이벤트 루프 Event Loop란? 단일 스레드에서 실행되는 비동기 작업을 처리하는 메커니즘이벤트 루프는 Call stack, Micro task queue, Macro task queue로 구성  JS Engine자바스크립트 엔진은 Memory Heap 과 Call Stack 으로 구성되어 있다.(그림의 왼쪽 영역)가장 유명한 것이 구글의 V8 Engine이다.자바스크립트는 단일 스레드 프로그래밍 언어인데, 이는 Call Stack이 하나 라는 의미이다.(멀티가 되지 않고, 하나씩 하나씩 처리한다는 의미!)Memory Heap : 메모리 할당이 일어나는 곳(ex, 우리가 프로그램에 선언한 변수, 함수 등이 담겨져 있음)Call Stack : 코드가 실행될 때 쌓이는 곳. stack 형태로 쌓임Stack(스택) : .. 2025. 1. 13.
Javascript - Operator 암묵적 타입변환(= 타입 강제 변환)개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동변환되는 현상// number + string 연산 경우"1" + 2; // '12'1 + "2"; // '12'// boolean + number 연산 경우1 + true; // 21 + false; // 1// number + null 연산 경우1 + null; // 1// number + undefined 연산 경우1 + undefined; // NaN ( 연산 불가능 )이 외에도 자바스크립트 연산을 하다보면, 예측하지 못하고 넘어갈 수 있는 암묵적 타입변환 케이스가 많다. 동등비교 vs 일치비교동등비교(loose equailty)와 일치비교(strict equality) 연산자는 엄현히 다.. 2025. 1. 4.
운영체제(Operating System) - 스레드 스레드란?프로세스를 구성하는 실행 흐름의 단위하나의 프로세스는 하나 이상의 스레드를 가질 수 있다스레드는 단일 스레드, 멀티 스레드(실행 흐름이 여러 개)로 구분된다  스레드의 구성 요소스레드 ID, 프로그램 카운터를 비롯한 레지스터 값, 스택 등 실행에 필요한 최소한의 정보스레드들은 자원을 공유하면서 실행cf) 요즘 운영체제들은 스레드 단위로 CPU를 할당받는 경우가 많음  멀티 프로세스와 멀티 스레드동일한 작업을 수행하는 단일 프로세스 여러개 실행 vs 하나의 프로세스를 여러 스레드로 실행어떤 차이가 있을까? 프로세스를 fork하면 코드/데이터/힙 영역 등 모든 자원이 복제되어 저장됨저장된 메모리 주소를 제외하면 모든 것이 동일한 프로세스 두 개가 통째로 메모리에 적재 cf) fork 직후 같은 프로.. 2025. 1. 4.
운영체제(Operating System) - 프로세스 프로세스포그라운드 프로세스: 사용자가 볼 수 있는 공간에서 실행되는 프로세스백그라운드 프로세스: 사용자가 볼 수 없는 공간에서 실행되는 프로세스사용자와 직접 상호작용이 가능한 백그라운드 프로세스사용자와 상호작용하지 않고 그저 정해진 일만 수행하는 프로세스(데몬, 서비스) 프로세스 제어 블록모든 프로세스는 실행을 위해 CPU가 필요하다.하지만 CPU의 자원은 한정되어 있다 -> 프로세스들은 돌아가며 한정된 시간만큼만 CPU 이용- 자신의 차례에 정해진 시간만큼 CPU 이용- 타이머 인터럽트가 발생하면 차례 양보 빠르게 번갈아가며 수행되는 프로세스들을 관리해야하는데, 이를 위해 사용하는 것이 프로세스 제어 블록(PCB)이다.- 프로세스 관련 정보를 저장하는 자료 구조- 옷 상품에 달린 태그와 같은 정보- 프.. 2025. 1. 3.