Skip to content

[큐시즘 26기 밋업데이] 기부를 통해 결식아동들이 다양한 식사를 할 수 있도록 돕는 서스펜디드 밀 플랫폼, Backend

Notifications You must be signed in to change notification settings

26-kusitms-fullmugu/nanumeal-backend

Repository files navigation

nanumeal-backend

한국의 미쉐린 심대성과 숭실의 로맨틱 가이 김민근이 관리하는 백엔드

Commit Convention

표기법 설명
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

README_GitFlow

기술 스택

icon

시스템 아키텍처

System Architecture

  • 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를 이용하였습니다.

서버 모니터링

Server Monitoring

  • Prometheus를 이용해 서버의 데이터 로그를 수집하고, Grafana를 이용해 데이터를 시각화하였습니다.

CI / CD 과정

CICD_Architecture

  1. Git Flow에 따라 기능 구현
  2. dev 브랜치에 Pull Request를 보내 코드를 merge
  3. merge된 코드가 잘 작동되는 것을 확인 후 master 브랜치에 Pull Request를 보내 merge
  4. 코드가 merge되면 Github Actions에서 프로젝트를 빌드 후 해당 JAR 파일을 AWS S3에 전달
  5. Github Actions에서 CodeDeploy에 해당 JAR 파일을 배포하도록 전달
  6. CodeDeploy는 EC2 서버에 있는 CodeDeploy Agent가 S3 버킷에서 JAR 파일을 받아와 주어진 쉘 스크립트에 따라 배포를 진행하도록 함
  7. 새로운 Spring Boot WAS를 띄운 뒤, Nginx 스위칭을 통해 무중단 배포를 진행

About

[큐시즘 26기 밋업데이] 기부를 통해 결식아동들이 다양한 식사를 할 수 있도록 돕는 서스펜디드 밀 플랫폼, Backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published