
1. Express란 무엇인가?
Express는 Node.js에서 가장 오래되고 널리 사용되는 경량 웹 프레임워크입니다.
2009년에 등장했으며 현재도 많은 서비스에서 사용되고 있습니다.
Express는 단순함과 유연성이 가장 큰 특징입니다.
예를 들어 기본적인 API 서버는 다음과 같이 매우 간단하게 만들 수 있습니다.
const app = express()
app.get('/', (req, res) => {
res.send('Hello World')
})
app.listen(3000, () => {
console.log('Server running on port 3000')
})
Express는 필요한 기능을 직접 선택해서 조합하는 방식입니다.
Express 장점
1️⃣ 매우 단순하고 배우기 쉽다
Node.js를 처음 배우는 사람도 쉽게 시작할 수 있습니다.
구조가 강제되지 않기 때문에 작은 프로젝트에서는 빠르게 개발할 수 있습니다.
2️⃣ 생태계가 매우 크다
Express는 오래된 만큼 관련 라이브러리가 많습니다.
예
- passport (인증)
- multer (파일 업로드)
- cors
- body-parser
3️⃣ 자유로운 구조 설계
Express는 구조를 강제하지 않기 때문에
- MVC
- Clean Architecture
- Layered Architecture
등 원하는 구조를 직접 설계할 수 있습니다.
Express 단점
1️⃣ 프로젝트가 커지면 구조가 무너지기 쉽다
Express는 구조가 강제되지 않기 때문에
대규모 프로젝트에서 다음과 같은 문제가 발생하기 쉽습니다.
- 파일 구조가 난잡해짐
- 코드 의존성 증가
- 유지보수 어려움
2️⃣ TypeScript 지원이 완벽하지 않다
Express는 기본적으로 JavaScript 기반이라
TypeScript 사용 시 설정과 타입 정의를 따로 해야 합니다.
3️⃣ 엔터프라이즈 기능이 부족
다음과 같은 기능은 기본 제공되지 않습니다.
- Dependency Injection
- 모듈 시스템
- 구조화된 아키텍처
2. NestJS란 무엇인가?
NestJS는 2017년에 등장한 Node.js 프레임워크로
Angular 스타일의 구조를 Node.js 백엔드에 적용한 프레임워크입니다.
NestJS는 기본적으로 TypeScript 기반이며 대규모 프로젝트에 최적화된 구조를 제공합니다.
예시 코드:
export class AppController {
@Get()
getHello(): string {
return 'Hello World'
}
}
NestJS는 다음과 같은 구조를 중심으로 합니다.
- Controller
- Service
- Module
- Dependency Injection
NestJS 장점
1️⃣ 구조가 매우 체계적
NestJS는 기본적으로 모듈 기반 구조를 사용합니다.
├─ users
│ ├─ users.controller.ts
│ ├─ users.service.ts
│ └─ users.module.ts
이 구조 덕분에 대규모 프로젝트 유지보수가 쉽습니다.
2️⃣ TypeScript 완벽 지원
NestJS는 처음부터 TypeScript 기반으로 설계되었습니다.
덕분에
- 타입 안정성
- 자동완성
- 코드 유지보수
측면에서 매우 유리합니다.
3️⃣ Dependency Injection 지원
NestJS는 **DI(의존성 주입)**을 기본 제공하기 때문에
- 테스트 작성
- 코드 분리
- 유지보수
가 훨씬 편합니다.
4️⃣ 다양한 기능 내장
NestJS는 기본적으로 다음 기능을 제공합니다.
- Validation
- Authentication
- WebSocket
- Microservice
- GraphQL
- Swagger
NestJS 단점
1️⃣ 학습 곡선이 높다
NestJS는 다음 개념을 이해해야 합니다.
- Module
- Controller
- Service
- Provider
- Dependency Injection
그래서 Express보다 진입 장벽이 높습니다.
2️⃣ 작은 프로젝트에서는 과할 수 있다
간단한 API 서버라면 NestJS는 오히려 구조가 너무 무거울 수 있습니다.
예를 들어 단순 CRUD API라면 Express가 훨씬 빠르게 개발됩니다.
3️⃣ 초기 설정이 많다
NestJS는 CLI를 통해 프로젝트를 생성하고
구조를 맞춰 개발해야 합니다.
Express vs NestJS 비교
| 구조 | 자유 | 강제된 구조 |
| 언어 | JavaScript 중심 | TypeScript 중심 |
| 학습 난이도 | 낮음 | 중간 |
| 대규모 프로젝트 | 불리 | 매우 유리 |
| 개발 속도 | 빠름 | 구조 설계 필요 |
| 아키텍처 | 직접 설계 | 기본 제공 |
어떤 상황에서 사용하면 좋을까?
Express 추천 상황
- 간단한 API 서버
- 빠른 프로토타입 개발
- Node.js 입문
- 소규모 프로젝트
NestJS 추천 상황
- 대규모 서비스
- 팀 프로젝트
- 유지보수 중요한 서비스
- TypeScript 기반 개발
'Web > Nest.js' 카테고리의 다른 글
| NestJS 설치 방법 (Node.js 설치부터 프로젝트 생성까지)[시리즈3] (0) | 2026.03.12 |
|---|---|
| Next.js가 단순한 라이브러리를 넘어 '프레임워크'인 이유[시리즈1] (0) | 2026.03.09 |