이런저런 IT 이야기
article thumbnail
Javascript Execution context
Javascript 2023. 5. 26. 08:36

실행 컨텍스트(Execution Context)는 JavaScript 코드가 실행되는 환경을 나타내는 개념입니다. JavaScript 엔진은 코드를 실행할 때 실행 컨텍스트를 생성하고 관리합니다. 각 실행 컨텍스트는 해당 코드의 실행에 필요한 정보를 포함하고 있으며, 스코프 체인, 변수, 함수 등의 정보를 저장합니다. 실행 컨텍스트는 다음과 같은 요소로 구성됩니다: 변수 객체(Variable Object): 현재 컨텍스트에서 선언된 변수, 함수 선언, 매개변수 등을 포함하는 객체입니다. 전역 컨텍스트의 경우 전역 객체(Global Object)가 변수 객체로 사용됩니다. 스코프 체인(Scope Chain): 변수 객체와 상위 스코프의 변수 객체들을 연결한 체인입니다. 스코프 체인은 변수 및 함수를 검색하..

article thumbnail
JavaScript의 WebWorker
Javascript 2023. 5. 26. 01:48

JavaScript Web Worker는 웹 애플리케이션에서 백그라운드 스레드에서 동작하는 스크립트 작업을 처리하기 위한 기술입니다. 이를 통해 병렬 처리를 통한 성능 향상과 웹 애플리케이션의 반응성 향상을 달성할 수 있습니다. Web Worker는 브라우저의 주 스레드와 독립적으로 실행되는 백그라운드 스레드입니다. 이 스레드는 웹 애플리케이션과는 별도로 실행되므로 메인 스레드의 작업과는 분리되어 있습니다. 이로 인해 Web Worker는 CPU 집약적인 작업이나 긴 시간이 걸리는 작업을 처리하는 데 적합합니다. Web Worker를 사용하기 위해서는 다음과 같은 단계를 따릅니다: 워커 스크립트 파일 생성: 웹 워커로 실행할 JavaScript 코드를 포함하는 별도의 스크립트 파일을 생성합니다. 워커 객..

article thumbnail
JavaScript의 객체(Object)의 모든 함수들
Javascript 2023. 5. 26. 00:23

Object.keys(obj): 객체의 열거 가능한 속성 이름을 배열로 반환합니다. const obj = { name: 'John', age: 30, city: 'New York' }; const keys = Object.keys(obj); console.log(keys); // ['name', 'age', 'city'] Object.values(obj): 객체의 열거 가능한 속성 값들을 배열로 반환합니다. const obj = { name: 'John', age: 30, city: 'New York' }; const values = Object.values(obj); console.log(values); // ['John', 30, 'New York'] Object.entries(obj): 객체의 열거..

article thumbnail
JavaScript의 Math의 모든 함수들
Javascript 2023. 5. 26. 00:22

Math.abs(x): 숫자 x의 절댓값을 반환합니다. const num = -5; const absNum = Math.abs(num); console.log(absNum); // Output: 5 Math.ceil(x): 숫자 x보다 크거나 같은 가장 작은 정수를 반환합니다. const num = 4.3; const ceilNum = Math.ceil(num); console.log(ceilNum); // Output: 5 Math.floor(x): 숫자 x보다 작거나 같은 가장 큰 정수를 반환합니다. const num = 4.7; const floorNum = Math.floor(num); console.log(floorNum); // Output: 4 Math.round(x): 숫자 x를 반올림한 ..

article thumbnail
JavaScript의 배열(Array)의 모든 함수들
Javascript 2023. 5. 25. 23:51

push(): 배열의 끝에 하나 이상의 요소를 추가합니다. const fruits = ['apple', 'banana']; fruits.push('orange'); console.log(fruits); // ['apple', 'banana', 'orange'] fruits.push('grape', 'mango'); console.log(fruits); // ['apple', 'banana', 'orange', 'grape', 'mango'] pop(): 배열의 마지막 요소를 제거하고 반환합니다. const fruits = ['apple', 'banana', 'orange']; const lastFruit = fruits.pop(); console.log(lastFruit); // 'orange' cons..

article thumbnail
제너레이터 함수(Generator Function)
Javascript 2023. 5. 25. 15:02

JavaScript에서 제너레이터 함수(Generator Function)는 이터레이터(Iterator)를 생성하는 특별한 종류의 함수입니다. 제너레이터 함수는 함수 실행을 일시 중지하고 나중에 다시 재개할 수 있는 여러 개의 값을 반환할 수 있습니다. 이를 통해 제너레이터 함수는 지연 평가(lazy evaluation)와 비동기 코드 작성을 쉽게 만들어줍니다. 제너레이터 함수는 function* 키워드를 사용하여 정의됩니다. 내부적으로 yield 키워드를 사용하여 값을 반환하고 함수 실행을 일시 중지합니다. 제너레이터 함수에서는 yield 문이 실행될 때마다 제너레이터 객체의 상태가 기록되고, next() 메서드를 호출함으로써 함수의 실행을 재개합니다. 아래는 제너레이터 함수를 사용하여 숫자를 반환하는..

article thumbnail
JavaScript 메모리 관리 Heap(힙)과 Stack(스택)
Javascript 2023. 5. 25. 14:52

JavaScript에서의 메모리 관리는 Heap(힙)과 Stack(스택) 두 가지 영역을 사용하여 이루어집니다. Heap(힙): 동적으로 할당되는 메모리를 저장하는 영역입니다. 객체, 배열, 함수 등의 데이터 구조가 힙에 저장됩니다. 힙은 크기가 동적으로 변경될 수 있으며, 메모리 할당 및 해제는 개발자가 직접 관리하지 않습니다. 가비지 컬렉터(Garbage Collector)에 의해 사용되지 않는 객체들이 자동으로 해제됩니다. Stack(스택): 함수 호출과 관련된 데이터를 저장하는 영역입니다. 함수가 호출될 때마다 스택에 호출된 함수의 호출 정보(인자, 지역 변수 등)가 저장됩니다. 함수가 실행이 완료되면 해당 함수의 호출 정보가 스택에서 제거됩니다. 스택은 크기가 정적으로 결정되며, 메모리 할당과 ..

article thumbnail
Module 패턴
Javascript 2023. 5. 25. 14:14

Module 패턴은 코드를 모듈화하고 캡슐화하기 위한 패턴입니다. 이 패턴은 전역 네임스페이스의 오염을 방지하고 코드의 의존성을 관리하는데 사용됩니다. 모듈 패턴은 코드를 구성하는 함수, 변수, 객체 등을 비공개(private)와 공개(public) 멤버로 나누어 사용합니다. Module 패턴은 함수의 클로저 기능을 이용하여 모듈의 비공개 멤버를 생성하고 반환하는 패턴입니다. 비공개 멤버는 모듈 내부에서만 접근할 수 있고, 공개 멤버는 외부에서 접근할 수 있는 인터페이스 역할을 합니다. 이를 통해 모듈의 상태와 동작을 캡슐화하고 외부에 공개할 필요가 있는 기능만 노출시킬 수 있습니다. 다음은 JavaScript에서 Module 패턴을 사용하여 모듈을 정의하는 간단한 예제입니다: const MyModule..

article thumbnail
Observer 패턴
Javascript 2023. 5. 25. 13:53

Observer 패턴은 객체 간의 일대다 의존성을 관리하는 패턴입니다. 이 패턴은 한 객체의 상태 변화에 대해 의존하는 다른 객체들(옵저버들)에게 자동으로 알림을 보내고 업데이트를 수행할 수 있는 기능을 제공합니다. Observer 패턴은 객체 간의 결합도를 줄이고 유연성을 높이는데 사용됩니다. 옵저버들은 주체(Subject) 객체의 변화에 대해 관찰하고, 주체 객체의 상태가 변경되면 알림을 받아 업데이트를 수행할 수 있습니다. 이를 통해 객체 간의 상호작용을 느슨하게 결합시킬 수 있습니다. JavaScript에서 Observer 패턴을 구현하기 위해 주로 사용되는 방법은 다음과 같습니다: 주체(Subject): 상태 변화를 감지하고 옵저버들에게 알림을 보내는 객체입니다. 주체 객체는 옵저버들을 등록 및..

article thumbnail
Proxy 패턴
Javascript 2023. 5. 25. 13:31

JavaScript의 Proxy 패턴은 객체를 감싸는 래퍼(wrapper)로서 동작하며, 객체에 대한 간접적인 접근과 제어를 제공합니다. Proxy는 객체의 동작을 가로채고, 해당 동작을 변경하거나 확장할 수 있는 기능을 제공합니다. 이를 통해 객체의 프로퍼티에 접근, 할당, 삭제 등의 동작을 제어할 수 있습니다. Proxy 패턴을 사용하여 다양한 작업을 수행할 수 있으며, 주요 기능은 다음과 같습니다: 프로퍼티 접근 제어: Proxy를 사용하여 객체의 프로퍼티 접근을 제어할 수 있습니다. 프로퍼티에 접근할 때 특정 동작을 추가하거나 가로챌 수 있습니다. 예를 들어, 특정 프로퍼티에 접근할 때 로깅을 추가하거나, 읽기 전용 프로퍼티로 설정할 수 있습니다. 프로퍼티 할당 및 삭제 제어: Proxy를 사용하..

profile on loading

Loading...

검색 태그