# 마이크로서비스 (Node.js / NestJS) > 모놀리스 vs 모듈러 모놀리스 vs 마이크로서비스, message patterns, transporters(TCP, Redis, NATS, RabbitMQ, Kafka), 통신(sync/async, event-driven), CQRS, event sourcing, client/server - 30 면접 질문 - Senior - [면접 질문: Node.js / NestJS](https://sharpskill.dev/ko/technologies/node-nestjs/interview-questions.md) ## 1. modular monolith란 무엇입니까? **답변** modular monolith은 단일 단위로 배포되지만 명확한 boundaries를 가진 강하게 분리된 모듈로 구조화된 애플리케이션입니다. 모든 것이 섞여 있는 전통적인 monolith과 달리, modular monolith은 코드를 독립적인 모듈로 구성하여 잘 정의된 인터페이스를 통해 통신합니다. 이 접근 방식은 monolith의 단순함(단일 배포, 간단한 ACID 트랜잭션)과 microservices의 유지보수성(관심사 분리, 명확한 boundaries)을 결합합니다. ## 2. monolith과 microservices의 주요 차이점은 무엇입니까? **답변** 주요 차이점은 배포와 독립성에 있습니다. monolith은 모든 컴포넌트가 동일한 프로세스와 데이터베이스를 공유하는 단일 단위로 배포되는 반면, microservices는 자체 데이터베이스를 가지고 개별적으로 배포되는 독립적인 서비스입니다. monolith은 단순함과 쉬운 ACID 트랜잭션을 제공하지만 대규모에서 확장성과 유지보수 문제에 직면합니다. microservices는 독립적인 확장과 자율적인 배포를 가능하게 하지만 분산 복잡성을 도입합니다. ## 3. NestJS Microservices에서 message pattern이란 무엇입니까? **답변** NestJS의 message pattern은 microservices 간 통신 모드를 정의합니다. 두 가지 주요 유형이 있습니다: request-response(응답을 기대하는 동기식)와 event-based(응답을 기다리지 않는 비동기식)입니다. @MessagePattern() 데코레이터는 request-response용 핸들러를 정의하고, @EventPattern()은 비동기 이벤트를 처리합니다. pattern 선택은 사용 사례에 따라 다릅니다: 즉각적인 응답이 필요한 작업에는 request-response, 알림과 eventual consistency에는 event-based를 사용합니다. ## 27개 추가 질문 이용 가능 - NestJS Microservices에서 transporter의 역할은 무엇입니까? - @MessagePattern()과 @EventPattern()의 차이점은 무엇입니까? 무료로 가입하기: 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/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/microservices