ExpressJS
Express.js는 Node.js를 위한 빠르고 개방적인 웹 프레임워크.
2010년에 TJ Holowaychuk에 의해 처음 출시되었으며, 현재는 OpenJS Foundation에서 관리하고 있다.
Node.js의 핵심 모듈인 http를 기반으로 만들어졌으며, 웹 애플리케이션과 API를 개발하기 위한 다양한 기능을 제공한다.
주요 특징
- 미들웨어 아키텍처: 요청-응답 주기를 효과적으로 관리
- 라우팅: HTTP 메서드와 URL 경로에 따른 요청 처리
- 템플릿 엔진 지원: 동적 HTML 페이지 생성 (Pug, EJS, Handlebars 등)
- 정적 파일 제공: express.static 미들웨어를 통한 간편한 정적 파일 서비스
- 확장성: 다양한 미들웨어와 플러그인을 통한 기능 확장
장점
- 간단하고 직관적인 API를 제공하여 빠른 개발이 가능하다.
- 미들웨어 시스템을 통해 유연한 확장성을 제공한다.
- 큰 커뮤니티와 풍부한 써드파티 미들웨어 생태계가 있다.
- 성능이 우수하며 메모리 사용량이 적다.
- Node.js의 비동기 특성을 활용하여 높은 동시성을 처리할 수 있다.
단점 및 한계
- 기본 프레임워크가 최소한의 기능만 제공하여 추가 기능은 별도로 구현해야 한다.
- 구조화된 프로젝트 템플릿을 제공하지 않아 큰 프로젝트에서는 구조 설계가 필요하다.
- 비동기 코드 처리로 인한 콜백 지옥이 발생할 수 있다(async/await로 해결 가능).
- TypeScript와 같은 정적 타입 지원이 기본적으로 제공되지 않다.
사용 방법
먼저 프로젝트에 Express.js를 설치해야 한다:
기본적인 서버 생성 예시:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// 기본 서버 설정 const express = require('express'); const app = express(); const port = 3000; // 미들웨어 설정 app.use(express.json()); // JSON 파싱 app.use(express.urlencoded({ extended: true })); // URL 인코딩된 데이터 파싱 // 정적 파일 제공 app.use(express.static('public')); // 라우팅 설정 app.get('/', (req, res) => { res.send('Hello World!'); }); // 서버 시작 app.listen(port, () => { console.log(`Server is running on port ${port}`); });
주요 명령어와 메서드
라우팅 메서드:
- app.get(): GET 요청 처리
- app.post(): POST 요청 처리
- app.put(): PUT 요청 처리
- app.delete(): DELETE 요청 처리
미들웨어 관련:
- app.use(): 미들웨어 함수 등록
- next(): 다음 미들웨어로 제어 전달
응답 메서드:
- res.send(): 다양한 유형의 응답 전송
- res.json(): JSON 응답 전송
- res.render(): 템플릿 렌더링
- res.redirect(): 리다이렉션
실제 활용 예시
|
|