ART-WINDOW
사용자의 공간 사진에서 작품 한 점을 추천·생성하고 POD 액자로 배송하는 공간 큐레이션 자동화 제품. 기획·브랜드·서버·클라이언트·인프라·제작 파트너 연동까지 1인 설계·구현.
A spatial-curation product: a single artwork is recommended and generated from a photo of the user's room, then shipped as a POD-framed print. Solo design and build across planning, brand, server, client, infra and production-partner integrations.
- Gemini API로 공간 사진을 분석해 작품을 추천하고 Replicate·Seedream으로 생성하는 파이프라인 구축 — 프롬프트 조립·응답 파싱·생성 웹훅 처리 포함
- Built the pipeline that reads a room photo with the Gemini API and generates artwork via Replicate and Seedream — prompt assembly, response parsing, completion webhooks
- 추천을 LLM의 한 번 판단에 맡기지 않고 근거 데이터를 직접 구축 — 실제 인테리어·작품 사진 14만 장을 수집, 비전-언어 모델 Gemma 4 12B로 의미 태깅(로컬 GPU 서버), 액자·제품샷·워터마크 게이트로 걸러 생성용 3만 장 확정
- Instead of trusting a single LLM guess, I built the matching evidence myself — 140k collected interior/artwork photos, semantically tagged with Gemma 4 12B (a vision-language model, on a local GPU server), filtered through frame / product-shot / watermark gates down to a 30k generation pool
- 방은 픽셀이 아니라 스타일 서술 텍스트로 임베딩(실제 방과 연출된 방은 픽셀이 안 닮음) — 화풍 400개 군집 → 노출 209종, 사용자는 추상 파라미터 대신 실제 예제 이미지로 선택. 방 업로드부터 생성까지 배포 환경에서 end-to-end 검증
- Rooms are embedded from a text description of style, not pixels (real rooms and staged shoots don't match pixel-wise) — 400 style clusters → 209 surfaced, so users pick from real examples instead of abstract parameters; the whole path verified end-to-end on the deployed build
- 운영 안정화 — 결제 웹훅 멱등 처리, 크레딧 차감 동시성 락, 외부 API 타임아웃, 시크릿 외부화, JMeter 부하 테스트
- Operational hardening — idempotent payment webhooks, concurrency locks on credit deduction, external-API timeouts, externalized secrets, JMeter load testing
- Java / Spring
- Python · FastAPI
- Oracle ADB · PostgreSQL
- Flutter
- SvelteKit · Svelte 5
- Gemini API
- Gemma 4 12B
- 임베딩 · 클러스터링Embedding · Clustering
- OCI
- Docker