🏥 코드잇 AI 4기 3팀 고급 프로젝트

생성형 AI 기반 소상공인 광고 콘텐츠 제작 서비스

프로젝트 목표: 전통시장 소상공인을 위한 AI 광고 콘텐츠 자동 생성 서비스
1차 특화: 건어물 상품 프롬프트 엔진 (확장 가능한 설계)
시연 영상: 발표자료/코드잇AI엔지니어4기_3팀_테스트동영상_260123_141208-c.mp4

👥 팀원

역할 담당자 핵심 업무
아키텍처 & 파이프라인 김명환 시스템 아키텍처 설계, API 설계, 모델 서버 구성, 모델 관리 서버
모델 연구 (조합 모델 개발) 김민혁 텍스트 생성 및 조합 모델 개발
PM & 기획 박지윤 프로젝트 관리, 일정 조율, 문서화, QA , VM 인프라 구성
백엔드 & 프론트엔드 이건희 백엔드(LLM 연동), 프론트엔드(FastAPI)
모델 연구 (이미지 생성) 이솔형 데이터셋 전처리 이미지 특성 추출 및 이미지 생성

📝 협업일지

팀원별 개발 과정 및 학습 내용을 기록한 협업일지입니다.

📅 프로젝트 기간

2025.12.29(월) ~ 2026.01.28(수)

주요 마일스톤:

프로젝트 일정:

gantt
    title Team 3 Project Timeline
    dateFormat  YYYY-MM-DD
    axisFormat  %m-%d
    
    section Setup & Plan
    환경 구축 및 기획        :active, a1, 2025-12-29, 2026-01-04
    신정 휴무              :crit, holiday, 2026-01-01, 1d
    
    section Development
    데이터 및 모델링        :b1, 2026-01-05, 2026-01-11
    서비스 구현 및 고도화    :c1, 2026-01-12, 2026-01-18
    통합 및 최적화          :d1, 2026-01-19, 2026-01-25
    
    section Submission
    보고서 작성             :e1, 2026-01-26, 2d
    최종 제출 (D-1)        :crit, milestone, 2026-01-27, 1d
    최종 발표 (D-Day)      :crit, milestone, 2026-01-28, 1d
    프로젝트 종료           :milestone, 2026-01-29, 1d

구조도 (High-Level Architecture)

graph TB
    subgraph "사용자 환경"
        User["사용자 (소상공인)"]
        LLMClient["LLM / GPT
(MCP 클라이언트)"]
    end

    subgraph "Docker Network: nanococoa-network"
        subgraph "백엔드 계층 (backend)"
            Backend["FastAPI 서버
비즈니스 로직
Port: 8080"]
            HPGen["Homepage Generator
LangGraph + Multi-Agent
Port: 8081"]
            DB[("PostgreSQL
고객 데이터")]
        end

        subgraph "MCP 서버 (nanoCocoa_mcpserver)"
            MCPServer["MCP 서버
MCP Protocol Bridge
Port: 3000"]
        end

        subgraph "모델서빙 계층 (nanoCocoa_aiserver)"
            ModelServer["FastAPI 모델 서버
Port: 8000"]

            subgraph "AI 모델 파이프라인"
                BiRefNet["BiRefNet
(이미지 누끼)"]
                FLUX["FLUX.1-dev
(배경 생성)"]
                Qwen["Qwen2-VL
(이미지 분석)"]
            end

            LLMText["OpenAI API
(HTML/CSS 생성)"]
            GPU["NVIDIA L4 GPU
24GB VRAM"]
        end
    end

    User -->|HTTP/웹| Backend
    Backend --> DB
    Backend --> HPGen
    HPGen -->|HTTP| MCPServer
    Backend -->|"REST API
Port 8000"| ModelServer
    
    LLMClient -.->|"MCP Protocol
(SSE)"| MCPServer
    MCPServer -->|"REST API
Internal Network"| ModelServer
    
    ModelServer --> BiRefNet
    ModelServer --> FLUX
    ModelServer --> Qwen
    ModelServer --> LLMText
    
    BiRefNet -.->|JIT 로딩| GPU
    FLUX -.->|JIT 로딩| GPU
    Qwen -.->|JIT 로딩| GPU

시퀀스 다이어그램

sequenceDiagram
    participant User as 사용자
    participant FE as 프론트엔드 (FastAPI)
    participant BE as 백엔드 (FastAPI)
    participant LLM as OpenAI GPT-5-mini
    participant MS as 모델서빙 (FastAPI)
    participant GPU as L4 GPU

    User->>FE: 1. 이미지 업로드 + 광고 문구 입력
    FE->>FE: 2. 입력 검증
    FE->>BE: 3. POST /api/generate {image, text, options}

    BE->>BE: 4. 요청 검증
    BE->>LLM: 5. 프롬프트 생성 요청 "건어물 대박 세일"
    LLM-->>BE: 6. 영문 프롬프트 반환 "Dried seafood..."

    BE->>MS: 7. POST /generate {product_image, bg_prompt, text_content}
    MS->>MS: 8. Job ID 생성 Worker Process 생성
    MS-->>BE: 9. {job_id, status: "started"}
    BE-->>FE: 10. {job_id}
    FE-->>User: 11. "생성 중..." 표시

    loop 진행 상황 폴링 (Polling)
        FE->>BE: 12. GET /api/status/{job_id}
        BE->>MS: 13. GET /status/{job_id}

        MS->>MS: Stage 1 실행
        MS->>GPU: BiRefNet 로드
        GPU-->>MS: 누끼 이미지
        MS->>GPU: FLUX.1-dev 로드
        GPU-->>MS: 배경 이미지
        MS->>MS: 합성 및 리터칭

        MS-->>BE: 14. {status: "running", progress: 50%, step1_result}
        BE-->>FE: 15. {progress, step1_preview}
        FE-->>User: 16. 진행률 + 중간 결과 표시

        MS->>MS: Stage 2 실행
        
        alt use_qwen_analysis=true
            MS->>GPU: Qwen2-VL 로드
            GPU-->>MS: 이미지 분석 텍스트
            MS->>GPU: Qwen2-VL 언로드
        end
        
        MS->>LLM: HTML/CSS 생성 요청 (Qwen 분석 포함)
        LLM-->>MS: HTML/CSS 코드
        MS->>MS: HTML 렌더링 (Headless Browser)
        MS->>MS: 텍스트 레이어 합성

        MS-->>BE: 17. {status: "completed", final_result}
        BE-->>FE: 18. {status: "done", final_image}
    end

    FE-->>User: 19. 최종 결과 표시 + 다운로드 버튼

폴더목록


문서 버전: 0.3 최종 업데이트: 2026.01.02 작성자: 프로젝트 팀

주요 변경사항:

기술 스택: