Skip to content

[Feature] 게이트웨이 서버 거치도록 변경 및 docker로 배포 방식 변경#60

Merged
imeasy99 merged 33 commits intodevfrom
feat/internal-server-api
Feb 23, 2026
Merged

[Feature] 게이트웨이 서버 거치도록 변경 및 docker로 배포 방식 변경#60
imeasy99 merged 33 commits intodevfrom
feat/internal-server-api

Conversation

@imeasy99
Copy link
Collaborator

📝 작업 내용

  • 소셜 로그인/연동 redirectUri 지원

    • Google/Kakao/Naver 로그인/연동 요청 DTO에 redirectUri: String? 필드 추가
    • SocialLoginRequest, SocialLinkRequest, OAuthAuthCodeRequestredirectUri 필드 추가
    • LoginProvider / LinkProvider에서 OAuthAuthCodeRequest 생성 시 redirectUri 전달
    • OAuthRedirectUriResolver에서 요청에 redirectUri가 있으면 그 값 사용, 없으면 env 기본 *_REDIRECT_URI 사용하도록 단순화
    • 각 OAuth 클라이언트(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 수정
      • EC2에 docker-compose.yml 복사
      • EC2에서 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 처리 로직
    • 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)이 실제 운영 환경과 맞는지 확인 부탁드립니다.

HJunng and others added 30 commits February 9, 2026 18:14
- `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` 추가
- `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 컨테이너 종료 및 강제 제거 명령 추가
@imeasy99 imeasy99 self-assigned this Feb 23, 2026
@imeasy99 imeasy99 added the 🍎 fix 기능 수정 label Feb 23, 2026
@imeasy99 imeasy99 merged commit e44efdf into dev Feb 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🍎 fix 기능 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants