[연재] 예/아니오만 하는 판정기 — 국산 브랜드가 중국행 링크로 바뀔 뻔했습니다
국산 브랜드가 중국행 링크로 바뀌어 있었습니다
스위치 제품 링크를 정리하는 작업이었습니다. 국내 판매 채널로 가야 할 링크와 알리익스프레스로 가야 할 링크를 가려서 자동으로 바꾸는 일이었어요. 판정기 하나를 새로 붙여서 통째로 맡겨봤습니다.
결과를 눈으로 훑다가 이상한 걸 봤습니다. 국산 브랜드인 앱코와 제닉스가 알리익스프레스행으로 바뀌어 있었고, 반대로 대표적인 중국 브랜드인 펀치오디오와 Moondrop은 국내행으로 분류돼 있었습니다. 정확히 거꾸로였어요.
브랜드 이름 한둘 정도의 착오가 아니라 국적 자체가 뒤집힌 거라, 이대로 나갔으면 국산 브랜드 상품 링크를 누르면 중국 쇼핑몰로 넘어가는 사고가 날 뻔했습니다. 링크를 클릭하는 사람 입장에서 보면 국산이라고 믿고 눌렀는데 엉뚱한 나라 쇼핑몰이 뜨는 셈이니, 작은 착오가 아니었어요.
<!-- 사진 자리 ①: 국내행/알리행이 뒤바뀐 링크 목록 화면 -->
이 판정기가 뭐길래
새로 붙인 건 타입세이프라는 곳이 만든 Jev라는 판정 모델입니다. 글이나 표를 주고 "예/아니오"나 "다음 중 하나 골라라" 같은 정해진 답만 받는 용도예요. 자유롭게 글을 쓰는 게 아니라, 몇 개 선택지 중 하나를 고르는 것만 합니다. 한 번 답하는 데 1초가 채 안 걸리고, 값도 100만 글자 단위 기준으로 몇 센트 수준이라 거의 공짜에 가깝습니다. 질문을 여러 개 한꺼번에 넣으면 알아서 병렬로 처리하기도 해요. 대신 그림은 못 읽습니다. 글로만 된 자료만 줄 수 있어요.
싸고 빠르니까 처음엔 욕심이 났습니다. 판정이 필요한 자리마다 이걸 붙이면 손을 많이 덜겠구나 싶었죠. 사람이 하나하나 눈으로 봐야 했던 목록들을 통째로 넘겨버리고 싶은 유혹이 컸습니다. 수백 줄짜리 목록을 몇 초 만에 다 훑어준다니, 처음 붙였을 때는 신기하기까지 했습니다.
혼자 판정하게 뒀을 때 틀린 자리
브랜드 국적이 뒤집힌 사건 말고도 몇 군데서 더 틀렸습니다.
- 카드 혜택 항목을 다시 분류시켰더니, "기타"로 넣은 것 중 절반은 맞고 절반은 틀렸습니다.
- 어떤 사고가 어느 유형에 속하는지처럼 경계가 애매한 분류는 열에 셋도 못 맞혔습니다.
- 답이 표 속에 숨어 있는 문제(카드 한도 항목 10건)는 열에 둘만 맞았습니다. 표를 읽는 건 이 판정기가 약한 자리였어요.
- 반복 점검 작업에서는 기존 규칙이 143번 다 맞힌 걸 이 판정기 혼자 돌렸더니 없는 경보를 한 번 울렸습니다.
- 그리고 이 판정기 자신의 답을 다시 이 판정기에게 검사시켰더니, 그냥 글자 수를 세는 것보다도 못했습니다. "할 일이 뒤에 묻혔나" 정도만 겨우 걸러냈어요.
정리하면, 답이 글 속에 또렷이 적혀 있지 않고 판단이 끼어들어야 하는 자리에서는 자꾸 틀렸습니다. 브랜드 국적도 그런 자리였어요. 이름만 보고 국적을 추측해야 하는데, 낯익은 이름 몇 개를 반대로 외우고 있었던 겁니다. 사람도 낯선 외국 브랜드 이름을 보면 어느 나라 것인지 감으로 틀리게 짚을 때가 있잖아요. 이 판정기도 딱 그런 실수를 하고 있었습니다.
판정 대신 "빈틈 찾기"로 바꾸자 값이 나왔습니다
그래서 방식을 바꿨습니다. 이 판정기에게 최종 결정을 맡기지 않고, 원래 쓰던 규칙과 나란히 돌려서 둘이 다르게 답한 자리만 사람이 들여다보는 용도로 썼습니다. 결정은 여전히 원래 규칙이 하고, 판정기는 그 규칙이 놓친 구멍을 찾는 역할이에요.
이 방식으로 바꾸고 나서 나온 게 있습니다.
- 카드 혜택 규칙에 "국내·외", "전 가맹점" 같은 표기가 빠져 있던 걸 잡아서, 기본적립으로 처리됐어야 할 항목 28개를 되살렸습니다.
- 알리익스프레스 브랜드 목록에서 TTC, 오테뮤, 몬스긱, 탕주 등 12개 브랜드가 빠진 걸 잡아서, 링크 15개를 제대로 된 채널로 옮겼습니다.
둘 다 판정기가 답을 낸 게 아니라, 기존 목록에 뚫린 구멍을 가리키는 역할만 했습니다. 메우는 건 사람이 했고요. 곰곰이 보면 이게 판정기를 못 믿어서 그런 게 아니라, 역할을 바꾼 겁니다. "이게 맞다"고 말하는 자리에서 물러나서, "여기가 서로 다르네요"라고 말하는 자리로 옮긴 거예요. 후자는 틀려도 손해가 적습니다. 사람이 어차피 그 자리를 다시 보니까요.
이렇게 바꾸고 나니 두 결과가 다른 자리만 골라 보면 되니 볼 양도 확 줄었습니다. 목록 전체를 처음부터 다시 훑는 게 아니라, 기존 규칙과 판정기가 엇갈린 몇 줄만 보면 됐거든요. 검사는 여전히 필요하지만, 검사할 범위가 수백 줄에서 몇 줄로 줄어든 셈입니다.
기가 막히게 맞은 자리도 있었습니다
반대로 잘 맞은 자리도 분명했습니다.
- 글 속에 답이 이미 적혀 있는 문제 — 스위치 종류는 99%, 재질은 96% 맞혔습니다. 더 비싼 모델과 정확도는 같은데 속도는 12배 빨랐어요.
- 가짜로 "공식"이라고 써놓은 채널을 걸러내는 일 — 채널 40개를 시험했는데 가짜를 진짜로 통과시킨 게 한 건도 없었습니다.
- 글을 올리기 전에 예전에 지적받았던 표현이 또 들어갔는지 확인하는 일 — 넷 중 셋을 잡았습니다.
- 필요한 기록을 여러 후보 중에서 찾아내는 일 — 열 개 중 여덟 개를 상위권에 올렸습니다.
이런 자리들의 공통점은 답이 글 속에 그대로 있거나, 경계가 뚜렷한 예/아니오였다는 것입니다. "이 글에 이 문구가 또 있나", "이 채널이 공식이라고 자칭하는데 실제로도 공식인가" 같은 질문이요. 반대로 앞서 틀린 자리들은 "이 사고를 어느 유형으로 볼 것인가"처럼 사람도 의견이 갈릴 만한 질문이었습니다. 판정기가 못한 게 아니라, 애초에 답이 하나로 딱 떨어지지 않는 질문이었던 셈이에요.
특히 공식 채널 가르는 일은 처음엔 반신반의했습니다. 가짜 계정들이 진짜처럼 이름을 꾸며놓는 경우가 워낙 많았거든요. 마흔 개 채널을 하나씩 손으로 대조하려면 한나절은 걸릴 일이었는데, 판정기에게 채널 정보를 통째로 넘기니 몇 분 만에 끝났고 가짜를 진짜로 잘못 통과시킨 게 하나도 없었습니다. 이런 자리에서는 확실히 손을 많이 덜었습니다.
확신 점수는 안 믿기로 했습니다
이 판정기는 답마다 "이 답이 몇 퍼센트 확실하다"는 점수도 같이 줍니다. 처음엔 이 점수로 사람이 봐야 할 것과 안 봐도 될 것을 가르면 되겠다 싶었어요. 점수가 낮은 것만 사람이 보고, 높은 건 그냥 믿고 넘어가면 손이 훨씬 덜 갈 테니까요.
그런데 지난 판정 스물다섯 건을 놓고 확신 점수와 실제로 맞았는지를 맞춰보니, 점수가 높다고 실제로 맞은 비율이 딱 40%였습니다. 절반도 안 맞았어요. 확신에 차서 답했는데 틀린 경우가 그만큼 많았다는 뜻입니다. 그래서 이 점수는 사람이 볼지 말지를 가르는 기준으로 쓰지 않기로 했습니다. 대신 앞서 말한 것처럼, 기존 규칙과 다르게 답했는지만 봅니다. 확신도보다 그게 훨씬 정직한 신호였어요.
왜 이렇게 널뛰기를 할까
한참 들여다보고 나서야 이 판정기가 잘하는 것과 못하는 것의 경계가 보였습니다. 잘한 자리들은 전부 "이 글 안에 답이 있느냐 없느냐"를 묻는 질문이었어요. 스위치 종류가 뭔지는 상품 설명에 이미 적혀 있고, 채널이 공식인지 아닌지도 채널 정보 안에 단서가 있습니다. 판정기가 한 건 그 안에서 정답을 찾아낸 것뿐이에요.
반면 못한 자리들은 전부 답이 글 밖에 있는 질문이었습니다. 브랜드가 어느 나라 회사인지는 상품 설명 어디에도 안 적혀 있어요. 그건 세상에 대한 지식이 있어야 아는 겁니다. 카드 혜택의 "기타" 분류도 마찬가지고요. 판정기가 아는 척을 한 게 아니라, 애초에 그 글 안에서는 답을 찾을 수 없는 질문에 답을 내놓으라고 시킨 게 잘못이었습니다. 처음엔 이 구분이 안 보여서 뭐든 다 시켜봤는데, 나중엔 질문을 넘기기 전에 "이 답이 글 안에 있나"부터 먼저 따지게 됐습니다.
그래서 이제는 질문을 넘기기 전에 이 판정기가 그 글 하나만 보고 답할 수 있는 질문인지부터 따집니다. 세상 지식이 필요한 질문, 이를테면 "이 회사가 어느 나라 소속인가" 같은 건 아예 넘기지 않습니다. 대신 "이 문서 안에 이런 문구가 있나 없나"처럼 그 자리에서 확인 가능한 질문만 넘겨요. 이렇게 선을 긋고 나서부터는 이상한 답이 훨씬 줄었습니다.
값싸다고 아무 데나 붙이면 안 되더라고요. 이 판정기의 가장 큰 장점은 값이 거의 안 든다는 거였습니다. 그러다 보니 처음엔 판정이 필요할 것 같은 자리마다 일단 붙이고 봤어요. 어차피 싸니까 밑져야 본전이라는 생각이었습니다.
그런데 브랜드 국적 사건을 겪고 나서 생각이 바뀌었습니다. 값이 싸다고 손해가 없는 게 아니었어요. 틀린 판정이 그대로 링크에 반영돼서 나갔으면, 몇 센트 아낀 대신 국산 브랜드 판매자에게 엉뚱한 피해가 갈 뻔했습니다. 싼 도구일수록 오히려 "이게 틀리면 무슨 일이 나는가"를 먼저 따져야 한다는 걸 그때 배웠습니다. 지금은 붙이기 전에 늘 이 질문을 먼저 합니다. 이 판정이 틀렸을 때, 그게 사람 눈에 안 걸리고 그대로 나갈 수 있는 자리인가. 그렇다면 최종 결정권은 안 줍니다.
이번에 사람이 붙잡은 자리
- 브랜드 국적이 뒤집힌 걸 눈으로 훑다가 잡은 것. 그대로 나갔으면 국산 제품 링크를 눌렀다가 중국 쇼핑몰로 넘어갈 뻔했습니다.
- 판정기에게 결정을 맡기지 않고 구멍 찾기로 역할을 바꾼 것. 이 선을 그은 게 사람이었습니다.
- 확신 점수를 기준으로 쓰지 않기로 한 것. 숫자가 높아 보여도 실측으로 맞춰보기 전엔 안 믿기로 했습니다.
- 안에서만 쓰는 자료는 이 판정기 후보에서 아예 뺀 것. 바깥 서버로 나가는 방식이라, 나가면 안 되는 자료는 처음부터 넣지 않았습니다.
다음 편은 틀린 걸 세기 시작한 이야기입니다. 세어보니 기준이 되는 날 다섯 건 중 한 건이 이미 밖으로 나가 있더라고요.