# 성능 및 클라우드 배포 (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 - [면접 질문: Node.js / NestJS](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions.md) ## 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에 위임하세요. ## 27개 추가 질문 이용 가능 - 프로덕션 Node.js 애플리케이션에서 memory leak을 어떻게 식별합니까? - NestJS 애플리케이션의 CPU 성능 profiling에는 어떤 도구를 사용합니까? 무료로 가입하기: https://sharpskill.dev/ko/login ## 기타 Node.js / NestJS 면접 주제 - [Node.js 기초](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nodejs-fundamentals.md): 20개 질문, Junior - [Node.js 코어 API](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nodejs-core-apis.md): 25개 질문, Junior - [비동기 프로그래밍](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/asynchronous-programming.md): 25개 질문, Junior - [Express.js 기초](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/express-basics.md): 20개 질문, Junior - [NestJS 기초](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nestjs-fundamentals.md): 23개 질문, Junior - [REST API 설계](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/rest-api-design.md): 20개 질문, Junior - [검증과 DTO](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/validation-dto.md): 20개 질문, Junior - [API 문서화 및 계약](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/api-documentation.md): 20개 질문, Junior - [에러 처리](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/error-handling.md): 20개 질문, Junior - [단위 테스트](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/testing-unit.md): 20개 질문, Junior - [작업 스케줄링](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/scheduling-cron.md): 15개 질문, Junior - [NestJS 모듈과 DI](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/nestjs-modules-di.md): 20개 질문, Mid-Level - [구성 및 환경 관리](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/configuration-environment.md): 20개 질문, Mid-Level - [JWT 인증](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/authentication-jwt.md): 25개 질문, Mid-Level - [인가 및 RBAC](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/authorization-rbac.md): 20개 질문, Mid-Level - [TypeORM을 사용한 데이터베이스](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/database-typeorm.md): 30개 질문, Mid-Level - [Prisma ORM](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/prisma-orm.md): 25개 질문, Mid-Level - [미들웨어와 인터셉터](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/middleware-interceptors.md): 20개 질문, Mid-Level - [파일 업로드](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/file-upload.md): 15개 질문, Mid-Level - [WebSockets](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/websockets.md): 20개 질문, Mid-Level - [NestJS를 사용한 GraphQL](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/graphql-basics.md): 25개 질문, Mid-Level - [엔드투엔드 테스트](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/testing-e2e.md): 20개 질문, Mid-Level - [Redis를 사용한 캐싱](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/caching-redis.md): 20개 질문, Mid-Level - [Bull을 사용한 큐](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/queues-bull.md): 20개 질문, Mid-Level - [DevOps, Logging, CI/CD](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/logging-monitoring.md): 25개 질문, Mid-Level - [Docker 및 컨테이너화](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/docker-containerization.md): 25개 질문, Mid-Level - [마이크로서비스](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/microservices.md): 30개 질문, Senior - [보안 모범 사례](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/security-best-practices.md): 25개 질문, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/performance-optimization