Shop the Look: Fanatics가 OpenAI 모델로 리그 공식 스토어에 코디 추천을 붙여 참여 10% 올린 방식
OpenAI가 공개한 고객 사례입니다. Fanatics는 팬이 팀 저지를 보면 재고 있는 같은 팀 상품으로 코디를 짜 주는 기능을 NFL·NBA·MLB·NHL 공식 스토어에 붙였고, 첫 50개 상품은 하루 안에 테스트해 같은 주에 MVP를 승인했습니다. MLB 상품 약 30,000개 테스트에서 참여가 10% 높았습니다.
팬이 저지 한 장을 보는 순간 같은 팀의 재고 있는 상품으로 코디를 짜 주면, 단품 페이지가 묶음 판매 화면이 됩니다. Fanatics는 OpenAI 모델로 이 기능을 다시 만들어 이전 방식보다 참여를 10% 올렸습니다. 따라 하려면 모델보다 먼저 상품 속성 보강, 머천다이징 규칙, 첫 50개를 사람이 보는 짧은 반복을 준비해야 합니다.
요약
이 글은 OpenAI가 2026년 10월 26일 자사 고객 사례로 공개한 글입니다. 스포츠 상품 유통사 Fanatics는 가을 스포츠 시즌에 맞춰 Shop the Look(코디 완성 추천)을 새로 내놓았습니다. 팬이 팀 저지 상품 페이지를 열면 같은 팀이고 스타일이 어울리며 지금 재고가 있는 상품을 묶어, 경기 날 입을 한 벌로 보여 줍니다. 기능은 Fanatics.com과 NFL·NBA·MLB·NHL 공식 온라인 스토어 등 Fanatics 네트워크 사이트에 들어갔습니다. 조합은 OpenAI 모델이 보강된 상품 데이터와 팀·재고 정보를 보고 만들고, Fanatics의 머천다이징 규칙(어떤 상품끼리 묶어도 되는지 정한 기준)이 서로 맞는 상품만 남깁니다. 카탈로그가 바뀌므로 코디는 매일 새로 만듭니다.
만드는 데 걸린 시간은 짧았습니다. OpenAI와 Fanatics 엔지니어는 Codex(OpenAI의 코딩 에이전트)로 추천용 맞춤 도구를 만들었습니다. 도구는 카탈로그 데이터 보강, 함께 묶을 상품 찾기, 추천 평가, 코디 생성을 나눠 맡습니다. 첫 50개 상품 테스트는 하루가 걸리지 않았습니다. Fanatics가 결과 코디를 보고 만든 사람에게 바로 피드백을 줬고, 며칠 반복한 뒤 같은 주에 MVP(최소 기능 제품)를 승인했습니다. 이후 수천 개 상품으로 넓혔고, MLB 상품 약 30,000개 테스트에서 참여가 이전 Shop the Look보다 10% 높았습니다. 참여를 어떻게 쟀는지는 원문에서 밝히지 않았습니다. 아래에서는 이 구조를 다섯 가지 장치로 나눠 보고, 실제로 돌릴 때 필요한 필드와 일정을 덧붙입니다.
핵심 메커니즘
Shop the Look: 상품 하나에서 코디 한 벌로
Shop the Look은 팬이 보고 있는 상품을 기준으로 함께 입을 상품 묶음을 보여 주는 추천 화면입니다. 입력은 팬이 연 팀 저지와 그 상품의 리그·팀·종류입니다. 시스템은 같은 팀 상품 가운데 스타일이 어울리고 재고가 있는 것을 골라 조합하고, 결과를 상품 페이지에 코디로 띄웁니다. 단품을 보다가 함께 살 물건이 자연스럽게 정해지는 카테고리에서 잘 맞습니다. 팀 굿즈, 패션, 캠핑 장비가 그렇습니다. 한 번 사면 끝나는 소모품에는 덜 맞습니다. 원문의 예는 팀 저지 페이지입니다. 가상 예시로, 팀 A 홈 저지를 보는 팬에게 같은 팀 모자, 후드, 머플러를 묶어 경기장용 한 벌을 보여 주는 식입니다.
Catalog Enrichment: 모델이 고를 수 있게 상품 속성부터 채우기
Catalog Enrichment(카탈로그 보강)는 상품명과 설명 문장에 흩어진 정보를 팀, 상품 종류, 색, 스타일 같은 필드로 정리하는 일입니다. 원문은 OpenAI 모델이 보강된 상품 데이터와 팀·재고 정보를 쓴다고 밝히고, Codex로 만든 도구의 첫 역할로 카탈로그 데이터 보강을 꼽습니다. 어떤 속성을 채웠는지는 원문에서 밝히지 않았습니다. 작동 순서는 원래 카탈로그 행을 넣고, 모델이 속성을 뽑고, 그 결과를 팀·재고 정보와 합쳐 추천의 재료로 쓰는 흐름입니다. 속성이 비어 있으면 모델은 이름만 보고 짐작해야 하므로 조합이 흔들립니다. 반대로 이미 속성이 잘 정리된 카탈로그라면 이 단계는 짧아집니다.
Merchandising Rules: 모델 조합 위에 규칙으로 울타리 치기
원문은 역할을 둘로 나눕니다. OpenAI 모델이 추천을 조합하고, Fanatics의 머천다이징 규칙이 추천의 호환성과 관련성을 지킵니다. 모델은 색과 스타일이 어울리는지처럼 규칙으로 쓰기 어려운 판단을 맡습니다. 규칙은 깨지면 바로 문제가 되는 조건을 맡습니다. 원문은 규칙의 내용을 밝히지 않았습니다. 가상 예시로는 “같은 팀 상품만”, “재고 있는 상품만”, “같은 종류 두 개 금지” 같은 조건을 생각할 수 있습니다. 규칙이 없으면 경쟁 팀 모자가 섞이거나 품절 상품이 뜰 수 있습니다. 규칙이 너무 많으면 모델이 고를 여지가 사라져 이전 규칙 기반 추천과 차이가 없어집니다.
Daily Refresh: 카탈로그가 바뀌면 코디도 다시 만들기
Fanatics는 카탈로그 변화에 맞춰 코디를 매일 새로 만듭니다. 스포츠 굿즈는 시즌, 경기 결과, 선수 이적에 따라 재고와 신상품이 자주 바뀝니다. 그래서 한 번 만든 코디를 오래 두면 품절 상품이 섞이고 새 상품은 빠집니다. 원문은 갱신 주기만 밝히고 갱신 방식은 밝히지 않았습니다. 실제로 돌릴 때는 밤사이 바뀐 상품과 그 상품이 들어간 코디만 다시 계산하고, 규칙과 평가를 다시 통과시킨 뒤 아침 화면을 바꾸는 배치가 현실적입니다(가상 예시).
Codex로 만든 네 가지 도구와 50개 먼저 보기
원문이 밝힌 도구는 네 가지 일을 합니다. 카탈로그 데이터를 보강하고, 함께 묶을 상품을 찾고, 추천을 평가하고, 상품마다 코디를 생성합니다. 이 도구를 Codex로 OpenAI와 Fanatics 엔지니어가 함께 만들었고, OpenAI가 해법 설계를 도왔습니다. 진행 방식은 작게 시작하는 쪽이었습니다. 첫 50개 상품으로 코디를 만들어 Fanatics가 직접 보고 피드백을 주고, 며칠 고친 뒤 MVP를 승인하고, 그다음에 수천 개로 넓혔습니다. 평가 도구를 따로 둔 이유가 여기 있습니다. 50개는 사람이 눈으로 볼 수 있지만, 수천 개로 넓히면 같은 기준을 자동으로 적용할 장치가 필요합니다.
저자가 든 사례
첫 50개 상품: 하루 안에 테스트, 같은 주에 MVP 승인
| 항목 | 내용 |
|---|---|
| 상황 | 가을 스포츠 시즌에 맞춰 새 Shop the Look을 내야 했습니다. |
| 한 일 | Codex로 만든 도구로 첫 50개 상품의 코디를 만들어 하루 안에 테스트했습니다. Fanatics가 코디를 보고 만든 사람에게 직접 피드백했습니다. |
| 결과 | 며칠 반복한 뒤 같은 주에 MVP를 승인했고 이후 수천 개 상품으로 넓혔습니다. 투입 인원은 원문에서 밝히지 않았습니다. |
| 연결 | Codex로 만든 네 도구와 50개 먼저 보는 방식의 사례입니다. |
MLB 상품 약 30,000개 테스트: 참여 10% 증가
| 항목 | 내용 |
|---|---|
| 상황 | 이전에도 Shop the Look 화면이 있었습니다. 이전 방식의 구조는 원문에서 밝히지 않았습니다. |
| 한 일 | MLB 상품 약 30,000개에 새 추천을 적용해 테스트했습니다. |
| 결과 | 참여가 이전 Shop the Look보다 10% 높았습니다. 참여의 정의와 비교 방법은 원문에서 밝히지 않았습니다. |
| 연결 | Catalog Enrichment, Merchandising Rules, Daily Refresh가 함께 쓰인 결과입니다. |
사업부 전반의 ChatGPT Work·Codex 사용
| 항목 | 내용 |
|---|---|
| 상황 | Fanatics는 Corporate, Commerce, Collectibles, Betting and Gaming 사업부를 운영합니다. |
| 한 일 | 네 사업부에서 ChatGPT Work와 Codex를 씁니다. |
| 결과 | 사업부별 사용 규모와 성과는 원문에서 밝히지 않았습니다. |
| 연결 | Shop the Look을 빠르게 만든 Codex가 이미 사내 도구로 깔려 있었다는 배경입니다. |
기술 디테일: 우리 카탈로그에 코디 추천을 붙이려면
Catalog Enrichment를 돌리려면 속성 스키마를 먼저 고정합니다. 모델이 상품마다 같은 필드를 채우게 구조화 출력(JSON Schema)을 씁니다. 값은 정해진 목록에서만 고르게 하고, 판단할 수 없으면 지어내지 말고 unknown을 넣게 합니다. temperature는 0~0.2로 낮게 둡니다. 아래 필드명과 값은 가상 예시입니다.
{
"sku": "TMA-HOME-JSY-24",
"team": "Team A", "league": "MLB",
"product_type": "jersey",
"role_in_look": "top",
"colors": ["home_white", "team_navy"],
"style": ["replica", "game_day"],
"occasion": ["stadium", "casual"],
"gender": "unisex",
"in_stock_sizes": ["M", "L", "XL"],
"enriched_at": "2026-10-28",
"unknown": []
}
보강 결과는 처음 200~300개를 카탈로그 담당자가 표본 검수합니다. 필드별 정확도가 95% 아래인 필드는 프롬프트의 값 목록과 설명을 고치고 다시 돌립니다.
Merchandising Rules는 모델 앞에서 먼저 거릅니다. 같은 팀, 재고 있음, 성별·사이즈 호환 같은 조건은 코드로 걸러 후보를 20~40개로 줄인 뒤 모델에 넘깁니다. 모델에게 규칙을 지키라고 부탁하는 것보다 처음부터 규칙을 어긴 후보를 주지 않는 편이 안전합니다. 모델은 그 안에서 role_in_look별(상의, 모자, 아우터, 액세서리)로 하나씩 고르고, 고른 이유를 짧게 적습니다.
{
"anchor_sku": "TMA-HOME-JSY-24",
"look": [
{"sku": "TMA-CAP-NVY-01", "role": "headwear", "reason": "저지 네이비와 같은 색"},
{"sku": "TMA-HOOD-GRY-07", "role": "outerwear", "reason": "가을 야간 경기용"},
{"sku": "TMA-SCF-02", "role": "accessory", "reason": "팀 컬러 포인트"}
],
"model_version": "pinned-2026-10", "generated_at": "2026-10-28T02:10:00+09:00"
}
평가 도구는 기준표와 반복 채점으로 만듭니다. 원문의 네 도구 가운데 추천 평가를 이렇게 돌릴 수 있습니다(가상 예시). 별도 평가 모델 호출이 코디 하나를 세 항목으로 0·3·5점 채점합니다. 같은 코디를 3회 채점해 항목별 편차가 1점을 넘으면 사람 검토 큐로 보냅니다. 평균 4점 미만인 코디는 게시하지 않고 다시 생성합니다.
| 항목 | 0점 | 3점 | 5점 |
|---|---|---|---|
| 호환성 | 다른 팀·품절 상품 포함 | 규칙은 지켰으나 역할 중복 | 규칙 통과, 역할별 1개씩 |
| 스타일 | 색·용도가 충돌 | 무난하지만 기준 상품과 연결 약함 | 색·용도가 기준 상품과 맞음 |
| 구매 가능성 | 가격대가 기준 상품의 3배 이상 | 일부 상품만 가격대 맞음 | 전체가 기준 상품 가격대와 맞음 |
Daily Refresh는 바뀐 것만 다시 계산합니다. 밤사이 재고·가격·신상품 변경 로그를 받아, 바뀐 SKU가 들어간 코디와 바뀐 SKU가 기준 상품인 코디만 재생성합니다. 대량 생성은 배치 API로 돌려 비용을 줄입니다. 화면을 띄울 때는 캐시된 코디라도 재고를 한 번 더 확인해, 아침 이후 품절된 상품은 같은 역할의 다음 후보로 바꿉니다.
모델과 Codex의 몫을 나눕니다. 원문은 사용한 모델 이름을 밝히지 않았습니다. 실제로 돌릴 때는 호출이 상품 수만큼 나가는 속성 보강에 작고 싼 모델을, 호출 수가 적고 판단이 어려운 코디 조합에 큰 모델을 쓰는 구성이 흔합니다. 평가는 생성과 다른 모델로 돌려 같은 모델이 자기 답을 후하게 보는 일을 줄입니다. 모델 버전은 고정하고 바꿀 때는 50개 기준 세트로 다시 채점합니다. Codex에는 이 파이프라인의 코드를 맡깁니다. 속성 스키마 정의, 보강 배치 스크립트, 규칙 필터, 평가 하네스(기준 세트를 돌려 점수를 모으는 코드)를 차례로 짜게 하고 엔지니어가 검토합니다.
실패하는 경우를 미리 정합니다. 같은 도시의 다른 리그 팀처럼 이름이 비슷한 팀은 팀 ID로만 묶고 이름 문자열로 묶지 않습니다. 선수 이름이 들어간 상품은 이적 직후 수요가 바뀌므로 이적 공지가 나면 해당 선수 상품의 코디를 즉시 재생성합니다. 평가에서 같은 이유로 3회 이상 떨어진 SKU는 속성 보강부터 다시 확인합니다.
현업 실행 디테일: 누가, 언제, 무엇을
| 역할 | 담당 | 하는 일 |
|---|---|---|
| 스폰서 | 이커머스 총괄 | 대상 카테고리와 성과 지표 승인 |
| 머천다이저 | 카테고리 MD 1~2명 | 묶음 규칙 정리, 첫 50개 코디 검토와 피드백 |
| 카탈로그 담당 | 상품 데이터 관리자 1명 | 속성 목록 정의, 보강 결과 표본 검수 |
| 엔지니어 | 2명(도구·화면 각 1명) | 보강·후보·평가·생성 도구 연결, 배치와 화면 반영 |
| 분석가 | 1명 | 참여 지표 정의, A/B 테스트 설계와 집계 |
시작 전 준비물. 대상 카테고리의 상품 마스터, 실시간 또는 일 단위 재고, 기존 추천 화면의 지난 3개월 지표, MD가 머릿속에 두고 있는 묶음 금지 조건 목록입니다. 금지 조건은 문서로 적어 와야 코드로 옮길 수 있습니다.
| 기간 | 할 일 | 산출물 |
|---|---|---|
| 1주 | 대상 카테고리 1개 선정, 속성·규칙 정리, 기준 상품 50개 선정 | 속성 정의서, 규칙 목록 |
| 2주 | 50개 코디 생성, MD 검토와 피드백 반복, MVP 판정 | 검토 기록, MVP 승인 여부 |
| 3주 | 카테고리 전체로 확대, 평가 도구로 자동 채점, A/B 설계 | 채점 분포, 실험 설계서 |
| 4주 | A/B 운영, 결과 집계, 확대 여부 판정 | 판정 보고서 |
MD에게 물을 것.
- 이 상품과 절대 같이 보여 주면 안 되는 상품은 무엇인가요?
- 코디 하나에 몇 개까지 넣어야 팬이 부담 없이 볼까요?
- 시즌이나 경기 일정 때문에 우선 보여 줘야 할 상품이 있나요?
- 50개 코디 가운데 바로 게시해도 되는 것은 몇 개이고, 나머지는 무엇이 문제인가요?
진행 판정 기준(예시). 2주차 MVP 판정은 MD 검토에서 50개 중 40개 이상이 수정 없이 게시 가능하고, 규칙 위반이 0건일 때 통과로 봅니다. 4주차 확대 판정은 A/B에서 참여 지표가 기존 화면보다 5% 이상 높고, 화면에 뜬 코디의 품절 노출이 1% 미만일 때 통과로 봅니다. 참여 지표(코디 클릭, 코디 상품 장바구니 담기 등)는 시작 전에 하나로 정해 둡니다.
AX 적용 제언. 패션, 스포츠 용품, 가구·인테리어처럼 함께 사는 물건이 많은 유통사라면 기존 추천 화면 하나를 골라 이 방식으로 바꿔 보는 것이 출발점으로 좋습니다. B2B에서도 같은 구조를 씁니다. 장비 부품이나 소모품 주문 화면에서 호환 부품 묶음을 제안하는 경우입니다. 첫 투자는 모델이 아니라 상품 속성 정리와 MD의 금지 조건 문서화에 둡니다. Fanatics도 보강 도구와 규칙을 먼저 세웠습니다. 일정은 50개를 사람이 보는 1~2주 반복을 반드시 넣고, 확대 전에 평가 도구를 붙여 사람이 보던 기준을 자동으로 옮깁니다. 현업 스폰서는 IT가 아니라 이커머스나 MD 조직에서 세워야 판정이 빨라집니다.
원문 사례
| 항목 | 내용 |
|---|---|
| 출처 | OpenAI 고객 사례(벤더가 공개한 자사 고객 사례), 2026.10.26 |
| 고객 | Fanatics, 북미, 리테일 |
| 기능 | Shop the Look: 팀 저지를 보면 같은 팀·어울리는 스타일·재고 있는 상품으로 코디 제안 |
| 적용 사이트 | Fanatics.com, NFL·NBA·MLB·NHL 공식 온라인 스토어 등 Fanatics 네트워크 |
| 작동 | OpenAI 모델 + 보강된 상품 데이터 + 팀·재고 정보, 머천다이징 규칙으로 호환성 유지, 매일 갱신 |
| 구축 | OpenAI와 Fanatics 엔지니어가 Codex로 보강·호환 찾기·평가·생성 도구 제작 |
| 일정 | 첫 50개 상품 테스트 1일 미만, 며칠 반복 후 같은 주 MVP 승인, 이후 수천 개 상품으로 확대 |
| 성과 | MLB 상품 약 30,000개 테스트에서 참여 10% 증가(이전 Shop the Look 대비) |
| 사내 사용 | ChatGPT Work와 Codex를 Corporate, Commerce, Collectibles, Betting and Gaming에서 사용 |
| 밝히지 않은 것 | 사용 모델명, 보강 속성 목록, 규칙 내용, 참여 정의, 투입 인원 |
핵심 개념
- Codex
- OpenAI의 코딩 에이전트. 이 사례에서는 추천용 맞춤 도구를 짜는 데 썼습니다.
- ChatGPT Work
- 업무용 ChatGPT. Fanatics는 네 사업부에서 씁니다.
- MVP
- Minimum Viable Product. 쓸 수 있는 최소 기능만 넣어 먼저 내놓는 제품 단계입니다.
- SKU
- Stock Keeping Unit. 색·사이즈까지 구분한 재고 관리 단위입니다.
- 구조화 출력
- 모델 답을 정해진 JSON 필드로만 받게 하는 방식. 다음 단계 코드가 답을 바로 읽을 수 있습니다.
- A/B 테스트
- 방문자를 나눠 기존 화면과 새 화면을 동시에 보여 주고 지표를 비교하는 실험입니다.
내 메모
TODO: 내 생각 추가
원문: OpenAI, 「How Fanatics and OpenAI streamline the fan experience」(2026.10.26). OpenAI가 자사 고객 사례로 공개한 글이며 성과 수치는 원문이 밝힌 값입니다. 요약, 핵심 메커니즘의 원문 예, 저자가 든 사례, 원문 사례 표는 원문 내용을 AX Partners가 다시 정리했습니다. 필드명·JSON·채점표·일정·판정 기준·인포그래픽은 실제로 돌릴 때 필요한 것을 새로 작성한 가상 예시입니다. 전체 내용은 원문에서 볼 수 있습니다.