# 비동기 프로그래밍 (Node.js / NestJS) > Callbacks, Promises, async/await, 에러 처리, Promise.all, Promise.race - 25 면접 질문 - Junior - [면접 질문: Node.js / NestJS](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions.md) ## 1. NestJS에서 controller 메서드를 비동기로 만들려면 어떻게 해야 하나요? **답변** 메서드 앞에 async 키워드를 추가하면 자동으로 Promise를 반환합니다. NestJS는 Promise의 resolve를 자동으로 처리하고 결과를 클라이언트에 전송합니다. 필요한 경우 async 없이 직접 Promise를 반환할 수도 있습니다. NestJS는 RxJS의 Observable도 지원합니다. async/await를 사용하면 비동기 작업(DB, 외부 API 등)의 코드가 더 읽기 쉬워집니다. ## 2. JavaScript에서 callback의 주요 문제는 무엇인가요? **답변** callback hell(파멸의 피라미드)은 여러 비동기 작업이 중첩될 때 발생하며, 읽고 유지보수하기 어려운 코드를 만듭니다. 들여쓰기 단계마다 복잡성이 증가합니다. Promise와 async/await는 더 선형적인 비동기 코드 작성을 가능하게 하여 이 문제를 해결하기 위해 도입되었습니다. ## 3. JavaScript에서 Promise란 무엇인가요? **답변** Promise는 비동기 작업의 최종 완료(또는 실패)와 그 결과 값을 나타내는 객체입니다. pending, fulfilled(성공적으로 resolve됨), rejected(에러로 실패함)의 세 가지 상태를 가질 수 있습니다. Promise는 .then()과 .catch()로 비동기 작업을 체이닝할 수 있게 해줍니다. ## 22개 추가 질문 이용 가능 - Promise가 가질 수 있는 세 가지 상태는 무엇인가요? - Promise에서 에러를 어떻게 처리하나요? 무료로 가입하기: 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 - [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 - [성능 및 클라우드 배포](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions/performance-optimization.md): 30개 질문, 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/asynchronous-programming