
동일한 신체라도 어떤 청바지에서는 29, 다른 청바지에서는 28입니다. 사이즈 차트가 이를 구분하지 못하는 이유를 밝히는 핏 엔진을 개발했습니다.
혼자 끊임없이 해오던 논쟁을 끝내기 위해 이 데모를 제작했고, 드롭다운 하나를 변경하자마자 그 논쟁은 끝났습니다. 필자는 Riley라는 가상의 쇼핑객, 고정된 신체 치수 세트, 8개의 가상 청바지 카탈로그를 준비했습니다. 신축성이 전혀 없고 뻣뻣한 14온스 로우 셀비지 스트레이트 진인 Ironside에 Riley를 매칭하자 엔진은 다음과 같은 결과를 내놓았습니다: 사이즈 29, 95% 신뢰도, 모든 부위에서 편안함. 이어 Riley의 조건은 전혀 바꾸지 않고, 제품 사진상으로는 거의 똑같아 보이는 스트레치 슬림 진인 Driftwood로 의류를 교체하자 적정 사이즈는 28로 떨어졌습니다.
동일한 신체. 동일한 치수. 그러나 서로 다른 두 개의 적정 사이즈. 그리고 오늘날 거의 모든 의류 사이트가 실제로 사용하는 허리 치수 전용 사이즈 차트라면 두 청바지 모두에 완전히 동일한 숫자를 제시했을 것이고, 그중 하나는 틀렸을 것입니다.

이렇게 완성된 프로덕트의 이름은 Contour이며, 다음 링크에서 이 동일한 비교를 직접 실행해 보실 수 있습니다: veriprajna.com/ko/demos/ai-fit-prediction-fashion. 하지만 필자가 이야기하고자 하는 것은 추천 결과 그 자체가 아닙니다. 신체 조건은 전혀 달라지지 않았는데도 추천이 바뀐 이유이며, 바로 그 이유가 이 시스템을 지금의 방식으로 구축해야 했던 핵심 논거이기 때문입니다.
패션 업계는 더 나은 이미지로 반품 문제를 해결하려 해왔습니다
필자 역시 이 분야의 대부분 사람들처럼 반품 문제가 이미지 문제라고 믿으며 이 프로젝트를 시작했습니다. 의류 반품은 핏(fit) 문제가 지배적이며, 핏 관련 반품 비율은 대략 53~67%에 달하고, 쇼핑객의 약 63%는 두 가지 사이즈를 주문하고 하나를 반품하는 '브래키팅(bracketing)'을 한다고 인정합니다(Veriprajna WP34 연구, 2026). 역물류 비용은 마진을 잠식합니다. 이에 대한 업계의 해법은 이미지를 개선하는 것이었습니다. 더 상세한 사이즈 차트, 3D 아바타, 그리고 신체 사진에 옷을 렌더링하는 생성형 가상 피팅으로 이어졌습니다.
필자는 충분히 훌륭한 가상 피팅이 그 격차를 메워줄 것이라고 한동안 확신했지만, 가상 피팅이 실제로 보여주는 것이 무엇인지를 면밀히 따져보게 되었습니다. 가상 피팅은 몸 위에 걸쳐진 청바지를 보여줄 뿐입니다. 그 청바지가 그 몸에 맞을지 여부는 보여주지 못합니다. 생성형 이미지는 원단을 그럴듯하게 드리울 수는 있지만, Riley가 자리에 앉았을 때 허벅지 둘레가 해당 데님이 늘어날 수 있는 한계를 초과한다는 사실은 전혀 알지 못합니다. 사진은 완벽해 보이지만, 봉제선은 렌더링이 전혀 계산하지 못한 하중을 받고 있는 것입니다.
가상 피팅은 당신의 몸에 걸쳐진 청바지를 보여줄 수는 있지만, 그것이 몸에 맞을지는 여전히 전혀 알지 못합니다.
이 문장은 필자에게 프로젝트의 프레임을 완전히 다시 짜게 만든 계기가 되었습니다. 사이즈 차트는 3차원 신체를 설명하는 척하는 4개의 1차원 숫자일 뿐이며, 가상 피팅 이미지는 핏 데이터인 척하는 예쁜 2차원 렌더링에 불과합니다. 둘 다 동일한 맹점을 공유합니다. 그 어느 쪽도 원단의 물리적 특성을 느끼지 못한다는 점입니다. 옷이 맞는지 여부는 시각적인 문제가 아닙니다. 그것은 역학적인 문제입니다. 즉, 원단의 탄성 한계에 대비하여 측정된 각 신체 부위별 원주 방향 변형률(circumferential strain)의 문제입니다. 이것이 바로 사이즈 차트가 동일함에도 Riley가 로우 셀비지에서는 29이고 스트레치 데님에서는 28인 이유입니다.

왜 필자는 모델이 사이즈를 선택하는 것을 더 이상 신뢰하지 않게 되었을까요?
초기에 한 번 언어 모델에게 사이즈를 선택하도록 맡긴 적이 있었는데, 그 모델이 자신 있게 틀리는 모습을 목격한 것이 바로 현재의 아키텍처를 구축하게 된 계기였습니다. 필자의 첫 직관은 누구나 생각할 만한 것이었습니다. 모델에 신체 치수를 입력하고, 옷 정보를 입력한 뒤 사이즈를 물어보는 것이었습니다. 모델은 즉각적이고 유창하게 대답했지만, 신축성이 없는 뻣뻣한 원단에서는 가장 위험한 방식, 즉 높은 확신을 가지고 틀리는 경우가 잦았습니다. 진실을 결정하는 단 하나의 계산도 수행하지 않은 채 그럴듯한 사이즈 답변의 형태만을 학습했던 것입니다.
그래서 필자는 결정권을 모델로부터 완전히 분리해 냈습니다. Contour에서 사이즈는 단위 테스트를 거친 순수 Python 코드로 계산됩니다. 각 후보 사이즈에 대해 엔진은 zone_strain = (body_circumference − garment_finished_circumference) / garment_finished_circumference 수식을 통해 모든 부위의 변형률을 계산하고, 이를 원단의 탄성 쾌적 한계와 비교하여 부위별 총 후회(regret)가 가장 낮은 사이즈를 선택합니다. 8개의 단위 테스트가 이러한 물리 법칙을 견고하게 고정합니다. 사이즈를 결정하는 경로 그 어디에도 모델은 존재하지 않습니다. 언어 모델에게도 여전히 역할은 있습니다. 정돈되지 않은 공급업체의 제품 설명을 읽어 구조화된 원단 사양으로 변환하고, 그 결과를 "엉덩이는 딱 맞고, 허벅지는 여유 있음"과 같이 표현하는 일입니다. 모델은 조언할 뿐, 결코 결정하지 않습니다.
에이전트는 조언하고, 코드가 결정합니다. 모델에게 숫자에 대한 결정권이 주어지는 순간, 그 숫자를 신뢰할 수 있게 만들었던 근거는 사라집니다.
이것은 또한 시간이 지나도 유효한 논제의 핵심이자, 더 나은 모델이 나오기를 기다리지 않은 이유를 묻는 엔지니어들에게 필자가 제시하는 답변이기도 합니다. 완벽한 언어 모델이 등장하더라도 원단 역학, 신체 기하학, 부위별 변형률 계산, 기권(abstain) 정책에 대한 필요성은 사라지지 않습니다. 결제 단계에서 안전성을 담보하려면 아무리 흠잡을 데 없는 조언자라 하더라도 계산된 정량적 수치와 대조 검증을 거쳐야 합니다. 모델은 머신 내부에서 교체 가능한 조언자 중 하나일 뿐입니다. 머신 그 자체가 곧 제품입니다.
추측을 거부하는 사이즈
필자는 "모르겠습니다"라고 결코 말하지 않는 버전을 배포할 뻔했으나, 까다로운 테스트 케이스 덕분에 그 생각을 접을 수 있어 다행이었습니다. 해당 쇼핑객은 바로 그 뻣뻣한 Ironside 셀비지를 입어본 Jordan이었습니다. 명확한 숫자가 나올 것이라 기대하며 핏 체크를 실행했지만, 엔진은 진정한 피팅 충돌을 드러냈습니다. 작은 사이즈에서는 허벅지가 원단의 신축 한계를 넘어서고, 큰 사이즈에서는 허리가 헐렁해지는 문제였습니다. 신축성이 전혀 없는 데님에서는 모든 부위를 만족시키는 사이즈가 아예 존재하지 않습니다. 반면 허리 전용 차트는 자신 있게 다음과 같이 숫자를 제시합니다: 28그리고 넘어가 버립니다.

헤드라인 정확도를 더 높아 보이게 만드는 유혹적인 방법은, 언제나 차악의 사이즈를 출력하고 이를 추천이라고 부르는 것입니다. 필자도 그런 버전을 작성한 적이 있습니다. 하지만 그 후 엔진이 기권(abstain)하도록 변경했습니다. 즉, 차악의 사이즈를 제시하되 신뢰도를 0.58로 낮추고, "브래키팅하거나 스타일리스트와 상담하세요"라고 명시적으로 알립니다. 전체 평가에서 엔진은 맹목적으로 추측하는 대신 105개의 신체-의류 조합 중 33개에서 이처럼 기권 처리를 수행합니다. 정직한 "여기서는 완벽하게 맞는 단일 사이즈가 없습니다"라는 메시지가, 자신 있게 틀린 28보다 쇼핑객에게 훨씬 더 가치 있습니다. 자신 있게 틀린 28이야말로 정확히 반품을 유발하는 원인이기 때문입니다. 답변을 거부하는 것은 벤치마크 점수에 대한 필자 자신의 본능과 싸워가며 지켜내야 했던 기능이었습니다.
사실일 리 없는 공급업체의 제품 설명
필자의 카탈로그에는 오직 거부되기 위해서만 존재하는 의류가 하나 있는데, 이는 제품 설명이 작성되는 방식에 대한 깊은 답답함에서 비롯된 것이었습니다. Maverick은 공급업체에 의해 "4방향 신축성을 지닌 100% 면 로우 셀비지 데님"으로 설명되어 있습니다. 이 주장은 물리적으로 성립할 수 없습니다. 뻣뻣하게 짜인 직물인 로우 셀비지가 동시에 4방향 스트레치일 수는 없습니다. 그러나 순진한 추출기는 "4방향 스트레치"를 읽고 원단이 모든 압박을 다 수용해줄 것이라 안일하게 가정한 뒤, 위험천만하게 틀린 사이즈를 웃는 얼굴로 건네줍니다.
그래서 필자는 추출과 결정 단계 사이에 적대적 비판자(adversarial critic)를 배치했습니다. 이는 추출된 원단 사양을 물리적 제약 조건과 대조하여 검증하며, 설명에 모순이 발견되면 추론을 차단하고 사람의 검토로 라우팅합니다. 어떠한 사이즈 추천도 발행되지 않습니다. 설명을 읽은 모델이 아니라 결정론적 규칙이 최종 결정권을 갖습니다.

필자가 이 예시를 화면에 계속 띄워두는 이유는, 이것이 이 문제에 대한 "AI 안전성"의 정직한 형태이기 때문입니다. 실패 모드는 모델이 창의성을 발휘해서가 아닙니다. 설명 자체가 거짓인 의류에 대해 모델이 순종적으로 틀린 답을 내놓는 것이 문제입니다. 언제나 답변을 내놓는 시스템이라면 여기서도 답을 할 것이며, 설명이 진실이었던 청바지에 대해서만큼이나 Maverick에 대해서도 완전히 동일하게 확신할 것입니다. 핵심은 "이 두 가지 사실은 동시에 성립할 수 없다"고 말하며 멈출 수 있는 계층을 두는 데 있습니다.
숫자가 실제로 말해주는 것과 그렇지 않은 것
필자는 벤치마크를 중요하게 생각하며, 그 적용 범위를 정직하게 밝히는 것을 더욱 중요하게 여깁니다. 정직한 숫자만이 지속 가능하기 때문입니다. 15개의 신체와 7개의 평가 대상 의류로 구성된 라벨이 지정된 105개 쌍의 합성 골든 세트에서 Contour 엔진의 점수는 100퍼센트를 기록한 반면, 허리 전용 사이즈 차트는 60퍼센트였습니다. 이는 67.6%의 쌍에서 브래키팅을 제거하여 쇼핑객이 높은 신뢰도의 단일 사이즈를 얻고 두 개를 주문할 필요가 없도록 만들며, 차트의 허리 일치 기준으로는 선택되었으나 변형률 모델을 통해 다른 부위에서 맞지 않는 것으로 입증된 핏 충돌 39건을 잡아냅니다.

여기에 필자가 어물쩍 넘어가지 않고 분명히 밝히고자 하는 부분이 있습니다. 해당 골든 세트는 합성 데이터이며, 그 라벨은 엔진이 사용하는 것과 동일한 측정 가능한 원단 신축성 수치를 사용하므로, 이는 완전히 독립적인 오라클은 아닙니다. 100%라는 수치는 이렇게 설계된 세트의 고유한 특성일 뿐, 실제 현실 세계에서의 완벽한 핏 예측을 보장하는 것이 아니며, 필자는 그 누구도 이를 그렇게 인용하도록 내버려 두지 않을 것입니다. 필자가 실제로 보증하는 숫자는 실제 기존 방식 대비 +40%p의 개선 폭입니다. 즉, 동일한 라벨을 기준으로 측정했을 때 오늘날 대부분의 매장이 사용하는 허리 전용 차트 대비 거둔 개선입니다. 이러한 우위는 마땅히 그래야 할 부분, 즉 뻣뻣한 셀비지와 테일러링 의류에서 가장 두드러집니다. 신축성이 없는 원단은 잘못된 사이즈를 용납하지 않고 신축성 있는 니트는 수용해주기 때문에, 차트의 정확도는 33%로 곤두박질칩니다. 물리 법칙의 제약이 가장 가혹한 곳일수록 이미지가 주는 도움은 가장 적으며, 바로 그곳이 이 엔진이 제값을 해내는 영역입니다.
정직한 헤드라인은 "100% 정확도"가 아닙니다. "귀사의 쇼핑몰이 이미 신뢰하고 있는 차트보다 40%p 더 우수하며, 그 격차의 대부분은 데님에서 발생한다"는 것입니다.
이러한 각 추천은 재생 가능한 JSON 영수증을 함께 작성합니다. 각 매개변수를 유도한 정확한 원문 문구가 포함된 추출 원단 사양, 사이즈별 전체 변형률 매트릭스, 최종 결정이 포함됩니다. 따라서 결과는 단순한 숫자가 아닙니다. 열어서 상호 검증할 수 있는 숫자이며, 동일한 페이로드가 /api/fit 엔드포인트에서 제공되어 AI 쇼핑 에이전트가 직접 호출할 수 있습니다. 커머스가 우리를 대신해 거래하는 에이전트 중심으로 이동함에 따라, 이들이 소비하는 사이징 신호는 기계가 읽을 수 있고(machine-readable), 신뢰도 점수가 매겨져 있으며(confidence-scored), 감사 가능(auditable)해야 합니다. 이미지가 아니라 보고서여야 합니다.
필자가 계속해서 되돌아보게 되는 질문
처음에는 더 나은 추측기를 만든다고 생각하고 시작했지만, 프로젝트를 마쳤을 때는 계측기에 더 가까운 것을 만들었다고 확신하게 되었습니다. 흥미로운 작업은 결코 단순히 사이즈를 예측하는 것이 아니었습니다. 시스템이 무엇을 주장할 수 있는지, 언제 기권해야 하는지, 어떤 모순을 거부해야 하는지, 사후에 각 답변을 어떻게 증명할 것인지를 결정하는 것이었습니다. 신축성 없는 진에서 스트레치 진으로 드롭다운을 바꾸고 변하지 않은 신체 치수 아래에서 적정 사이즈가 바뀌는 것을 볼 때, 필자가 느끼는 감정은 "모델이 똑똑하다"가 아닙니다. "물리 법칙은 실재하며, 마침내 우리는 그것을 이미지 뒤에 숨기는 것을 멈추었다"는 것입니다. 여러분도 다음 링크에서 동일한 드롭다운을 변경하며 veriprajna.com/ko/demos/ai-fit-prediction-fashion직접 확인해 보실 수 있습니다.
글로 된 설명을 읽기보다 직접 눈으로 확인하고 싶으시다면, 전체 시스템이 엔드투엔드로 실행되는 모습을 여기서 확인하실 수 있습니다.
필자가 끊임없이 곱씹으며 다른 빌더들과 진솔하게 토론하고 싶은 질문은, 우리가 또 어떤 분야에서 물리적 사실을 더 예쁜 이미지로 얼버무리고 있는가 하는 점입니다. 패션 업계는 10년 동안 더 나은 이미지만을 좇았지만, 해답은 엔지니어라면 누구나 단위 테스트를 작성할 수 있는 변형률 계산 속에 있었습니다. 그렇다면 여러분의 영역에서 모두가 렌더링하려고만 하는 대상 이면에 자리 잡은 물리적 사실은 무엇이며, 여러분은 직접 검증할 수 있는 숫자보다 그것의 이미지를 더 신뢰하시겠습니까?


