한국의 미쉐린 심대성과 숭실의 로맨틱 가이 김민근이 관리하는 백엔드
| 표기법 | 설명 |
|---|---|
| ADD | 추가시 |
| UPDATE | 환경 설정 추가/변경 시 |
| REMOVE | 삭제 시 |
| FIX | 수정 시 |
| CORRECT | 문법 오류, 타입, 이름 변경 시 |
| REFACTOR | 리팩토링 시 |
| STYLE | 스타일 관련 기능 |
커밋 방법
| 번호 | 설명 |
|---|---|
| 1 | git clone 레포 http 주소 복사 |
| 2 | git remote add origin 레포 http주소 복사 |
| 3 | 브랜치 생성 : git branch 자기 브랜치 이름 |
| 4 | 내 브랜치로 이동 git checkout자기 브랜치 이름 |
| 5 | git commit -m “커밋메세지” |
| 6 | git add . |
| 7 | 병합 : git merge origin/내 브랜치 |
| 8 | 메인 브랜치로 이동: git checkout main |
| 9 | 푸시: git push |
Git Flow
Springboot(Java)를 이용한 API 서버를 개발하였고, JPA(ORM)과MySQL을 이용한 CRUD 구현하였습니다.- 유저의 로그인 정보를 더 안전하게 관리할 수 있는
Spring Security프레임워크를 사용했습니다. - 정보에 인증이 되어 있고 믿을 수 있는
JWT를 사용했습니다. - 이 때 소셜 로그인을 구현하기 위해 Kakao API를 사용했고, 폼 로그인을 구현하기 위해 이메일 전송 라이브러리를 사용했습니다.
- 객체와 RDBMS를 쉽게 맵핑하고자 JPA, Hibernate, Spring Data JPA를 사용했습니다.
AWS EC2를 이용해 서버를 배포하였고,AWS RDS를 이용해 DB 서버를 구성하였습니다.AWS S3를 이용해 이미지 데이터를 관리하였습니다.Springboot로 구축한 API 서버와Android를 연결하고 무중단 배포하기 위해서 Nginx를 사용했습니다.- API문서 자동화를 통해 테스트를 쉽고 편하게 하기 위해
Swagger를 사용했습니다. - 협업 및 코드 버전 관리를 위해
Github을 이용하였으며 - 자동 배포를 위해
Github actions를 이용하였습니다.
Prometheus를 이용해 서버의 데이터 로그를 수집하고,Grafana를 이용해 데이터를 시각화하였습니다.
- Git Flow에 따라 기능 구현
- dev 브랜치에 Pull Request를 보내 코드를 merge
- merge된 코드가 잘 작동되는 것을 확인 후 master 브랜치에 Pull Request를 보내 merge
- 코드가 merge되면 Github Actions에서 프로젝트를 빌드 후 해당 JAR 파일을 AWS S3에 전달
- Github Actions에서 CodeDeploy에 해당 JAR 파일을 배포하도록 전달
- CodeDeploy는 EC2 서버에 있는 CodeDeploy Agent가 S3 버킷에서 JAR 파일을 받아와 주어진 쉘 스크립트에 따라 배포를 진행하도록 함
- 새로운 Spring Boot WAS를 띄운 뒤, Nginx 스위칭을 통해 무중단 배포를 진행


