화장품을 고를 때 우리는 늘 같은 고민을 합니다.
"이 제품, 내 피부에 맞을까?" · "나랑 비슷한 피부인 사람들은 뭘 써봤을까?" · "이 가격이 진짜 저렴한 걸까?"
화담 은 이 세 가지 질문에 동시에 답하는 AI 코스메틱 추천 서비스입니다. NFC 태그, 사진, 텍스트로 상품을 조회하면 멀티 에이전트 AI가 사용자의 피부 프로필과 비슷한 사람들의 선택을 분석해 적합도 점수, 대체 상품, 유사 사용자 추천을 한 번에 제공하고, 올리브영·쿠팡·네이버쇼핑의 실시간 최저가까지 함께 비교해줍니다.
기존 뷰티 추천 서비스는 아래 세 가지 중 한두 개만 다룹니다. 화담은 세 가지를 동시에 만족시키는 것을 목표로 합니다.
| 피부타입 궁합 | 유사 사용자 소셜 프루프 | 실시간 최저가 비교 | |
|---|---|---|---|
| 기존 뷰티 앱 | ✅ | ▲ | ❌ |
| 가격비교 서비스 | ❌ | ❌ | ✅ |
| 리뷰 커뮤니티 | ▲ | ✅ | ❌ |
| 화담 | ✅ | ✅ | ✅ |
Action Model(Qwen-Plus)이 사용자 상황을 판단해 4개의 @tool을 실행 순서를 결정하며 호출합니다.
- Discovery — NFC/이미지/텍스트 입력을 정규화된 상품 정보로 구조화
- Score — 예산 적합도 · 가격 대비 가치 · 리뷰 기반 의도 유사도를 가중합해 0~100점 산출
- Alternative — 상품 feature 임베딩 유사도 기반으로 기능적 대체재 추천
- Collaborative — 피부타입·퍼스널컬러·피부고민이 유사한 사용자들의 협업 필터링 기반 추천 (콜드스타트 시 인기 상품 폴백)
💡 사용자 의도 벡터(
intent_vector)는 LLM 컨텍스트가 아닌 별도 사이드 채널(_intent_store)에 저장해 토큰 낭비와 데이터 오염을 방지합니다.
매장에서든, 온라인에서든, 궁금한 상품을 바로 조회할 수 있습니다.
- NFC 태그 — 매장 진열대의 NFC를 태그하면 상품 URL이 그대로 인식되어 즉시 조회
- 사진 촬영 — 인스타그램·유튜브 등에서 본 제품 사진을 업로드하면 VLM이 상품명·브랜드를 자동 인식
- 텍스트 검색 — "땀에 잘 안 지워지고 백탁 없는 선크림, 3만원 이하"처럼 자연어로 원하는 조건을 그대로 입력 가능
- 세 가지 입력 모두 내부적으로 동일한 표준 포맷(상품명·브랜드·용량)으로 정규화되어 이후 파이프라인에 일관되게 전달됩니다
정해진 순서대로 무조건 실행되는 기존 추천 시스템과 달리, 화담은 Action Model(Qwen-Plus)이 사용자 상황을 판단해 필요한 분석을 스스로 조합합니다.
- 예산이 입력되면 예산 적합도 가중치를 자동으로 높이고, 예산이 없으면 리뷰 기반 유사도 비중을 높이는 식으로 상황별 전략을 실시간 조정
- 신규 가입자처럼 데이터가 부족한 콜드스타트 상황에서는 협업 필터링 대신 피부타입 기반 인기 상품 폴백으로 자연스럽게 전환
지금 보고 있는 이 상품이 "나에게" 얼마나 맞는지 하나의 점수로 확인할 수 있습니다.
- 예산 적합도 — 입력한 예산 대비 가격이 얼마나 부합하는지
- 가격 대비 가치 — 동일 카테고리 유사 상품들과 비교했을 때 가격이 합리적인지 (평균가 대비 상대적 위치 산출)
- 리뷰 기반 의도 유사도 — 조회 사유(query) + 피부 프로필 + 최근 이용 이력을 하나의 문장으로 합친 뒤, 실제 리뷰들과의 코사인 유사도를 계산해 "내가 원하는 효과"와 "실제 후기"가 얼마나 맞아떨어지는지 정량화
- 각 요소의 가중치는 고정값이 아니라 LLM이 사용자 상황(예산 입력 여부, 피부 고민 명확성 등)에 맞춰 매번 보정합니다
"이 제품 말고 비슷한데 더 저렴한 거 없을까?" 라는 질문에 답합니다.
- 상품의 커버력·마무리감·성분 등 feature를 자연어로 변환해 임베딩하고, 동일 카테고리 내 다른 상품들과 코사인 유사도로 비교
- 가격 필터(±30% 등)를 함께 적용해 기능은 비슷하되 예산에 맞는 대안을 우선 노출
"나랑 피부 비슷한 사람들은 뭘 써?" 라는, 화담의 가장 핵심적인 차별점입니다.
- 퍼스널컬러·피부타입·피부고민을 기준으로 유사 사용자를 산출하고, 카테고리에 따라 각 요소의 중요도를 다르게 반영 (예: 스킨케어는 퍼스널컬러보다 피부타입·고민이 훨씬 중요)
- 유사 사용자들이 실제로 4점 이상 평가했거나 현재 사용 중인 상품을 가중 점수(유사도 × 평점)로 집계해 추천
- 유사 사용자 데이터가 부족한 콜드스타트 상황에서는 동일 피부타입·퍼스널컬러 그룹의 인기 상품으로 자동 폴백되어 신규 사용자도 첫 조회부터 추천을 받을 수 있음
- 올리브영 · 쿠팡 · 네이버쇼핑의 가격을 동시에 조회해 정가·할인가를 함께 제시
- 상품 정보가 오래된 경우(예: 6시간 초과) 자동으로 최신 가격·리뷰를 재수집해 최신성을 유지
| 영역 | 기술 |
|---|---|
| API Gateway | Spring Boot (Java, Gradle Groovy) |
| AI 에이전트 서버 | Python, FastAPI, LangGraph (create_react_agent) |
| Action Model | Qwen-Plus (DashScope) |
| 보조 LLM | Gemini (상품 정보 추출 / NFC URL 처리) |
| 데이터베이스 | Supabase (PostgreSQL + pgvector, Seoul 리전) |
| 인증 | OAuth 2.0 (Kakao, Google) |
| 배포 | Railway |
| 외부 연동 | 올리브영 · 쿠팡 · 네이버쇼핑 (실시간 가격 비교) |
- 상품 · 리뷰 임베딩 테이블을 통합해 12개 → 9개 테이블로 스키마 단순화
product테이블은feature_json(JSONB)으로 카테고리별(베이스/선케어/립/스킨케어) 특징을 유연하게 저장skinType,skinConcern은 별도 컬럼으로 분리해 SQL 조회 성능 확보- 상품 feature 스키마와 리뷰 임베딩 스키마를 동일하게 맞춰 벡터 비교 정합성 보장






