한국의 미쉐린 심대성과 숭실의 로맨틱 가이 김민근이 관리하는 백엔드
표기법 | 설명 |
---|---|
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 스위칭을 통해 무중단 배포를 진행