Skip to content
Dakyung Ko edited this page Jun 28, 2019 · 14 revisions

yappian-server wiki

STACK

  • BACKEND : Spring Boot 2.x
  • DATABASE : MySQL
  • ORM : JPA
  • CLOUD : EC2, S3
  • CD/CI : TRAVIS CI, AWS CODE-DEPLOY
  • SOURCE VERSION CONTROL : GIT
  • REPOSITORY : GITHUB
  • ISSUE TRACKER : ZENHUB
  • COMMUNICATION : SLACK
  • AUTH : OAuth2
  • DOCUMENT : SWAGGER

BRANCH

기본적으로 git flow의 브런치 전략을 따른다.

  • develop : 개발에 필요한 공통 코드를 작성한다. 이후 기능 개발이 완료된 코드를 feature 브런치에서 merge한다.
  • feature/* : 새로운 기능을 개발할 때 develop에서 분기해 작업한다.
  • master : develop Branch 검토 후 merge한다. 완전히 검증된 코드만을 남겨둔다.
  • deploy : 최종적으로 배포할 내용을 master Branch에서 merge/push한다.
    • 배포용 commit이 카운트 되는 것을 방지하기 위해 master와 분리한다.
  • release : 버전을 관리하기 위한 브런치이다.

VERSION

major.minor.build

  • FE 빌드 파일을 적용해 배포하는 경우 build 버전을 변경한다.
  • 서버 기능별 작업이 완료된 경우 minor 버전을 변경한다.
  • 최종적으로 개발이 완료된 후 major 버전을 변경한다.

PROCESS

  • develop Branch에서 기능에 해당하는 Branch를 생성한다(feature/*).
  • 기능별 Branch(feature/*)에서 작업을 진행한다.
  • 이후 develop Branch로 병합한다.
  • develop Branch 검토 후 master Branch로 병합한다.
  • master Branch에 구현한 기능은 항상 동작하여야한다.

DEPLOY

  • master Branch에서 deploy Branch로 merge한다.
  • 또는 FE build Filebuild.gradle 파일을 변경한 뒤 push한다.
  • deploy Branch로 push/merge시 서버로 자동 배포된다.
  • Health Check API로 서버 실행여부를 확인할 수 있다.

HOW TO RUN

  • 프로젝트 최상위 폴더에서 진행한다.
#!/usr/bin/env bash
git checkout deploy
git pull origin deploy
./gradlew test # test 진행
./gradlew build # build 진행
cd build/libs
nohup java -jar $JAR_NAME & # 프로젝트 실행 

MEMBER

  • 고다경, 김지혜
Clone this wiki locally