Skip to content

[FEAT]: 시나리오 AI 이미지 생성 기능 구현 #97

@lcs9317

Description

@lcs9317

변경 유형 (Type): FEAT
제목(Subject): 시나리오 AI 이미지 생성 기능 구현

무엇을 / 왜

무엇(What):

  1. AI 이미지 생성 기능 추가
    ImageAiClient 인터페이스 및 StableDiffusionImageClient 구현체 추가
    ImageAiProperties 설정 클래스 추가 (API 키, URL, 타임아웃, 재시도 설정)
    AiService.generateImage() 메서드 구현
    Base64 이미지 데이터를 URL로 변환하는 전체 플로우 구현
    application.yml에 이미지 AI 설정 추가 (Stable Diffusion API 키, 타임아웃, 재시도)

  2. 스토리지 서비스 통합
    StorageService 인터페이스 추가 (Local/S3 추상화)
    LocalStorageService 구현체 추가 (개발 환경용)
    application.yml에 스토리지 타입 설정 추가 (storage-type: local, local-storage-path, local-base-url)
    Base64 이미지를 파일로 저장하고 접근 가능한 URL 반환하는 로직 구현

  3. AsyncConfig 스레드풀 구현 (Issue [FEAT]: 게시글 검색 기능 추가 #19 해결)
    AsyncConfig 클래스에 aiTaskExecutor Bean 추가
    AWS Small 티어(1-2 vCPU, 2GB RAM) 최적화: core-si

어떻게(요약) — 3줄 이내

  1. AI 이미지 생성 기능: Stable Diffusion 3.5 API 연동 및 Local/S3 스토리지 통합 (Graceful Degradation 패턴)
  2. 예외 처리 아키텍처 개선: 입력 검증(AiServiceException)과 파싱 에러(AiParsingException)를 명확히 구분
  3. AsyncConfig 스레드풀 설정 및 테스트 안정성 확보: AWS Small 티어 최적화 스레드풀 구현, 모든 AI 서비스 테스트 수정 완료

영향 범위

  • API 변경
  • DB 마이그레이션
  • Breaking Change
  • 보안/권한 영향
  • 문서/가이드 업데이트 필요

체크리스트

  • 타입 라벨 부착 (FEAT/FIX/REFACTOR/COMMENT/STYLE/TEST/CHORE/INIT)
  • 로컬/CI 테스트 통과
  • 영향도 점검 완료
  • 주석/문서 반영(필요 시)

ToDo (선택)

  • 할 일 1
  • 할 일 2

스크린샷/증빙(선택)


Auto-created for PR #96

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions