Express

MONA·2025년 8월 14일

나혼공

목록 보기
89/92

Express

Node.js 환경에서 동작하는 대표적인 웹 애플리케이션 프레임워크
HTTP 요청, 응답을 편하게 처리하고 서버를 빠르게 만들 수 있게 돕는 도구

특징

  1. 간결, 유연함: 최소한의 구조만 제공
  2. 미들웨어 기반 구조: 요청, 응답 사이 다양한 기능 추가 가능(로그, 인증, 에러처리 등)
  3. 라우팅 기능: URL과 HTTP 메서드에 따라 처리 로직 분리 가능
  4. 빠른 프로토타이핑: body-parser, cookie-parser, cors 등

기본 동작 원리

요청 -> 미들웨어 처리 -> 응답

Express는 미들웨어 스택(Middleware Stack) 구조를 기반으로 동작함

  • 요청(Request)이 들어오면 등록된 미들웨어들이 순차적으로 실행됨
  • 각 미들웨어는 요청을 가공하거나 조건에 따라 응답을 보내거나 다음 미들웨아로 넘김
  • 인증, 로깅, 에러처리, 응답 변환 등을 유연하게 추가, 삭제할 수 있음

ex) 요청 -> 로킹 미들웨어 -> 인증 미들웨어 -> 라우팅 -> 응답 -> 종료

요청(Request), 응답(Response) 객체

  • req: 클라이언트에서 보낸 데이터. URL 파라미터, 헤더, 쿠키 등에 접근 가능
  • res: 클라이언ㅌ느로 응답을 보낼 수 있는 객체
  • next(): 다음 미들웨어로 요청을 전달하는 함수

미들웨어 패턴

역할: 요청/응답 처리 흐름을 분리하고 재사용 가능한 기능 단위로 구성
종류

  1. 애플리케이션 레벨 미들웨어 -> app.use(), app.get()
  2. 라우터 레벨 미들웨어 -> router.use()
  3. 에러처리 미들웨어 -> (err, req, res, next) 형식
  4. 서드파티 미들웨어 -> cors, helmet, morgan 등

Express vs others

  • Express: 자유도 높음, 직접 구조 설계
  • NestJS: 구조, 규칙 정해짐(대규모 프로젝트에 적합)
  • Koa: Express 후속. 더 미니멀함
profile
고민고민고민

0개의 댓글