Spring4 Gighub Action , Docker Compose, Nginx, code deploy 무중단 배포 무중단 배포1. rolling update 배포새로 배포되어야 하는 버전을 하나씩 순차적으로 적용시키면서 배포하는 방식입니다. 한 번에 모두 배포되는 게 아니기 때문에 배포가 되는 과정에서 옛날 버전과 새로운 버전이 공존합니다. 그렇기 때문에 잘못하면 배포하는 과정 중에 호환성 문제가 생길 수 있습니다2. Blue,Green 배포예시를 들자면 이전의 8080포트를 쓰고 있는 컨테이너가 있습니다. 새로운 컨테이너를 새로운 포트(8081)로 올립니다. 다 올려졌다면 nginx는 새로운 컨테이너 포트로 연결하고 이전 컨테이너는 내립니다.3. 카나리 배포적은 사용자에게 먼저 배포 후 A/B 테스트. 현재 단계에서는 고려하지 않겠습니다.rolling update는 인스턴스를 두 대 이상 사용하여 비용 문제가 발생.. 2024. 12. 18. Gighub Actions,docker 배포(Linux Ec2) GitHub ActionsGitHub Actions는 일반적으로 CI(Continuous Integration, 지속 통합) 또는 CD(Continuous Deployment, 지속 배포)와 같은 자동화를 위해서 사용됩니다. 운영환경에 소스코드를 머지하기 위해 반복적으로 처리되야 할 일들들을 처리해줍니다. 즉, CI/CD를 위한 파이프라인입니다. CD ( Code Deploy)Source Code를 운영환경에 자동 배포하는 역할을 수행하는 행위(지속적 자동 배포) 전체적인 플로우1. Github Action에서 소스코드를 빌드한다.2. Github Action에서 빌드한 소스코드를 이미지로 빌드한다.3. Github Action에서 빌드한 이미지를 Docker 레퍼지토리에 넣는다.4. Github Act.. 2024. 12. 18. 몰랐던 어노테이션 정리 1. 테스트 관련 어노테이션# @ParameterizedTest @ParameterizedTest@ValueSource( strings = { "glutenFreeTag", "highProteinTag", "sugarFreeTag", "veganTag", "ketogenicTag" } ) //또는 @ParameterizedTest@EnumSource(value = Category.class)@DisplayName("순서가 없고 카테고리 필터링 조건이 있어도 정상적으로 조회한다.")void getBoardListSuccessWithCategoryCondition(Category catego.. 2024. 8. 7. Spring Boot로 이메일 인증 API 설계 및 구현: 레디스와 비동기화를 활용한 최적화 제가 개발중인 대학교 네트워킹 플랫폼은 신분 인증을 위해 이메일 인증이 필수적인 요소입니다. 본 포스팅에서는 Spring Boot를 활용하여 이메일 인증 시스템을 구현, 레디스를 활용하여 인증시간 단축과 API 호출회수 제한, 비동기화를 도입하여 사용자 경험 개선한 사례를 설명드리겠습니다.다.주요 목표이메일 인증 번호 발송 시스템 설계 및 구현Redis를 활용한 인증 번호 관리API 호출 횟수 제한을 통해 시스템 안정성 강화인증 이메일을 보낼 이메일(Google, Naver ...)마다 다르겠지만 추가적인 이메일 설정이 필요합니다. 저는 Gmail을 사용했습니다. Gmail 설정은 이 링크를 참고하세요! Gradle이메일 전송을 위해 Spring Boot Starter Mail 의존성을 추가합니다. .. 2024. 1. 24. 이전 1 다음