- SecurityConfig에 CorsConfigurationSource 빈 추가
- 모든 HTTP 메소드 지원 (GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD)
- 환경변수 기반 Origin 패턴 설정 (개발환경: *, 프로덕션: 구체적 도메인)
- Preflight 요청 캐시 및 노출 헤더 설정
- application.yml에 CORS 설정 블록 추가
🔧 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 모든 서비스(api-gateway, user-service, bill-service, product-service, kos-mock)의 환경변수 매핑
- VM 접속 및 ACR 로그인 방법 포함
- 컨테이너 실행, 상태 확인, 재배포 프로세스 완비
- CORS 설정에 프론트엔드 주소 자동 추가
- 실제 인프라 정보(ACR, VM, DB) 반영
- Redis timeout 값을 문자열('2000ms')에서 숫자(2000)로 변경
- lettuce pool max-wait 값도 동일하게 수정
- 영향 서비스: bill-service, product-service, user-service
- TypeMismatchException 해결로 런타임 오류 수정
- 5개 백엔드 서비스의 컨테이너 실행 가이드 작성
- 각 서비스의 환경변수를 .run.xml에서 추출하여 적용
- ACR(acrdigitalgarage01) 연동 및 이미지 푸시 가이드
- VM(4.230.5.6) 접속 및 컨테이너 실행 방법
- CORS 설정에 VM IP 주소 추가로 프론트엔드 호환성 확보
- 재배포, 헬스체크, 트러블슈팅 가이드 포함
대상 서비스:
- api-gateway:8080 (API Gateway)
- user-service:8081 (사용자 관리)
- bill-service:8082 (요금 조회)
- product-service:8083 (상품 변경)
- kos-mock:8084 (KOS 목업)
- 5개 백엔드 서비스의 bootJar 설정 추가/수정
- 공통 Dockerfile-backend 생성 (멀티 스테이지 빌드)
- 각 서비스별 컨테이너 이미지 빌드 완료
- 보안 강화된 컨테이너 구성 (비루트 사용자)
- 상세한 빌드 결과 문서 작성
서비스 목록:
- api-gateway:latest (329MB)
- user-service:latest (376MB)
- bill-service:latest (385MB)
- product-service:latest (392MB)
- kos-mock:latest (372MB)
- user-service: 회원등록 API를 upsert 방식으로 변경 (기존 사용자 업데이트 지원)
- user-service: userName 필드 응답 누락 문제 해결 (DB 데이터 업데이트)
- kos-mock: Mock 데이터 생성 기간을 3개월에서 6개월로 확장
- product-service: 회선번호 대시 처리 지원 (010-1234-5678, 01012345678 모두 허용)
- bill-service: 회선번호 대시 선택적 처리 지원 (유연한 입력 형식)
- api-gateway: CORS 중복 헤더 제거 필터 추가
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 서비스 디스커버리 제거하고 직접 URL 라우팅으로 변경
- application.yml 환경변수 기반 동적 라우팅 적용
- 로그인/리프레시 API 경로 수정 (/api/v1/auth/login, /api/v1/auth/refresh)
- 사용자 관련 API 경로 추가 (/api/v1/users/**)
- JWT 인증 필터 적용 및 Circuit Breaker 설정 유지
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
User Service AuthController의 실제 경로에 맞게 라우팅 수정:
- 기존: /api/auth/** -> /auth/** (잘못된 경로)
- 수정: /api/auth/** -> /api/v1/auth/** (올바른 경로)
AuthController는 @RequestMapping("/api/v1/auth")로 설정되어 있음
이제 Gateway를 통한 인증 API 호출이 정상 동작함
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
주요 변경사항:
- Gateway 라우팅 경로 통일화 (/api/{service}/**)
* user-service: /api/auth/**
* bill-service: /api/bills/** (내부적으로 /api/v1/bills/**로 변환)
* product-service: /api/products/** (내부적으로 /products/**로 변환)
* kos-mock: /api/kos/** 추가
- OpenAPI 서버 정보 동적 수정
* 각 서비스의 OpenAPI JSON에 Gateway 경로 정보 주입
* "Try it out" 기능이 Gateway를 통해 정상 동작하도록 개선
- Swagger UI 설정 개선
* 서비스별 이모지와 한글 설명 추가
* 표시 순서 최적화 (User → Bill → Product → KOS → Gateway)
- 서비스별 GroupedOpenApi 빈 추가
* 각 서비스별 상세 정보와 기능 설명 포함
* 일관된 API 문서 구조 제공
이제 API Gateway의 Swagger UI에서 모든 마이크로서비스 API가 통합되어 표시되며,
실제 테스트도 가능합니다.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
주요 문제점 식별:
- Gateway 라우팅 경로 불일치 (product-service: /products/**, bill-service: /api/v1/bills/**)
- OpenAPI 서버 정보와 실제 Gateway 경로 매핑 누락
- Swagger UI에서 "Try it out" 기능 미작동
다음 단계: 라우팅 경로 통일화 및 OpenAPI 서버 정보 수정 예정
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- MockDataService에 updateCustomerProduct 메서드 추가
- KosMockService에 실제 고객 데이터 업데이트 로직 추가
- 상품변경 시 고객의 current_product_code를 실제로 업데이트하도록 수정
- 트랜잭션 처리로 데이터 일관성 보장
- product-service Hibernate dialect 설정 추가
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
주요 변경사항:
- 모든 서비스 context-path 제거 (user-service: /api/v1, bill-service: /bill-service, product-service: /api/v1, kos-mock: /kos-mock)
- 포트 번호 조정 (bill-service: 8082, kos-mock: 8084)
- 모든 서비스에 표준화된 SwaggerConfig 클래스 추가
- SecurityConfig에서 Swagger 관련 URL 무인증 처리 개선
- JWT Bearer Authentication 스키마 추가
- 서버 URL 설정 및 커스텀 변수 지원
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>