
express-generator는 Express 프로젝트의 기본 골격을 자동으로 만들어주는 도구다.
디렉토리만 만들어주는 게 아니라,
아래와 같은 웹 서버에 필요한 최소 구조를 표준화된 형태로 제공한다.
Express 프로젝트를 직접 만들면 항상 해야 하는 작업이 있다.
generator는 이러한 것들을 한 번에 만들어준다.
generator가 만드는 구조는 Express에서 의도한 MVC 흐름에 가까운 기본 형태다.
직접 폴더를 짜면 구조가 제각각이 되기 쉬운데,
generator를 쓰면 디렉토리 구조를 표준 형태로 구성하여 빠르게 시작 할 수 있다.
포트 번호 등ㄱ과 같은 웹 서버를 구축하는데 필요한 설정 데이터가 정의되어 있는 파일이다.
.env 같은 파일의 설정 값을 기반으로 에러를 처리하거나 기타 추가 설정을 할 수 있다.
Express 애플리케이션의 중심 파일이다.
미들웨어를 등록하거나 라우터를 연결하는 등의 공통 설정을 담당한다.
요청이 들어오면 가장 먼저 거치는 곳이며,
요청 흐름을 조립하는 역할을 한다.
URL 경로별 라우팅 로직이 들어가는 폴더이다.
어떤 URL이 어떤 컨트롤러를 호출할지 정의한다.
비즈니스 로직은 작성하지 않고,
요청을 처리할 수 있게 전달하는 역할이다.
정적 파일 저장 폴더이다.
아래와 같이 서버 로직 없이 그대로 내려보낼 파일들을 둔다.
서버에서 HTML을 직접 렌더링할 때 사용하는 템플릿 폴더이다.
SSR(Server Side Rendering) 구조에서 사용된다.
React 같은 프론트엔드를 붙이면
거의 사용하지 않게 된다.
npm으로 설치한 모든 라이브러리가 저장되는 폴더이다.
프로젝트의 메타 정보 파일이다.
아래와 같은 내용이 정의되어있다.
express-generator 구조는
아래 흐름을 기준으로 디렉토리를 분리해 둔 것이다.
클라이언트 요청
→ bin/www (서버 실행)
→ app.js (미들웨어 + 라우터 연결)
→ routes (URL 분기)
→ controller
→ model(DB)