Express in Practice 001 - Introduction
Saturday, Aug 17, 2019
실전 Express!
Express.js 의 5.x 알파버전이 공개되었습니다. Async Router 등의 기능때문에 많이 기대하고 있었는데요. 이 기회를 빌어 Node.js 백엔드에서 가장 많이 사용되는 프레임워크인 Express.js 에 대해 소개하고 실전에서 얻은 경험을 공유해보기 위해 강의를 연재해보려고 합니다.
Express.js 의 간단한 소개
Express.js 는 여러겹의 middleware로 구성 할 수 있는 Web Framework 입니다.
좀 더 간단하게 설명해보자면
graph LR
HTTP요청 --> 처리1
처리1 --> 처리2
처리2 --> 처리3
처리3 --> HTTP응답
이와같이 HTTP 요청을 일련된 단계를 거쳐서 응답을 만들어냅니다.
로그를 찍거나, 데이터를 가져오거나, 페이지를 렌더링 하는것들이 모두 middleware 로 구현될 수 있습니다.
개발자의 관점에서 Express.js 는 매우 간단하고 직관적인 구조를 가지고 있기 때문에 배우기 쉬울뿐만아니라 기능의 확장도 아주 유연합니다.
강의계획
대상
Express.js의 튜토리얼을 마친 상태의 Express.js 유저
개발환경
- Node.js v10.16.2 (Latest LTS: Dubnium)
- Express.js Version 5.x
- 글을 쓰는 시점에서 5.x 버전이 알파상태입니다.
- Ubuntu 18.04
- 다른 운영체제를 사용하더라도 아마 이 강의를 이해하는데 큰 문제가 없을것입니다.
- git
다룰 내용
이 강의에선 간단하게 RESTful API 서버개발을 위주로 설명을 하도록 하겠습니다.
여기에 이야기된것 이외의 부분에서 다루었으면 하는 내용이 있다면 코멘트나 이메일을 주세요. 여유가 된다면 이번 시리즈나 다음번 글에서 다뤄보도록 하겠습니다.
목차
- 프로젝트 시작, Boilerplating
- CORS, Middleware
- 설정, Configuration
- 로깅, Logging
- 비동기 라우터, Async Router
- 글로벌 에러 핸들러, Global Error Handler
- 테스팅, Testing
- 기술문서생성, Documentation
- 도커를 이용한 배포, Deployment with Docker
목차 (w/설명)
- 프로젝트 시작, Boilerplating
- Express 프로젝트를 만들고 각종 세팅을 합니다.
- CORS, Middleware (Optional)
- 주로 많이들 쓰는 미들웨어들을 소개하고 세팅합니다. 만약 필요하지 않다면 넘어가도 좋습니다.
- 설정, Configuration
- Development, Test, Production 별로 다른 설정을 사용하기 위한 설정파일을 세팅하고 다룹니다.
- 로깅, Logging
- 서버를 작성하면서 필요한 로그를 남기는 방법에 대해 설명합니다.
- 비동기 라우터, Async Router
- 비동기 함수로 만들어진 라우터를 작성하기 위해 필요한 추가적인 내용들을 다룹니다.
- 글로벌 에러 핸들러, Global Error Handler
- 에러를 핸들링하는 여러가지 방법에 대해 알아보고 미처 처리하지 못한 예외나 에러를 다루는 방법에 대해 알아봅니다.
- 테스팅, Testing
- 서버를 테스팅하는 방법에 대해 간단하게 알아보도록 합니다.
- ava 를 사용할것입니다.
- 기술문서생성, Documentation
- RESTful API Spec을 공유하고 문서화를 자동화해주는 방법에 대해서 다룹니다.
- 도커를 이용한 배포, Deployment with Docker
- 서버를 Docker 로 배포하기 위해 필요한 작업들에 대해 다룹니다.
- multi stage image build