Node.js / NestJS

성능 및 클라우드 배포

Event loop, blocking I/O, profiling, memory leaks, 쿼리 최적화, 압축, clustering, worker threads, load balancing, 전략적 캐싱(Redis + HTTP), AWS(ECS, Lambda), serverless, 배포 전략(blue/green, canary)

30 면접 질문·
Senior
1

AWS ECS에서 NestJS 컨테이너 배포를 최적화하는 접근 방식은 무엇입니까?

답변

NestJS 컨테이너의 ECS 배포를 최적화하려면: multi-stage Docker build로 최종 이미지 크기를 줄이고(build 스테이지 + 최소한의 production 스테이지), Docker layer caching을 활용해 빌드를 가속화하며, 동일 리전에서 ECR(Elastic Container Registry)을 사용해 latency를 줄이고, 적절한 health check를 구성하고, Fargate로 관리를 단순화하며, 최적의 resource limit(CPU/memory)을 정의하고, SIGTERM에 대한 graceful shutdown을 구현합니다. 최적화된 Node.js alpine 이미지는 최적화하지 않은 >1GB 대비 <100MB가 될 수 있습니다.

2

Node.js event loop의 주요 단계는 무엇입니까?

답변

Node.js event loop에는 6개의 주요 단계가 있습니다: timers(setTimeout/setInterval), pending callbacks(지연된 I/O callback), idle/prepare(내부), poll(새 I/O 이벤트 가져오기), check(setImmediate), close callbacks. 각 단계에는 실행할 callback의 FIFO 큐가 있습니다. poll 단계는 I/O 이벤트를 처리하므로 가장 중요합니다.

3

Node.js에서 블로킹 작업(blocking I/O)의 영향은 무엇입니까?

답변

Node.js에서 블로킹 작업은 전체 event loop를 차단하여 다른 모든 작업의 처리를 막습니다. Node.js는 싱글 스레드이므로 성능이 크게 저하됩니다. fs.readFileSync, crypto.pbkdf2Sync 같은 동기 작업이나 집약적인 루프는 메인 스레드를 차단합니다. 항상 비동기 버전을 사용하거나 worker threads에 위임하세요.

4

프로덕션 Node.js 애플리케이션에서 memory leak을 어떻게 식별합니까?

5

NestJS 애플리케이션의 CPU 성능 profiling에는 어떤 도구를 사용합니까?

+27 면접 질문

다음 면접을 위해 Node.js / NestJS을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기