Skip to content

volunteer-project-1/volunteer-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SEE ME

장애인들만을 위한 채용 플랫폼 서버입니다.
Rest API 서버로써 Next.js와 함께 개발되었습니다.

클라이언트 Repo

프로젝트 전체적인 구조

asdf

프로젝트의 주요 관심사

공통사항

  • 코드의 지속적인 리팩토링
  • Controller와 Service 테스트 커버리지 100%

브랜치 관리 전략

Git Flow를 사용하여 브랜치를 관리합니다.
모든 브랜치는 PR을 진행 후 main으로 merge를 진행합니다.

  • main : 개발이 끝난 부분에 대해서 Merge를 진행합니다.
  • v tag : main 브랜치에서 배포시 사용합니다.
  • feature : 기능 개발을 진행할 때 사용합니다.
  • fix : 배포를 진행한 후 발생한 버그를 수정할 때 사용합니다.

테스트

  • Integration Testing
    • Prod DB와 같은 환경의 Test DB에서 테스트를 진행
  • Unit Testing

    • DB를 Mock하여 테스트 진행
  • GitHub Actions의 CI를 적용하여 테스트 자동화

사용 기술 및 환경

ExpressJS, MySQL, Redis, Docker, Filebeat + ELK, AWS Cloud

CI

v tag를 제외한 브랜치의 Commit 푸쉬와 PR 시마다 자동 Build 및 Test 적용

CD

AWS EC2에 scp를 이용한 파일 전송 후 pm2로 재실행 하여 배포합니다.
추후 EKS 전환을 대비하여 Docker 이미지를 제작하여 GitHub Container Registry에 배포합니다.

DB ERD

test0129

실행 방법

도커 컴포즈 방법을 추천드립니다.

로컬

PORT 변경은 .env.*에서 가능합니다.

$ nvm use //.nvmrc에 node 버전 명시
$ npm ci // 디펜던시 설치
$ npm run build


$ nf -e .env run npm run dev // `foreman`이라는 환경변수 주입 라이브러리 사용, 전역에 설치해주세요

도커

로컬에 docker가 설치되어 있어야 합니다.

$ docker build --target dev -t seeme .
$ docker run -d -it -p 3000:3000 --env-file .env --name seeme_server seeme npm run dev

-d 는 백그라운드 실행 옵션 입니다. (도커 컴포즈도 마찬가지)
주의 사항 : .env.* 에서 port 변경 시 docker run 에서의 port 도 변경해 주어야 합니다.

도커 컴포즈

$ docker-compose up --build
// or
$ docker-compose -f ./docker-compose.prod.yml up --build

테스팅

unit testing && integration testing 도커로 테스트 환경 구축

$ cd mysql && docker-compose up --build
$ npm run test // 다른 환경 변수 사용 하고 싶으면 `nf -e .env.test run npm run test`

prisma

prisma v4 사용.

  • prisma.shcema에 정의된 스키마의 타입 생성
$ npm run db:generate
  • prisma.shcema 변경 사항 마이그레이션 .sql 파일 생성
$ npm run db:migrate
  • prisma.shcema 변경 사항을 DB에 직접 마이그레이션
$ npm run db:push