초기 구축마다 똑같은 구조와 라이브러리로 반복 작업을 하는 것이 지겨웠어요.
저만의 보일러플레이트를 만들어서 단순 작업들을 없애기 위해 만들었어요. :)
다른 브랜치들의 기반이 되는 중요 브랜치입니다.
# 로컬로 다운받기
$ git clone -b express --single-branch https://github.com/gingaminga/server-bolierplate.git
# 다운받은 경로로 이동
$ cd server-bolierplate
# 라이브러리 설치
$ npm install
끝입니다!
아래 명령어들로 프로젝트를 사용할 수 있어요.
# 개발 시 nodemon으로 동작
$ npm run dev
# typescript to javascript (transpile)
$ npm run build
# 단위 Test 하기
$ npm run test:unit
# 통합 Test 하기
$ npm run test:integrate
# src 하위 폴더 eslint 검사
$ npm run eslint
# src 하위 폴더 eslint 검사 및 자동 고치기
$ npm run eslint:fix
# src 하위 폴더 자동 코드 포맷팅
$ npm run prettier:write
자세한 내용은 package.json의
script
를 확인하세요. :)
.env 파일이 없어도 문제없이 동작해요. 하지만 특정 상수값들은 따로 설정할 수 있도록 했어요. :)
# .env 파일 생성 및 작성하기
$ vi .env
.env 구성에 관한 설명은 .env.sample 파일을 확인하세요 :)
만약 개발환경/테스트환경/배포환경에 따라 다르게 하고 싶다면 .env
파일 대신 .env.development
, .env.test
, .env.production
로 사용하시면 됩니다.
위에 3가지 형식에 대한 파일이 없다면, .env
파일을 참조합니다.
coverage
: 테스트 품질 지표를 나타내는 폴더dist
:src
폴더를 기준으로 트랜스파일링하여 javascript로 빌드된 폴더(tsconfig.json
에서 변경 가능)logs
:.env
파일로 설정하지 않았다면 생기는 폴더로, winston을 사용한 log를 쌓음src
: 실제 서비스에 대한 코드가 들어있는 폴더controllers
: 컨트롤러로 구성된 폴더dto
: DTO를 관리하는 폴더 (class로 구성)loaders
: 서비스의 초기 설정을 구성하는 로직이 들어있는 폴더middlewares
: 공통 미들웨어 로직이 들어있는 폴더routes
: 실제 API와 관련된 로직이 들어있는 폴더services
: 기능 단위의 서비스 로직이 들어있는 폴더test
: 테스트 로직 폴더integration
: 통합 테스트 폴더unit
: 단위 테스트 폴더
types
: 커스텀 타입을 설정하는 폴더utils
: 각종 유틸들validators
: 유효성 검사를 위한 폴더app.ts
: express 설정의 root 부분server.ts
: 서버 객체를 관리하는 파일index.ts
: 해당 프로젝트의 root 부분
git remote 를 변경하거나 삭제하면 돼요. :)
# 원격지 확인
$ git remote -v
# origin https://github.com/gingaminga/server-bolierplate.git (fetch)
# origin https://github.com/gingaminga/server-bolierplate.git (push)
# 기존 원격지 삭제
$ git remote rm origin
# 자신의 레포지토리를 원격지로 설정
$ git remote add origin [자신의 레포지토리 주소]
(해당 보일러플레이트를 사용하고 있는 상태에서) 업데이트된 소스를 반영받고 싶다면 merge or rebase
를 통해 반영하면 돼요. :)
# 원격지 추가
$ git remote add boilerplate https://github.com/gingaminga/server-bolierplate.git
# boilerplate repository 반영사항 가져오기
$ git fetch boilerplate express
# 반영사항을 현재 (자신의) 로컬 브랜치에 합치기
$ git rebase boilerplate/express
# or
$ git merge boilerplate/express