셀러를 관리한다는 것 — WineDuck 심층 리포트
와인 셀러를 '관리한다'는 건 보관, 흐름, 분포, 의사결정 네 차원의 운영이에요. WineDuck이 그 네 차원을 어떻게 모델링하고, 외부 AI 스킬로 어디까지 위임하는지 깊게 풀어봅니다.
AI Skillset 글에서 “외부 AI를 도구가 아니라 팀원으로 본다”를 말했어요. 그 글이 외부에서 본 입구라면, 이번 글은 안으로 들어가요. 셀러를 관리한다는 게 정확히 무엇인지, 그 위에 WineDuck이 어떤 모델을 얹었는지, 그리고 스킬로 외부 AI에 무엇을 넘기는지 — 깊게 풀어봐요.
셀러를 관리한다는 것 — 정의부터
“셀러를 가지고 있다”와 “셀러를 관리한다”는 완전히 다른 일이에요.
가지고 있는 건 와인이 있다는 사실이에요. 관리한다는 건 그 와인들이 언제, 어떤 상태로, 누구와, 어떤 맥락에서 열릴지를 매번 결정한다는 뜻이에요. 매입 — 보관 — 음용 — 회고가 끊임없이 도는 작은 운영 시스템이에요.
셀러 운영이 보통 이렇게 무너져요.
- 산 와인을 까먹어요 — 한참 후에 “이게 여기 있었네” 하고 발견하면, 이미 음용 윈도우가 지났어요.
- 비슷한 와인을 또 사요 — 셀러에 있는 걸 잊고 같은 등급을 또 사고, 셀러가 한쪽으로 쏠려요.
- 어떤 자리에 놓을지를 매번 헷갈려요 — 짧게 마실 거랑 길게 묵힐 거가 섞여서 보관 온도/위치 결정이 매번 새로워요.
- 평가가 안 남아요 — 마셨는데 점수도 메모도 안 남으면, 다음 매입에서 같은 실수를 반복해요.
이걸 사람의 “기억”으로 다 잡으려고 하면 안 돼요. 사람의 기억은 와인 30병이 넘어가면 흐려져요. 셀러 관리는 운영의 영역이고, 그 운영을 위한 모델이 필요해요.
셀러 관리의 4차원
셀러 관리를 한 덩어리로 보지 말고, 네 차원으로 쪼개야 모델이 보여요.
차원 1) 보관 (Storage)
물리적인 자리예요. 셀러의 온도, 습도, 위치, 자세(눕힘/세움).
- 온도: 장기 보관은 11
12°C가 표준이에요. 셀러 안에서도 위/중간/아래가 13°C씩 다르게 잡혀요. 그래서 같은 셀러여도 “단기 음용은 위, 장기 묵힘은 아래” 배치 룰이 생겨요. - 자세: 코르크 와인은 눕혀서. 스크류캡은 세워도 무방. 매그넘은 보통 셀러 안에 안 들어가요(자리 부족 + 음용 시점이 명확).
- 자리 카탈로그: 자리 자체가 자원이에요. “몇 번째 칸의 어디”를 기록해야 30병 이상에서 안 헷갈려요.
보관 차원이 무너지면 와인이 “있는데 없는” 상태가 돼요. 검색이 안 되니까 안 보이고, 안 보이니까 안 마셔요.
차원 2) 흐름 (Flow)
들어오고, 묵히고, 나가는 흐름이에요.
- In: 매입, 선물, 모임 잔여(rare)
- Holding: 묵힘 — 음용 윈도우 안에서 대기 상태
- Out: 음용, 외부 시음(레스토랑·와인바), 선물 나감, 폐기
흐름 차원의 핵심은 “음용 윈도우” 예요. 와인마다 “지금 마시면 좋아요”의 기간이 달라요. 어떤 와인은 5년 안에, 어떤 와인은 10년 후부터예요. 그 윈도우가 셀러 운영의 시계를 만들어요. 윈도우를 지나치면 그 와인은 자산에서 부채로 바뀌어요.
흐름이 잘 도는 셀러는 들어오는 만큼 나가요. 셀러 캐파가 한정돼 있으니, 들어옴 = 나감 균형이 안 맞으면 캐파를 넘기거나 새로운 매입을 못 해요. 그래서 흐름 차원에는 “매입 폭주 게이트” 같은 룰이 생겨요 — 한 주에 N병 이상 들어오면 음용 우선순위를 강제로 끌어올림.
차원 3) 분포 (Distribution)
셀러 안에 무엇이 어떤 비중으로 있는가의 차원이에요.
- 등급별 분포 — 자랑/기념일급(S) / 핵심 디너(A) / 진지하게(B) / 캐주얼 미들(C) / 즉시 음용(D). 보통 S/A가 너무 많고 C/D가 모자라면, 평일에 마실 게 없어요.
- 장기/중기/단기 분포 — 5년+, 1.5~5년, 1년 내. 장기만 쌓이면 “마실 게 없어요”.
- 권역/품종 분포 — 셀러의 정체성이 여기 결정돼요. “부르고뉴 멀티 리저널”, “보르도 좌안파” 같은 정체성은 분포가 만들어요.
분포가 한쪽으로 쏠리면 셀러가 살아있는 시스템이 안 돼요. 같은 와인 다섯 병을 사고 다른 곳이 다 비면, 셀러가 아니라 창고예요.
차원 4) 의사결정 (Decision)
가장 어려운 차원이에요. 다음에 무엇을 살까, 다음에 무엇을 열까, 무엇을 회피할까.
- 매입 결정: 가격, 빈티지, 도멘 평판, 셀러의 빵꾸 자리, 이미 비슷한 게 있나
- 음용 결정: 오늘 누구랑, 어떤 음식, 누구를 위해 — 그 자리에 맞는 한 병
- 회피 결정: 안 사야 할 카테고리(예: 좌안파의 우안 보르도), 안 사야 할 빈티지(예: 흉작 해)
의사결정 차원이 사람을 가장 많이 묶어요. 매번 처음부터 생각하면 시간이 너무 들어요. 그래서 운영에서는 “룰”이 자라야 해요. 한 번 잘 결정한 건 룰이 되어, 다음에 비슷한 결정이 들어오면 자동으로 처리되거나 사람 게이트에서 짧게 끝나야 해요.
차원별 룰이 자라요
네 차원을 잘 관리하면 셀러에 룰이 쌓여요. 셀러 주인이 “이런 와인은 산다”와 “이런 와인은 안 산다”를 분명하게 갖게 돼요. 예를 들면 이런 룰이에요(가공된 예시).
- 빈티지 룰: “2024 부르고뉴 레드는 자동 패스. 화이트는 조건부 OK” — 빈티지 차트가 의사결정 차원에 박혀요.
- 도멘 티어 룰: “샤블리는 그로워 도멘 우선. 마을급 라벨은 안 사요” — 분포·의사결정 차원에 같이 박혀요.
- 매입 폭주 게이트: “한 주에 3병 초과 매입 시 자동 음용 우선순위 통지” — 흐름 차원의 안전판.
- 회피 카테고리: “좌안파니까 우안 보르도 자동 제외” — 의사결정 차원의 사전 컷.
이 룰이 자라지 않으면 셀러는 “매번 처음부터 다시 생각하는” 상태에 머물러요. 룰이 자라야 운영이 가벼워져요.
WineDuck이 모델링한 것
셀러 관리의 네 차원을 그대로 옮기지 않으면, 소프트웨어가 사람의 운영에 안 맞아요. WineDuck은 이 네 차원을 다음과 같이 모델링했어요.
Cellar entry — 한 병의 단위
셀러의 한 병이 모델의 단위예요. 한 병에 묶여 있어야 할 정보가 분리돼 있어요.
- 와인 식별: 와인 자체(wine_id) + 빈티지(vintage_year, NV 처리 포함)
- 보관 상태: 위치, 자세, 매입가, 매입 채널
- 흐름 상태: in_cellar / consumed / gift_out 등의 상태 + 도착 시점, 음용 시점
- 음용 윈도우: drink_window(
now/within_1_5y/over_5y) - 셀러 등급: 셀러 주인이 부여한 자체 등급(S/A/B/C/D)
여기서 중요한 결정이 두 개 있었어요.
첫째, 글로벌 시장 등급과 셀러 내부 등급은 분리해요. 시장에서 1er Cru여도 셀러 주인에겐 B티어일 수 있어요. “내 셀러에서”의 등급이 의사결정의 입력이지, 시장 등급은 메타정보예요.
둘째, “받음(received)“이 in_cellar 카운트에 포함돼요. 선물로 들어온 와인도 셀러의 자리를 차지하고 음용 결정의 후보예요. 매입가가 0이라고 셀러에서 빼면 흐름/분포 차원이 안 맞아요.
Tasting note — 음용의 한 회
음용은 단순한 “out” 이벤트가 아니에요. 그 자리에서 무엇이 일어났는지가 다음 결정의 입력이 돼요.
- 점수: 셀러 주인의 5점 척도(또는 5의 소수점). “4점 미만 = 재구매 X” 같은 룰이 여기서 나와요.
- 상황·페어링: 누구와, 어떤 음식, 어떤 분위기. 외식이면 매장명까지.
- 재구매 여부: 다음 매입 후보로 자동 올라갈지의 신호.
- 메모: 향, 맛, 변화, 페어링 평가.
핵심은 점수와 재구매 여부의 분리예요. 점수가 높아도 재구매 X일 수 있고(“좋지만 너무 비싸요”), 점수가 낮아도 재구매 O일 수 있어요(“오늘은 컨디션 X, 다시 시도”). 두 신호가 각각 다음 매입을 결정하는 다른 입력이에요.
외부 시음 — 셀러 밖의 음용도 자산
레스토랑이나 와인바에서 마신 와인은 셀러에 없었어요. 그런데 그 데이터는 다음 매입 결정의 입력이에요. WineDuck은 “외부 시음” 카테고리를 따로 둬서 tasting note는 발급하되, in_cellar 카운트엔 영향을 안 줘요.
이 분리가 중요한 이유는 — 셀러 카운트는 자리/캐파 결정에 쓰이고, tasting은 취향/재구매 결정에 쓰여요. 두 개를 같은 카운트에 섞으면 운영이 흐려져요.
빈티지 차트, 도멘 티어 — 룰의 저장소
WineDuck의 운영에서 자라난 룰이 저장되는 자리예요. 빈티지 차트는 “이 해의 부르고뉴 레드는 자동 패스” 같은 의사결정 입력이고, 도멘 티어는 “이 도멘은 마을급도 산다 / 이 도멘은 1er Cru여도 안 산다” 같은 사전 컷이에요.
룰의 저장소가 운영의 자산이에요. 룰이 자랄수록 매번 처음부터 생각하는 일이 줄어요.
스킬 — 외부 AI에 넘기는 인터페이스
AI Skillset 글에서 외부 AI를 “팀원”으로 다룬다고 했어요. WineDuck의 스킬은 그 팀원이 셀러의 네 차원에 접근하는 인터페이스예요. 현재 다섯 개로 묶어요.
- wineduck-auth — 토큰 발급(scope=‘skill’, 24h). 외부 AI가 셀러 주인을 대신해 접근할 자격.
- wineduck-search — 와인 자체 검색. 도멘/품종/빈티지로 와인 식별.
- wineduck-wine — 와인 객관 데이터(원산지, 품종, 향미). 셀러 주인의 평가와 분리된 “무엇”.
- wineduck-cellar — 셀러의 흐름·분포·보관 차원. 등록·이동·소비·자리 카탈로그.
- wineduck-tasting — 음용의 한 회. 점수, 페어링, 재구매 여부.
스킬의 단위가 차원과 가깝게 정렬돼 있어요. “오늘 디너에 어울리는 한 병을 추천”하려면 외부 AI가 cellar의 분포, tasting의 평가, wine의 객관 정보 — 세 스킬을 합쳐서 봐야 해요. 단일 스킬이 너무 많은 책임을 안 갖게, 한 스킬은 한 차원에 가깝게.
스킬이 안 잡는 것
스킬이 모든 걸 안 해요. 의도적으로 안 잡는 자리가 있어요.
- 평점은 셀러 주인이 직접 부여 — 외부 AI가 점수를 임의로 매기지 않음. 셀러 주인의 명시 입력만 점수.
- 댓글/리뷰도 셀러 주인 명시 입력만 — “AI가 대신 적어 줘” 자동 트리거 없음.
- 매입 결정은 외부에서 자동 안 함 — 추천까지가 스킬의 일. 매입 실행은 셀러 주인의 게이트.
- 콸 계정 데이터는 super-admin 격리 — 일부 데이터는 추천/공유 알고리즘에서 consume 불가.
이 경계가 QA 게이트 글에서 말한 “외부 영향 검증”이에요. 평가·결정·매입 같은 자리는 영구히 사람 게이트에 둬요.
셀러의 자기 진화 — 데이터가 룰로 굳어요
WineDuck의 진짜 목적은 한 가지 흐름을 만드는 거예요.
데이터 → 패턴 → 룰 → 다음 결정의 입력
처음엔 모든 결정이 사람에게서 나와요. 데이터가 쌓이면 패턴이 보여요. 패턴이 분명해지면 룰이 돼요. 룰이 박히면 다음 결정이 짧아져요.
예를 들면 — 한 셀러 주인이 30회 정도 매입과 음용을 반복하면, “이 마을의 이 도멘 마을급은 안 산다” 같은 룰이 분명해져요. 그 룰이 박히면, 다음에 비슷한 와인이 가격 알림에 떠도 셀러 주인이 일일이 생각하지 않아도 돼요. 사람의 의사결정 시간이 줄고, 셀러의 정체성이 또렷해져요.
PaSelf 글에서 말한 “상태 + 룰 + 피드백”이 셀러에서 어떻게 작동하는지가 이거예요. 셀러 = 상태, 빈티지 차트·도멘 티어·회피 카테고리 = 룰, tasting note + 재구매 여부 = 피드백. 세 개가 같이 돌면 셀러가 “내 취향의 운영체제”가 돼요.
셀러의 안전 마진 — 잘못된 매입을 막아요
운영 시스템의 가치는 “좋은 결정을 만든다”보다 “나쁜 결정을 막는다”에서 더 크게 나요.
WineDuck의 셀러 운영에서 자주 작동하는 안전 마진:
- 빈티지 차트 컷 — “2024 부르고뉴 레드 자동 패스” 같은 룰이 매입 게이트에서 차단
- 회피 카테고리 — “좌안파니까 우안 보르도 자동 제외”가 추천에서 사전 컷
- 매입 폭주 게이트 — 한 주에 N병 초과 시 음용 우선순위 강제 통지
- 유아살해 금지 — 묵힘이 필요한 와인을 어리게 까지 못 하게 음용 알림에서 차단
- 셀러 카운트 더블체크 — 등록 직후 country/region 매칭 검증
이 안전 마진들이 사람의 “한순간의 충동”을 막아요. 셀러 주인이 늦은 밤에 좋은 빈티지 라벨을 보고 “오 이거 싸네” 했을 때, 셀러의 흐름 상태와 등급 분포, 그리고 회피 룰이 “이미 비슷한 게 세 병, 음용 페이스 미달”이라고 알려주면 — 그 한 번의 사고가 안 일어나요.
정리
“셀러를 관리한다”는 건:
- 보관 — 자리, 온도, 자세
- 흐름 — 들어오고, 묵히고, 나가는 사이클
- 분포 — 등급별, 시계별, 권역별 비중
- 의사결정 — 매입·음용·회피
이 네 차원을 매번 처음부터 생각하지 않게, 데이터가 패턴이 되고, 패턴이 룰이 되는 흐름이 필요해요.
WineDuck은 그 네 차원을 모델링했고, 스킬은 그 모델을 외부 AI에 넘기는 인터페이스예요. 외부 AI가 셀러를 보고, 빈티지 차트를 적용하고, 도멘 티어를 알고, 동가 대안을 비교해서 “오늘 디너에 한 병” 같은 결정을 짧게 만들어 줘요. 그래도 마지막 게이트 — 점수, 매입 실행, 회피 룰 변경 — 는 셀러 주인이 직접 잡아요.
셀러 관리의 가치는 “잘 골라요”가 아니라 “같은 실수를 안 반복해요” 예요. 운영이 자라면 셀러도 자라고, 그 안에서 셀러 주인의 취향이 더 또렷해져요.
링크