Skip to content

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

Notifications You must be signed in to change notification settings

26-kusitms-fullmugu/nanumeal-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dff8edb · Nov 25, 2022
Nov 20, 2022
Oct 10, 2022
Nov 20, 2022
Nov 23, 2022
Nov 17, 2022
Nov 25, 2022
Nov 18, 2022
Nov 23, 2022
Oct 10, 2022
Oct 10, 2022
Oct 10, 2022

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