FaceOracle 작동 원리

업로드된 사진이 스타일 무드 리포트로 바뀌는 과정을 단계별로 설명합니다.

FaceOracle은 얼굴 인식(faceprint) 시스템이 아니라, 한 장의 사진이 주는 시각적 인상과 무드를 AI가 언어로 풀어 소개하는 엔터테인먼트 서비스입니다. 이 문서는 업로드 → 분석 → 결과 공유까지의 흐름을 투명하게 보여줍니다.

1단계 — 업로드 전 동의

업로드 영역 위 체크박스를 통해 명시적 동의를 받습니다. 본인 사진이거나 피사체의 동의를 받은 사진만 업로드 가능하고, 만 14세 미만은 보호자 동의가 필요합니다. 결과가 엔터테인먼트 콘텐츠이며 성격/능력/건강/신원 판단에 사용할 수 없다는 점도 동의 시점에 다시 알립니다.

2단계 — 이미지 전처리

브라우저에서 JPEG/PNG/WebP 파일이 800px 긴 변 기준으로 리사이즈되고, 공유 링크용으로 200×200 썸네일이 따로 생성됩니다. 이 전처리는 모두 클라이언트에서 이뤄져 네트워크로 전송되는 이미지 크기를 최소화합니다.

3단계 — 서버로 전송

전처리된 이미지와 언어 코드(ko/en)가 우리 서버(Next.js Route Handler)로 전송됩니다. 서버는 이 이미지를 디스크나 데이터베이스에 저장하지 않으며, 메모리에서만 처리합니다.

4단계 — Claude AI에 분석 요청

서버는 전처리된 이미지를 Anthropic Claude AI의 멀티모달 비전 API로 전달합니다. 모델은 이미지를 보고 아래와 같은 인상 기반 카테고리의 텍스트 결과를 돌려줍니다:

  • 이미지 무드 타이틀 · 코멘트 · 강점 키워드
  • 전통 관상 개념의 재미용 재해석
  • 첫인상 키워드 5개
  • 또래 인상(의학적 나이 측정 아님)
  • 분위기 레퍼런스 연예인(공개 인물 이름 기준의 무드 매칭)
  • 퍼스널컬러 팔레트
  • 얼굴형 기반 헤어스타일 · 메이크업 스타일 제안

Claude는 얼굴을 숫자 템플릿으로 변환하지 않고, 프롬프트에 명시된 정책(민감 속성 추론 금지, 단정적 운세 금지 등)에 따라 결과를 생성합니다.

5단계 — 결과 저장과 공유

분석이 끝나면 결과 JSON과 200×200 썸네일이 Upstash Redis에 24시간 TTL로 임시 저장됩니다. TTL이 지나면 자동 삭제됩니다. 공유 링크는 이 임시 ID를 가리킵니다. 즉시 삭제 요청도 가능하며, 24시간이 지나기 전에도 원하시면 결과를 지워드립니다.

6단계 — 결과 표시

결과 페이지 상단과 하단에 "엔터테인먼트 전용"을 명시한 배너가 표시됩니다. 각 카테고리 카드 하단에는 그 카드가 무엇을 결정하지 않는지도 안내합니다. 예를 들어 "분위기 레퍼런스 연예인" 카드에는 "얼굴 인식이나 신원 확인이 아닙니다" 문구가 함께 붙습니다.

우리가 하지 않는 것

  • 얼굴 인식용 템플릿(faceprint) 생성 — 결과는 숫자 특징 벡터가 아니라 자연어 해석입니다.
  • 성별·국적·인종·건강·종교·성적 지향 등 민감 속성 추론 — 해당 카테고리는 기본 비활성화되어 있습니다.
  • 채용·입학·대출·계약·보안 인증 등 실질적 결정 — 본 서비스는 이런 용도로 사용할 수 없습니다.
  • 광고 타겟팅을 위한 얼굴 이미지 사용 — 얼굴 이미지는 Anthropic API 호출 외 어디에도 사용되지 않습니다.

관련 문서

메인으로 돌아가기·FAQ·블로그