[Feature] 게이트웨이 서버 거치도록 변경 및 docker로 배포 방식 변경#60
Merged
Conversation
- `Role` 사용 및 관련 로직 삭제 - `JwtProvider` 메서드 간소화 및 `UuidCreator`로 jti 생성 로직 변경 - `PrincipalDetails` 구조 단순화 (역할 제거) - `AdminApi` 어노테이션 삭제
- `Role` 삭제 및 관련 애트리뷰트, 메서드 제거 - `UUID.randomUUID`를 `UuidCreator.getTimeOrdered`로 대체 - `JwtProvider` 호출 시 역할 매개변수 제거
- Gradle Wrapper 설정 파일 및 관련 JAR 파일 추가
- FailResponse, SuccessResponse, Responses 클래스 제거 - CommonResponse 추가로 성공 및 실패 응답 통합 - 공통 응답 코드 및 메시지 Companion Object에 정의
- GlobalExceptionHandler에서 FailResponse 대신 CommonResponse로 변경 - RateLimiterInterceptor의 실패 응답에 CommonResponse.fail 활용 - FailResponse 관련 로직 및 호출부 제거
- 모든 컨트롤러 및 핸들러에서 CommonResponse로 응답 통일 - SuccessResponse, FailResponse, Responses 클래스 삭제 - API 문서 응답 스키마를 CommonResponse 기반으로 수정 - MemberService에 getPrimaryProvider 메서드 추가 - application.yml에 서버 포트 설정 변경 (9000)
- 애플리케이션 빌드를 위한 멀티 스테이지 Dockerfile 추가 - Gradle 빌드 설정 및 결과 JAR 파일 컨테이너에 복사 - 애플리케이션 실행을 위한 기본 이미지 설정 (Eclipse Temurin 기반) - 9000 포트 노출 및 실행 명령어 추가 - 비루트 사용자 생성 및 사용 설정
- README.md에 EC2 Docker 배포 섹션 추가 - GitHub Actions 빌드·푸시 및 컨테이너 갱신 흐름 설명 - 프로젝트 이름을 'auth-backend'로 수정 (settings.gradle.kts)
- Docker 이미지 빌드 및 푸시 단계 분리 (`docker/build-push-action`) - EC2 환경 변수 관리 파일 처리 방식 변경 (로컬 생성 및 원격 전송) - 컨테이너 배포 시 기존 컨테이너 정리 및 새 이미지 실행 추가
- 프로젝트에 필요한 환경 변수 `.env.sample` 파일 추가 - 프로필, 데이터베이스, JWT, 메일 설정 등 기본 값 포함 - Google, Kakao, Naver OAuth 클라이언트 설정 추가 - CORS 허용 도메인 및 기본 시간대 설정 포함 (Asia/Seoul)
- 프로젝트 이름을 'auth-backend'에서 'auth-be'로 변경 - `.env.sample`에 JWT 토큰 만료 시간 기본값 추가 (1h, 14d) - CORS 허용 도메인에 `auth.easyappfactory.com` 추가 - GitHub Actions 워크플로의 환경 변수 파일명 수정 - README.md 및 Dockerfile 등 관련 문서 및 파일 수정
- POSIX 호환 Gradle 시작 스크립트 추가 - `gradlew`를 통해 프로젝트 빌드 및 관리 기능 제공 - 다양한 OS에서 유연한 빌드 환경 지원
- CommonResponse에 @JsonInclude(JsonInclude.Include.NON_NULL) 추가 - 실패 응답 타입을 `Nothing?`에서 `Unit`으로 변경 - 컨트롤러 응답에서 불필요한 `data = null` 제거 - 인증 이메일 요청 및 인증 로직 리팩토링으로 코드 간결화
- CommonResponse에 @JsonInclude(JsonInclude.Include.NON_NULL) 추가 - 실패 응답 타입을 `Nothing?`에서 `Unit`으로 변경 - 컨트롤러 응답에서 불필요한 `data = null` 제거 - 인증 이메일 요청 및 인증 로직 리팩토링으로 코드 간결화
- 워크플로의 ENV_FILE 환경 변수명을 AUTH_BE_ENV_FILE로 수정 - echo에서 printf로 변경하여 출력 포맷 안정성 확보
- 환경 변수 파일 경로를 `/env/auth-be.env`에서 `~/env/auth-be.env`로 변경 - README.md의 Docker 실행 명령어 반영 - GitHub Actions 워크플로에서 EC2 환경 변수 디렉토리 생성 방식 수정 - 배포 스크립트에 Docker 명령어 경로 명시 및 로깅 아웃 추가
- `.env.sample`의 `DB_USER`를 `DB_USERNAME`으로 변경 - `application-prod.yml`의 데이터베이스 username 키에 변경된 환경 변수 반영
- Spring Security 설정에서 CORS 비활성화 (`cors { it.disable() }`)
- WebConfig에서 CORS 관련 설정 및 빈 제거
- API Gateway에서만 CORS 처리하도록 구조 변경
- REST API 경로에서 빠진 '/' 누락 부분 수정
- Spring Security 설정에서 CORS 비활성화 (`cors { it.disable() }`)
- WebConfig에서 CORS 관련 설정 및 빈 제거
- API Gateway에서만 CORS 처리하도록 구조 변경
- REST API 경로에서 빠진 '/' 누락 부분 수정
- OAuth 인증 요청 시 redirectUri 파라미터 추가 및 검증 로직 구현 - Google, Kakao, Naver 클라이언트의 redirectUri 처리 로직 추가 - 요청 DTO 및 도메인 모델에 redirectUri 필드 추가 - 허용되지 않은 redirectUri 예외 처리 코드 정의 (INVALID_REDIRECT_URI) - README.md의 OAuth 요청 예시에 redirectUri 관련 내용 추가
- OAuth 인증 요청 시 redirectUri 파라미터 추가 및 검증 로직 구현 - Google, Kakao, Naver 클라이언트의 redirectUri 처리 로직 추가 - 요청 DTO 및 도메인 모델에 redirectUri 필드 추가 - 허용되지 않은 redirectUri 예외 처리 코드 정의 (INVALID_REDIRECT_URI) - README.md의 OAuth 요청 예시에 redirectUri 관련 내용 추가
Co-authored-by: Cursor <cursoragent@cursor.com>
- GitHub Actions 워크플로의 배포 대상 브랜치를 `feat/internal-server-api`에서 `dev`로 변경
[Feature] internal gateway 서버 거치는 방식으로 변경 및 Docker 배포 방식으로 변경
- GitHub Actions 워크플로의 배포 대상 브랜치에 `feat/internal-server-api` 추가
…eat/internal-server-api
- `docker-compose.yml` 복사 단계 제거 - `docker compose up` 명령에 `--no-deps` 옵션 추가하여 의존성 컨테이너 재시작 방지
- `docker-compose.yml` 복사 단계 제거 - `docker compose up` 명령에 `--no-deps` 옵션 추가하여 의존성 컨테이너 재시작 방지
…eat/internal-server-api # Conflicts: # .github/workflows/deploy.yml
- auth-be 컨테이너 종료 및 강제 제거 명령 추가
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 작업 내용
소셜 로그인/연동 redirectUri 지원
Google/Kakao/Naver로그인/연동 요청 DTO에redirectUri: String?필드 추가SocialLoginRequest,SocialLinkRequest,OAuthAuthCodeRequest에redirectUri필드 추가LoginProvider/LinkProvider에서OAuthAuthCodeRequest생성 시redirectUri전달OAuthRedirectUriResolver에서 요청에 redirectUri가 있으면 그 값 사용, 없으면 env 기본*_REDIRECT_URI사용하도록 단순화GoogleOAuthClient,KakaoOAuthClient,NaverOAuthClient)가 Resolver를 통해 최종 redirect_uri를 결정하도록 수정배포/운영 개선
docker-compose.yml추가env/auth-be.env,env/api-gateway.env를 사용하는 상대 경로 구성auth-be,api-gateway두 서비스를 하나의 compose로 관리.github/workflows/deploy.yml수정docker-compose.yml복사docker compose pull auth-be && docker compose up -d auth-be만 실행해 auth-be만 부분 재배포.dockerignore추가로 Docker 빌드 컨텍스트 축소docs/ENV.md,docs/OAuth_redirect_URI_전략.md, CORS/API Gateway 관련 가이드 문서 추가 및 최신 로직(redirectUri 처리 방식)에 맞게 정리💬 리뷰 요구사항
redirectUri가 null/빈 문자열일 때 항상 env 기본값(GOOGLE_REDIRECT_URI,KAKAO_REDIRECT_URI,NAVER_REDIRECT_URI)을 사용하도록 한 흐름이 자연스러운지,redirectUri전달 경로(Controller DTO → 도메인 → Provider → OAuthClient)가 빠짐없이 연결되어 있는지 봐주시면 좋겠습니다..github/workflows/deploy.yml에서 EC2 상의docker-compose.yml위치/경로 가정(~/docker-compose.yml,~/env/auth-be.env)이 실제 운영 환경과 맞는지 확인 부탁드립니다.