-
Notifications
You must be signed in to change notification settings - Fork 1
Project Information
최근 늘어나는 1인가구와 배달료 인상을 고려하여 저렴한 가격에 반찬을 제공하는 반찬 가게 플랫폼
- 기본적으로 커밋 메시지는 제목 / 본문으로 구분한다.
- ✅ feat : 새로운 기능 추가
- ✅ fix : 버그 수정
- ✅ docs : 문서 수정
- ✅ style : 코드 포맷팅, 세미콜론 누락, 코브 변경이 없는 경우
- ✅ refactor : 코드 리팩토링
- ✅ test : 테스트코드, 리팩토링 테스트 코드 추가
- ✅ chore : 기타 변경사항
- ✅ 어떠한 기능을 개발했는지 본문을 통해 알 수 있도록 작성한다.
- ✅ 작성 예시) feat:로그인 기능 개발
- ✅ 1개의 PR에는 1개의 커밋을 기본으로 한다.
- PR을 통한 merge : 리뷰어가 모두 approve 해야 merge 가능하도록 제한
- PR을 올리기 전 이슈에 PR의 세부사항을 작성
- PR을 올릴 브랜치명은 커밋제목/이슈번호/본문으로 작성한다
- 예시) feat/1/로그인기능

- 깃플로우
- ✅ master : 배포 단계에 출시될 수 있는 브랜치
- ✅ develop : 개발이 끝난 버전을 개발하는 브랜치
- ✅ feature : 기능을 개발하는 브랜치
- ✅ release : 배포 버전을 준비하는 브랜치
- ✅ hotfix : 배포 버전에서 발생한 버그를 수정 하는 브랜치
- ✅ issue/* : issue를 나누어서 개발에 적용하는 브랜치

docker를 이용해 서버의 8200 포트에 Vault컨테이너를 띄웠습니다. 컨테이너 내부적으로는 8200 포트를 설정해 놓았으며 소셜로그인, 카카오페이, db연동시 필요한 데이터를 키-값 형태로 저장했습니다. Vault에 저장된 값은 프로젝트의 yaml파일에서 id: {저장된 키 이름}으로 불러올 수 있습니다.
Nginx의 리버스 프록시 기능을 이용해 무중단 배포를 구현했습니다. 예를 들어 현재 Nginx가 WAS의 8080포트를 가르키고 있다면 새로운 버전의 서비스가 배포될 경우 8081 포트에 배포하도록 설정했으며 배포 스크립트에 Nginx가 가르키는 서버의 방향을 8081포트로 설정하게 한 후 Nginx 설정을 reload하도록 했습니다. 이때 reload시 걸리는 시간은 0.1초 내외로 매우 짧은시간 내에 설정이 완료 됩니다.
git push 가 발생 할 때마다 자동 테스트와 빌드가 진행되도록 설정했습니다. 설정한 파이프라인에 따라 build(test) -> deploy의 과정을 거치며 deploy시 ec2인스턴스에 생성한 배포 스크립트를 실항합니다.
ElasticSearch의 서버는 Docker를 통해 단일 클러스터로 설정했으며 데이터 조회 시 ElasticSearch Repository에서 조회해 결과를 반환합니다.
ElasticSearch 저장소와 MySQL 저장소의 데이터 일관성을 위해 사용했습니다. MySQL 저장소에 데이터 저장 시 AOP가 발동해 Kafka에 메시지가 전송되며 Consumer에서 전송된 메시지가 ES 저장소에 저장됩니다.