분류 전체보기25 JavaScript에서 Proxy란 JavaScript에서 Proxy란다른 객체에 대한 접근을 "가로채서" 그 동작을 커스터마이징할 수 있는 기능을 말한다.즉, 객체를 감싸고 -> 객체의 속성 접근, 수정, 호출 등을 감시하거나 조작할 수 있다.const Obj = { name: "john", age: 49 };const proxy = new Proxy(obj, { get(target, prop) { console.log(`${prop}에 접근했습니다`); return target[prop]; }, set(target, prop, value) { console.log(`${prop}에 ${value}를 설정합니다`); target[prop] = value; retur true; }});console.log(p.. 2025. 4. 9. 데코레이터(Decorator)? 클래스 기반 프로그래밍에서 특정 기능을 "주석처럼" 붙여서 확장하거나 수정하는 문법으로, TypeScript, NestJS, Python, Java 같은 언어에서 자주 사용되며, 메타 프로그래밍의 한 형태라고 볼 수 있다.데코레이터란?함수나 클래스, 메서드, 속성 등에 메타데이터를 부여하거나 동작을 변경할 수 있는 특수한 문법입니다.@ 기호로 시작한다.컴파일러 / 프레임워크가 이 데코레이터를 읽고 자동으로 동작을 수행함코드의 의도를 명확히 하고, 반복을 줄이는 장점이 있다.TypeScript / NestJS 기준1. 클래스 데코레이터@Controller('users') // 이 클래스는 '/users' 경로의 컨트롤러임을 의미export class UserController {} 2. 메서드 데코레이터@.. 2025. 4. 3. Express 5.0 및 5.1의 주요 변경 사항 Express 5.0은 Node.js에서 가장 널리 사용되는 웹 프레임워크인 Express.js의 메이저 업데이트 버전이다. 기존 4.x 버전에 큰 변화 없이 꽤 오랜 시간 유지되었지만, Express 5.0에서는 몇 가지 중요한 변화가 포함되었다. 1. Promise 기반 미들웨어 지원기존 Express 4에서는 next()를 직접 호출해야 했지만, Express 5에서는 async/await 방식의 Promise 기반 미들웨어를 기본 지원한다.app.get('/example', async (req, res) => { const data = await FetchData(); res.send(data);});예외 발생 시 try/catch 없이도 자동으로 에러 핸들러로 전달된다.2. 라우터와 미들웨어.. 2025. 4. 3. Atomics? 1. Atomics란 무엇인가?Atomics는 ECMA2017(ES2017 이상)에서 제공되는 정적(Static) 객체로, 다중 스레드 환경에서 고유 메모리에 대해 원자적(atomic)인 연산을 수행할 수 있도록 도와주는 API이다. 1.1 왜 필요한가?1. 멀티스레드 동기화자바스크립트는 원칙적으로 싱글 스레드(Event Loop) 기반 언어이지만, Web Worker나 Node.js Worker Threads 등을 사용하면 스레드 유사 환경에서 병렬 처리를 할 수 있다.이때 여러 스레드(Worker)가 공유 메모리(SharedArrayBuffer)에 접근, 수정할 수 있는데, 스레드 간 동기화(레이스 컨디션 방지)가 필요하다.C/C++ 등 전통적인 언어에서 제공되는 원자적 연산(atomic operat.. 2025. 3. 11. Spinlock - 스핀락 스핀락(Spinlock)이란?스핀락은 락(잠금) 대상이 해제될 때까지 스레드가 계속해서(바쁘게) 확인하는(스핀 도는)' 방식으로 동작하는 락 구현이다.보통 멀티스레드 환경에서 하나의 스레드가 잠금을 획득하려고 할 때, 잠금을 사용 중인 다른 스레드가 잠금을 해제할 때까지 짧은 반복문으로 대기(바쁜 대기, busy-wait)하는 구조다.일반적인 뮤텍스(mutex)는 OS 커널이 스레를 '수면(sleep)' 상태로 만들어 CPU를 양보하지만, 스핀락은 스레드를 그대로 계속 돌면서 잠금 여부를 확인한다. 스핀락의 장단점장점락을 기다리는 시간이 매우 짧다면(ns ~ μs), 스레드를 커널에 의뢰해 '수면/깨우기(sleep/wakeup)' 과정을 거치는 것보다 빠를 수 있다.커널에 의존하기보다 사용자 레벨에서 락.. 2025. 2. 28. SharedArrayBuffer SharedArrayBuffer는 자바스크립에서 메모리를 여러 스레드(Worker) 간에 공유할 수 있도록 고안된 객체로, 기존의 ArrayBuffer는 단일 스레드에서만 접근 가능한 반면, SharedArrayBuffer는 복수의 워커(또는 메인 스레드)가 동일한 물리 메모리를 직접 접근할 수 있게 해준다. 이로써 고성능 병렬처리를 위한 "공유 메모리" 방식의 프로그래밍이 가능해졌다.다만, 여러 스레드가 동시에 같은 메모리 영역을 읽고 쓰는 구조가 되므로, 올바르게 사용하기 위해서는 동시성 제어(Atomics API)와 보안(COOP/COEP 설정) 등을 고려해야 한다. 1. SharedArrayBuffer의 기본 개념1.1. 공유 가능한 메모리 버퍼ArrayBuffer와 유사하게, 이진 데이터를 담을.. 2025. 2. 28. 이전 1 2 3 4 5 다음