반응형
1. 핵심 기능
| 기능 | 설명 | 장점 |
| 라우팅 | URL 경로와 HTTP 메서드에 따른 요청 처리 | 직관적이고 유연한 URL 구조 설계 가능 |
| 미들웨어 | 요청-응답 사이클에서 실행되는 함수들 | 재사용 가능한 코드 작성, 모듈화 |
| 템플릿 엔진 | 동적 HTML 생성 (EJS, Pug, Handlebars 등) | 서버 사이드 렌더링 지원 |
| 정적 파일 제공 | CSS, JS, 이미지 등 정적 파일 서빙 | 웹 애플리케이션 자원 관리 용이 |
| 에러 핸들링 | 에러 처리 미들웨어를 통한 중앙 집중식 에러 관리 | 일관된 에러 처리 및 디버깅 |
2. 특징
| 특징 | 설명 | 장점 |
| 경량성 | 최소한의 기능만 제공하는 미니멀한 프레임워크 | 빠른 성능, 작은 메모리 사용량 |
| 확장성 | 다양한 미들웨어와 플러그인으로 기능 확장 | 필요한 기능만 선택적으로 추가 가능 |
| 유연성 | 다양한 아키텍처 패턴 지원 | MVC, REST API, 마이크로서비스 등 자유로운 구조 |
| 빠른 개발 | 간단한 API로 빠른 프로토타이핑 가능 | 개발 생산성 향상 |
| 커뮤니티 | 활발한 오픈소스 커뮤니티와 풍부한 자료 | 문제 해결과 학습이 용이 |
3. HTTP 메서드 지원
| 메서드 | Express 메서드 | 용도 |
| GET | app.get() | 데이터 조회 |
| POST | app.post() | 데이터 생성 |
| PUT | app.put() | 데이터 전체 수정 |
| PATCH | app.patch() | 데이터 부분 수정 |
| DELETE | app.delete() | 데이터 삭제 |
| ALL | app.all() | 모든 HTTP 메서드 처리 |
4. 미들웨어 유형
| 유형 | 설명 | 예시 |
| 애플리케이션 레벨 | 앱 전체에서 실행되는 미들웨어 | 로깅, 인증 |
| 라우터 레벨 | 특정 라우터에서만 실행 | 특정 경로의 권한 검사 |
| 에러 핸들링 | 에러 발생 시 실행되는 미들웨어 | 에러 페이지 렌더링 |
| 내장 미들웨어 | Express에 기본 포함된 미들웨어 | express.static(), express.json() |
| 서드파티 | 외부 라이브러리 미들웨어 | cors, helmet, morgan |
5. 주요 설정 옵션
| 설정 | 설명 | 기본값 |
| 포트 | 서버가 실행될 포트 번호 | 3000 (관례적) |
| 뷰 엔진 | 템플릿 엔진 설정 | 없음 |
| 정적 파일 경로 | 정적 파일이 위치한 디렉토리 | 설정 필요 |
| 신뢰 프록시 | 프록시 서버 뒤에서 실행 여부 | false |
| 환경 모드 | 개발/프로덕션 환경 구분 | development |
6. 장단점 비교
| 구분 | 장점 | 단점 |
| 성능 | 빠른 처리 속도, 비동기 I/O | 단일 스레드로 인한 CPU 집약적 작업 제한 |
| 학습 | 간단한 API, 풍부한 자료 | 자유도가 높아 초보자에게 혼란 |
| 확장 | 모듈화된 구조, 다양한 플러그인 | 많은 의존성으로 인한 복잡도 증가 |
| 유지보수 | 코드 재사용성, 명확한 구조 | 설정이 많아질수록 관리 복잡 |
반응형
'Back-End > Express.js' 카테고리의 다른 글
| Express.js #4 (간단한 게시판 API 구현) (3) | 2025.08.04 |
|---|---|
| Express.js #3 (Node.js → Express.js 리팩터링) (0) | 2025.08.04 |
| Express.js #2 (시작하기) (0) | 2025.08.04 |
| Express.js #0 (설치 및 환경 구축) (0) | 2025.08.04 |