HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
💸
10원모아10조❗️
/
🏝️
Back End
/
🗑️
메모
/
YANJU

YANJU

 
CI CD
github action → s3 → code deploy → ec2
  • 도커나 젠킨스를 이용하는 방법도 있지만, 이 방법이 제일 익숙할것이라 생각
notion image
 
추가적으로 nginx 리버스 프록시를 이용해 무중단 배포도 가능 (이것도 해보면 좋을 듯)
무중단 배포 구조
notion image
notion image
notion image
 
무중단 배포 포함 전체 구조
notion image
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 일부 발췌
10장 무중단 배포.pdf
5197.0KB
 
 
Branch 전략
github flow (https://velog.io/@kw2577/Git-branch-전략)
notion image
  • 원격 저장소에 브랜치(브랜치 이름은 자세한 작업명을 적어야한다)를 만들어서 작업
    • 브랜치 이름은 issue 번호로 해도 될 것 같다고 생각
    • issue에 자세한 작업명이 등록되있을거니까
  • feature, hotfix의 브랜치를 없애고 위에 자세한 브랜치 이름으로 작업을 나타낸다.
  • 피드백, 도움, merge 준비가 완료되면 PR을 생성해서 해결한다.
  • PR이 바로 main 브랜치로 반영되므로 배포 주기가 짧아진다.
    • 무중단 배포를 한다면 위 전략이 어울릴 것 같음
 
자세한 사용법
  1. master 브랜치는 어떤 때든 배포가 가능하다
      • master 브랜치는 항상 최신 상태며, stable 상태로 product에 배포되는 브랜치
      • 이 브랜치에 대해서는 엄격한 role과 함께 사용한다
      • merge하기 전에 충분히 테스트를 해야한다. 테스트는 로컬에서 하는 것이 아니라 브랜치를 push 하고 Jenkins로 테스트 한다
  1. master에서 새로운일을 시작하기 위해 브랜치를 만든다면, 이름을 명확히 작성하자
      • 브랜치는 항상 master 브랜치에서 만든다
      • Git-flow와는 다르게 feature 브랜치나 develop 브랜치가 존재하지 않음
      • 새로운 기능을 추가하거나, 버그를 해결하기 위한 브랜치 이름은 자세하게 어떤 일을 하고 있는지에 대해서 작성해주도록 하자
      • 커밋메시지를 명확하게 작성하자
  1. 원격지 브랜치로 수시로 push 하자
      • Git-flow와 상반되는 방식
      • 항상 원격지에 자신이 하고 있는 일들을 올려 다른 사람들도 확인할 수 있도록 해준다
      • 이는 하드웨어에 문제가 발생해 작업하던 부분이 없어지더라도, 원격지에 있는 소스를 받아서 작업할 수 있도록 해준다
  1. 피드백이나 도움이 필요할 때, 그리고 merge 준비가 완료되었을 때는 pull request를 생성한다
      • pull request는 코드 리뷰를 도와주는 시스템
      • 이것을 이용해 자신의 코드를 공유하고, 리뷰받자
      • merge 준비가 완료되었다면 master 브랜치로 반영을 요구하자
    1. 기능에 대한 리뷰와 논의가 끝난 후 master로 merge한다
      • 곧장 product로 반영이될 기능이므로, 이해관계가 연결된 사람들과 충분한 논의 이후 반영하도록 한다
      • 물론 CI도 통과해야한다!
  1. master로 merge되고 push 되었을 때는, 즉시 배포되어야한다
      • GitHub-flow의 핵심
      • master로 merge가 일어나면 자동으로 배포가 되도록 설정해놓는다