Skip to content

GomGomDiary/GomGomBack

Repository files navigation

Build Status Build Status

GomGomDiary Backend

바쁜 일상 속 사랑하는 누군가에 대해 곰곰이 고민하는 시간을 주는 GomGomDiary입니다.

Project Architecuture

image

기술 스택

Backend

Database

Infra

CI/CD

Monitoring

Load Testing

TIL

개발 기록은 노션에 정리했습니다.

Prerequisites

  • Docker (20.10.14 or higher)
  • docker-compose (1.29.2 or higher)
  • Node.js v18.8.0 or higher
  • NestJS CLI v9.1.8
    • v10 이상에서 사용시 vim 에디터에 문제가 생겨 다운그레이드 시켰습니다.

Installation

  1. Clone the repository.

  2. touch .env.[development | test] file, and fill.

    .env.example 참고해주세요.

  3. run docker compose using docker-development.sh

    매번 docker-compose 명령어를 입력하는게 귀찮아 alias를 사용했다가, 이마저도 불편해서 쉘스크립트를 만들었습니다.

    아래 명령어를 참고해주세요.

    $ bash docker-development.sh
    

    or

    $ chmod 744 docker-development.sh; ./docker-development.sh
    

Load testing

부하 테스트에 대한 설명은 load-test에 쓰여있습니다.

주의 사항

환경 변수

개발 시 환경변수가 업데이트 될 수 있습니다. 아래 룰을 따라주세요.

  1. .env.development, .env.test, .env.example에 field를 추가시켜주세요.
  2. docker-compose.test.yaml에 environment를 추가시켜주세요.

.env.development는 개발 시, .env.test는 로컬에서 e2e, 부하 테스트를 돌릴 시, docker-compose.test.yaml은 CI에서 필요합니다.

3-1. JWT secret과 같은 secret 중요도가 높은 변수라면...

3-2. PORT와 같은 secret 중요도가 낮은 변수라면...

Contribution rule

Pull Request

  1. 해당 프로젝트를 fork합니다.
  2. 새 브랜치를 만들어주세요. ( ex: git checkout -b feature/foo )
  3. 작업 후 푸쉬한 다음 해당 프로젝트로 PR을 보내주세요.

commit form

  • .gitmessage.txt를 참고해주세요.
    • 아래 명령어는 커밋 시 템플릿을 사용할 수 있게 해줍니다.
       $ git config commit.template .gitmessage.txt
      
    • 템플릿 적용 테스트는 아래 명령어를 입력해주세요.
       $ git commit --allow-empty
      

Deployment

main branch에 push가 일어나고, 해당 커밋의 변경 사항이 src 디렉토리에서 일어났으면 ECS로 배포됩니다. 참고

성공 / 실패에 대한 상태는 github action이 webhook으로 discord에 쏴줍니다.

성공

image

실패

image