diff --git a/.claude/commands/deploy-actions-cicd-guide-back.md b/.claude/commands/deploy-actions-cicd-guide-back.md new file mode 100644 index 0000000..ae97c1d --- /dev/null +++ b/.claude/commands/deploy-actions-cicd-guide-back.md @@ -0,0 +1,17 @@ +--- +command: "/deploy-actions-cicd-guide-back" +description: "백엔드 GitHub Actions CI/CD 파이프라인 가이드 작성" +--- + +@cicd +'백엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- ACR_NAME: acrdigitalgarage01 +- RESOURCE_GROUP: rg-digitalgarage-01 +- AKS_CLUSTER: aks-digitalgarage-01 +- NAMESPACE: phonebill-dg0500 diff --git a/.claude/commands/deploy-actions-cicd-guide-front.md b/.claude/commands/deploy-actions-cicd-guide-front.md new file mode 100644 index 0000000..b4e818a --- /dev/null +++ b/.claude/commands/deploy-actions-cicd-guide-front.md @@ -0,0 +1,18 @@ +--- +command: "/deploy-actions-cicd-guide-front" +description: "프론트엔드 GitHub Actions CI/CD 파이프라인 가이드 작성" +--- + +@cicd +'프론트엔드GitHubActions파이프라인작성가이드'에 따라 GitHub Actions를 이용한 CI/CD 가이드를 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- SYSTEM_NAME: phonebill +- ACR_NAME: acrdigitalgarage01 +- RESOURCE_GROUP: rg-digitalgarage-01 +- AKS_CLUSTER: aks-digitalgarage-01 +- NAMESPACE: phonebill-dg0500 diff --git a/.claude/commands/deploy-build-image-back.md b/.claude/commands/deploy-build-image-back.md new file mode 100644 index 0000000..242c4a4 --- /dev/null +++ b/.claude/commands/deploy-build-image-back.md @@ -0,0 +1,7 @@ +--- +command: "/deploy-build-image-back" +description: "백엔드 컨테이너 이미지 작성" +--- + +@cicd +'백엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요. diff --git a/.claude/commands/deploy-build-image-front.md b/.claude/commands/deploy-build-image-front.md new file mode 100644 index 0000000..e2d8426 --- /dev/null +++ b/.claude/commands/deploy-build-image-front.md @@ -0,0 +1,7 @@ +--- +command: "/deploy-build-image-front" +description: "프론트엔드 컨테이너 이미지 작성" +--- + +@cicd +'프론트엔드컨테이너이미지작성가이드'에 따라 컨테이너 이미지를 작성해 주세요. diff --git a/.claude/commands/deploy-help.md b/.claude/commands/deploy-help.md new file mode 100644 index 0000000..660195b --- /dev/null +++ b/.claude/commands/deploy-help.md @@ -0,0 +1,64 @@ +--- +command: "/deploy-help" +description: "배포 작업 순서 및 명령어 안내" +--- + +# 배포 작업 순서 + +## 컨테이너 이미지 작성 +### 백엔드 +/deploy-build-image-back +- 백엔드 서비스들의 컨테이너 이미지를 작성합니다 + +### 프론트엔드 +/deploy-build-image-front +- 프론트엔드 서비스의 컨테이너 이미지를 작성합니다 + +## 컨테이너 실행 가이드 작성 +### 백엔드 +/deploy-run-container-guide-back +- 백엔드 컨테이너 실행 가이드를 작성합니다 +- [실행정보] 섹션에 ACR명, VM 접속 정보 제공 필요 + +### 프론트엔드 +/deploy-run-container-guide-front +- 프론트엔드 컨테이너 실행 가이드를 작성합니다 +- [실행정보] 섹션에 시스템명, ACR명, VM 접속 정보 제공 필요 + +## Kubernetes 배포 가이드 작성 +### 백엔드 +/deploy-k8s-guide-back +- 백엔드 서비스 Kubernetes 배포 가이드를 작성합니다 +- [실행정보] 섹션에 ACR명, k8s명, 네임스페이스, 리소스 정보 제공 필요 + +### 프론트엔드 +/deploy-k8s-guide-front +- 프론트엔드 서비스 Kubernetes 배포 가이드를 작성합니다 +- [실행정보] 섹션에 시스템명, ACR명, k8s명, 네임스페이스, Gateway Host 정보 제공 필요 + +## CI/CD 파이프라인 작성 +### Jenkins CI/CD +#### 백엔드 +/deploy-jenkins-cicd-guide-back +- Jenkins를 이용한 백엔드 CI/CD 파이프라인 가이드를 작성합니다 +- [실행정보] 섹션에 ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요 + +#### 프론트엔드 +/deploy-jenkins-cicd-guide-front +- Jenkins를 이용한 프론트엔드 CI/CD 파이프라인 가이드를 작성합니다 +- [실행정보] 섹션에 SYSTEM_NAME, ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요 + +### GitHub Actions CI/CD +#### 백엔드 +/deploy-actions-cicd-guide-back +- GitHub Actions를 이용한 백엔드 CI/CD 파이프라인 가이드를 작성합니다 +- [실행정보] 섹션에 ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요 + +#### 프론트엔드 +/deploy-actions-cicd-guide-front +- GitHub Actions를 이용한 프론트엔드 CI/CD 파이프라인 가이드를 작성합니다 +- [실행정보] 섹션에 SYSTEM_NAME, ACR_NAME, RESOURCE_GROUP, AKS_CLUSTER, NAMESPACE 제공 필요 + +--- + +**참고**: 각 명령어 실행 시 [실행정보] 섹션에 필요한 정보를 함께 제공해야 합니다. diff --git a/.claude/commands/deploy-jenkins-cicd-guide-back.md b/.claude/commands/deploy-jenkins-cicd-guide-back.md new file mode 100644 index 0000000..96a9093 --- /dev/null +++ b/.claude/commands/deploy-jenkins-cicd-guide-back.md @@ -0,0 +1,17 @@ +--- +command: "/deploy-jenkins-cicd-guide-back" +description: "백엔드 Jenkins CI/CD 파이프라인 가이드 작성" +--- + +@cicd +'백엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- ACR_NAME: acrdigitalgarage01 +- RESOURCE_GROUP: rg-digitalgarage-01 +- AKS_CLUSTER: aks-digitalgarage-01 +- NAMESPACE: phonebill-dg0500 diff --git a/.claude/commands/deploy-jenkins-cicd-guide-front.md b/.claude/commands/deploy-jenkins-cicd-guide-front.md new file mode 100644 index 0000000..af3807d --- /dev/null +++ b/.claude/commands/deploy-jenkins-cicd-guide-front.md @@ -0,0 +1,18 @@ +--- +command: "/deploy-jenkins-cicd-guide-front" +description: "프론트엔드 Jenkins CI/CD 파이프라인 가이드 작성" +--- + +@cicd +'프론트엔드Jenkins파이프라인작성가이드'에 따라 Jenkins를 이용한 CI/CD 가이드를 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- SYSTEM_NAME: phonebill +- ACR_NAME: acrdigitalgarage01 +- RESOURCE_GROUP: rg-digitalgarage-01 +- AKS_CLUSTER: aks-digitalgarage-01 +- NAMESPACE: phonebill-dg0500 diff --git a/.claude/commands/deploy-k8s-guide-back.md b/.claude/commands/deploy-k8s-guide-back.md new file mode 100644 index 0000000..e5f4009 --- /dev/null +++ b/.claude/commands/deploy-k8s-guide-back.md @@ -0,0 +1,19 @@ +--- +command: "/deploy-k8s-guide-back" +description: "백엔드 Kubernetes 배포 가이드 작성" +--- + +@cicd +'백엔드배포가이드'에 따라 백엔드 서비스 배포 방법을 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- ACR명: acrdigitalgarage01 +- k8s명: aks-digitalgarage-01 +- 네임스페이스: tripgen +- 파드수: 2 +- 리소스(CPU): 256m/1024m +- 리소스(메모리): 256Mi/1024Mi diff --git a/.claude/commands/deploy-k8s-guide-front.md b/.claude/commands/deploy-k8s-guide-front.md new file mode 100644 index 0000000..0d62215 --- /dev/null +++ b/.claude/commands/deploy-k8s-guide-front.md @@ -0,0 +1,21 @@ +--- +command: "/deploy-k8s-guide-front" +description: "프론트엔드 Kubernetes 배포 가이드 작성" +--- + +@cicd +'프론트엔드배포가이드'에 따라 프론트엔드 서비스 배포 방법을 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- 시스템명: tripgen +- ACR명: acrdigitalgarage01 +- k8s명: aks-digitalgarage-01 +- 네임스페이스: tripgen +- 파드수: 2 +- 리소스(CPU): 256m/1024m +- 리소스(메모리): 256Mi/1024Mi +- Gateway Host: http://tripgen-api.20.214.196.128.nip.io diff --git a/.claude/commands/deploy-run-container-guide-back.md b/.claude/commands/deploy-run-container-guide-back.md new file mode 100644 index 0000000..47dc409 --- /dev/null +++ b/.claude/commands/deploy-run-container-guide-back.md @@ -0,0 +1,18 @@ +--- +command: "/deploy-run-container-guide-back" +description: "백엔드 컨테이너 실행방법 가이드 작성" +--- + +@cicd +'백엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- ACR명: acrdigitalgarage01 +- VM + - KEY파일: ~/home/bastion-dg0500 + - USERID: azureuser + - IP: 4.230.5.6 diff --git a/.claude/commands/deploy-run-container-guide-front.md b/.claude/commands/deploy-run-container-guide-front.md new file mode 100644 index 0000000..ff3f3d4 --- /dev/null +++ b/.claude/commands/deploy-run-container-guide-front.md @@ -0,0 +1,19 @@ +--- +command: "/deploy-run-container-guide-front" +description: "프론트엔드 컨테이너 실행방법 가이드 작성" +--- + +@cicd +'프론트엔드컨테이너실행방법가이드'에 따라 컨테이너 실행 가이드를 작성해 주세요. + +프롬프트에 '[실행정보]'항목이 없으면 수행을 중단하고 안내 메시지를 표시해 주세요. + +{안내메시지} +'[실행정보]'섹션 하위에 아래 예와 같이 필요한 정보를 제시해 주세요. +[실행정보] +- 시스템명: tripgen +- ACR명: acrdigitalgarage01 +- VM + - KEY파일: ~/home/bastion-dg0500 + - USERID: azureuser + - IP: 4.230.5.6 diff --git a/content-service/src/main/java/com/kt/event/content/biz/service/HuggingFaceImageGenerator.java b/content-service/src/main/java/com/kt/event/content/biz/service/HuggingFaceImageGenerator.java index 106b5c3..3a92e24 100644 --- a/content-service/src/main/java/com/kt/event/content/biz/service/HuggingFaceImageGenerator.java +++ b/content-service/src/main/java/com/kt/event/content/biz/service/HuggingFaceImageGenerator.java @@ -30,9 +30,12 @@ import java.util.UUID; * Hugging Face Inference API 이미지 생성 서비스 * * Hugging Face Inference API를 사용하여 Stable Diffusion으로 이미지 생성 (무료) + * + * @Profile("huggingface") - huggingface 프로파일에서만 활성화 */ @Slf4j @Service +@org.springframework.context.annotation.Profile("huggingface") public class HuggingFaceImageGenerator implements GenerateImagesUseCase { private final HuggingFaceApiClient huggingFaceClient; diff --git a/deployment/container/build-image.md b/deployment/container/build-image.md index f2c8b54..152c973 100644 --- a/deployment/container/build-image.md +++ b/deployment/container/build-image.md @@ -272,16 +272,60 @@ docker rmi content-service:latest ## 13. 빌드 결과 +### 빌드 수행 이력 + +#### 최신 빌드 (2025-10-28) + +**1단계: JAR 빌드** +```bash +./gradlew content-service:clean content-service:bootJar +``` + +빌드 결과: +``` +BUILD SUCCESSFUL in 8s +9 actionable tasks: 6 executed, 3 up-to-date +``` + +**2단계: Docker 이미지 빌드** +```bash +docker build \ + --platform linux/amd64 \ + --build-arg BUILD_LIB_DIR="content-service/build/libs" \ + --build-arg ARTIFACTORY_FILE="content-service.jar" \ + -f deployment/container/Dockerfile-backend \ + -t content-service:latest . +``` + +빌드 결과: +- ✅ Build stage 완료 (openjdk:23-oraclelinux8) +- ✅ Run stage 완료 (openjdk:23-slim) +- ✅ 이미지 생성 완료 + +**3단계: 이미지 확인** +```bash +docker images | grep content-service +``` + +확인 결과: +``` +content-service latest ff73258c94cc 15 seconds ago 393MB +``` + ### 빌드 정보 - **서비스명**: content-service - **JAR 파일**: content-service.jar - **Docker 이미지**: content-service:latest +- **이미지 ID**: ff73258c94cc +- **이미지 크기**: 393MB - **노출 포트**: 8084 ### 빌드 일시 -- **빌드 날짜**: 2025-10-27 +- **최신 빌드**: 2025-10-28 +- **이전 빌드**: 2025-10-27 ### 환경 - **Base Image**: openjdk:23-slim - **Platform**: linux/amd64 - **User**: k8s (non-root) +- **Java Version**: 23