안녕하세요 makeviibe 입니다.
최근 개발하면서, 백엔드 프레임워크로 NestJS를 선택했습니다.
단순히 트렌드 때문은 아니고, 실무에서의 유지보수성과 구조화된 개발을 위한 선택이었습니다.
✅ 왜 NestJS를 선택했을까?
1. 구조화된 아키텍처 제공 (OOP 스타일)
NestJS는 Angular에서 영감을 받아 Module, Controller, Service 단위의 구조를 제공합니다.
➡️ 기능별 도메인 분리 → 유지보수 편리
2. TypeScript 기반으로 타입 안정성 확보
백엔드에서도 타입 기반 자동완성과 오류 방지가 가능하다는 건 큰 장점입니다.
➡️ 프론트와 DTO, Interface 공유 가능
3. 생태계 확장성: Socket.IO, Swagger, JWT, TypeORM 등과의 연동 편의
실시간 채팅, API 문서화, 인증 기능 등 다양한 요구사항에 대응이 쉬운 구조
➡️ NestJS 기반의 설계는 확장성과 문서화를 모두 확보하기에 적합
✅ NestJS는 Angular와 Spring 중 어떤 쪽에 가까울까?
NestJS는 두 프레임워크의 장점을 모두 흡수한 형태입니다:

- Nest는 Angular의 구조와 철학을 그대로 가져왔기 때문에 모듈화, 데코레이터, DI 구조가 거의 동일합니다.
- 프론트엔드에 Angular 경험이 있다면 Nest 구조에 빠르게 적응 가능합니다.

- 계층 구조 (Controller → Service → Repository) 권장
- 의존성 주입 기반의 구조, 미들웨어, 인터셉터 등은 Spring과 매우 닮음
- Spring 개발자가 백엔드를 Nest로 전환할 때 학습 장벽이 낮음
➡️ Nest는 Angular의 구조 + Spring의 백엔드 설계철학을 Node 환경에서 실현한 프레임워크입니다.
✅ makeviibe 팀의 실제 폴더 구조 예시
도메인 기반 설계를 기반으로 다음과 같은 구조를 구성했습니다.

각 도메인은 다음과 같이 세부 구성됩니다:

➡️ 역할이 명확해지고 테스트, 협업, 유지보수에 유리한 구조
✅ 정리하며
NestJS는 단순한 Node 프레임워크를 넘어서 구조적 설계와 실무 효율성을 모두 잡은 도구입니다.
Angular처럼 익숙한 구조와 Spring 같은 계층적 아키텍처는 팀 단위 프로젝트에서 매우 유리하게 작동합니다.
makeviibe 팀은 NestJS 기반으로 실시간 채팅, 소셜 로그인, 피드, 권한 관리 등 복합 기능을 안정적으로 구현하고 있습니다.
'개발일지' 카테고리의 다른 글
| 📱 웹앱 + 웹뷰 기반 앱 개발, 괜찮은 선택일까? (2) | 2025.07.15 |
|---|---|
| 우리는 푸시 알림을 이렇게 구현합니다 – FCM 기반 알림 구조와 설정 방법 (0) | 2025.07.15 |
| Socket.IO vs WebSocket – 같은 듯 다른 두 실시간 통신 기술 (1) | 2025.07.15 |
| “방에 입장했는데 아무도 안 보여요” – 실시간 공간에서 사용자 정보를 받아오는 방식 (2) | 2025.07.15 |
| “서버가 다 해줄게요”는 위험할 수 있다 – 리소스 전달 방식에 대한 고민 (1) | 2025.07.15 |