-
초록불은 다 켜졌는데, 화면이 거짓말을 하고 있었어요AI Agent 2026. 6. 22. 21:00728x90반응형

"이거 계산 방식이 바뀐 건가요?" 한 줄이 왔을 때, 저는 솔직히 좀 억울했어요.
바꾼 게 없었거든요.퍼포먼스 통계 화면을 막 손보긴 했는데, 산술은 한 줄도 안 건드렸어요.
그냥 "아닌데요" 하고 넘기려다, 그 한 줄이 자꾸 목에 걸려서 화면을 다시 열었어요.
마우스를 그 지표 위에 딱 올린 순간, 등이 좀 서늘했어요.윗줄 다르고, 아랫줄 다르고
같은 화면 안에서, 같은 이름의 지표가 윗줄엔
+2.88, 바로 아랫줄엔+0.96으로 떠 있더라고요.
라벨은 없고요.
계산기로 둘 다 두드려봤는데 한 자도 안 틀려요.
둘 다 맞는 숫자였어요.
근데 화면은 거짓말을 하고 있었어요.처음엔 당연히 반올림인 줄 알았어요.
둘 다 소수 둘째 자리니까, 어디서 자리를 한 번 더 깎았겠거니.
그래서 반올림 코드만 한 30분을 들여다봤어요.
깨끗했어요.
아무 데도 안 틀렸어요.
그 30분이 통째로 헛발질이었던 거죠.헛발질이 끝나고 멍하니 두 숫자를 다시 보다가, 그제야 알았어요.
윗줄+2.88은 그 사람 원래 값이고, 아랫줄+0.96은 어떤 기준선과의 차이(delta)였던 거예요.
둘 다 진짜인데, 옆에 "이건 원래 값", "이건 기준 대비 차이"라는 한 줄이 없으니까, 보는 사람한테는 같은 지표가 답을 두 개 내놓는 화면이 된 거죠.
숫자가 틀린 게 아니라, 그 숫자가 무슨 질문에 답하는 건지가 비어 있었어요. 맞는 답이 틀린 질문 옆에 앉아 있었던 거예요.쇼핑몰 환불 화면 생각하면 비슷해요.
"환불 3,200원"만 떠 있으면, 그게 전체 환불액인지 배송비 뺀 차액인지 아무도 몰라요.
3,200원이 맞느냐 틀리느냐는 그다음 문제고요.표본 172건인데, 실사용자가 0명이었어요
근데 이건 그래도 약과였어요.
며칠 전엔 훨씬 크게 데었거든요.어떤 분포를 뽑아서 화면 임계값을 정하는 일이었어요.
데이터를 끌어와 돌렸더니 결과가 어찌나 깔끔하게 나오던지.
표본 172건, 상위 9할 지점이 6.6.
딱 봐도 그럴듯한 숫자라, 저는 신나서 "아 그럼 제일 바깥 눈금은 빼도 되겠네" 하고 결론까지 적어버렸어요.
적고 나서 뿌듯하게 보고서 위쪽을 한 번 훑었는데.데이터 출처 옆 칸 하나가
0이었어요.
실사용자 수를 세는 칸이.표본은 172건인데 실사용자가 0명.
그 순간 등골이 쭉 내려갔어요.
제가 끌어온 게 진짜 데이터가 아니라 테스트용 더미가 잔뜩 섞인 쪽이었던 거예요.0이라는 게 비어 있는 칸이 아니라 "여기 진짜 데이터 없음"이라는 비명이었는데, 저는 그냥 숫자 하나로 읽고 지나간 거죠.
그럴듯해서.진짜 데이터로 다시 돌렸어요.
표본 453건, 9할 지점이 6.6이 아니라 9.8.
결론이 정반대로 뒤집혔어요.
빼려던 그 바깥 눈금이 사실은 꼭 있어야 하는 거였어요.
두 번 다 산술은 한 자도 안 틀렸고요.
6.6도 정답, 9.8도 정답.
다만 6.6은 아무도 안 쓰는 데이터의 정답이었던 거예요.
그날 한숨을 좀 길게 쉬었던 기억이 나요.형제 지표들도 까보니, 또 나왔어요
이쯤 되니까 무서워서, 형제 지표들도 하나씩 다시 까봤어요.
그랬더니 또 나오더라고요.어떤 칸은 피트 값이 그대로 들어 있고, 비는 칸은 미터에
3.28084를 곱해 피트로 채우는 구조였어요.
환산은 정확해요.
근데 원본 미터가 정수로만 들어오니까, 1·2·3·4미터가 화면엔 3.3·6.6·9.8·13.1로 듬성듬성 찍혔어요.
옆 칸 직접 피트 값은 1.6·2.6처럼 촘촘한데.
두 칸을 나란히 놓는 순간에만 보이는 균열이라, 숫자 하나씩 떼서 보면 절대 안 잡혀요.
3.3도 맞고 6.6도 맞으니까요.그리고 제일 음흉한 거.
데이터가 아예 없는 구간이 화면에선 멀쩡한 막대로 그려지고 있었어요.
코드를 까보니까, 표본이 비면 백분위 함수가0을 돌려주고, 그0이 가장 안쪽 눈금으로 스냅돼서, 고정 눈금처럼 예쁘게 채워지더라고요.
"데이터 없음"이라는 신호가 어디에도 안 떠요.
빈 구간이 조용히 평균 같은 얼굴을 하고 앉아 있는 거예요.(타임존도 한 건 있었는데, 이건 옛날에 한 번 크게 데서 이번엔 미리 의심했어요.
UTC로 자르면 한국 아침 8시가 전날로 굴러떨어져서 "월요일 아침"이 "일요일"이 돼요.
합계는 안 틀리는데 날짜가 둔갑하죠.
근데 정확히 왜 어떤 날만 그렇게 새는지는 아직도 데이터마다 달라서, 버킷 경계는 매번 한 줄씩 직접 까봐야 마음이 놓여요.)공통점은, 계산이 한 자도 안 틀렸다는 거였어요
다 까놓고 멍하니 보다가, 공통점 하나가 등골을 또 한 번 쳤어요.
전부 계산은 한 자도 안 틀렸다는 거.
산술 버그는 진짜 0개였어요.
그런데 그 멀쩡한 숫자들의 의미가 죄다 깨져 있었어요.그 며칠 동안 제일 등골이 서늘했던 건, 이게 다 도는 내내 화면 위쪽 검사들은 끝까지 초록이었다는 거예요.
값이 비었나, 타입이 맞나, 에러가 났나 — 걔들이 보는 건 딱 거기까지더라고요.
"이 숫자가 맞는 질문에, 맞는 데이터에서 나온 답이냐"는 애초에 걔들이 볼 수 있는 종류가 아니었어요.
그럴듯하기만 하면 그냥 통과니까요.
거짓말하는 화면 옆에서, 초록불은 한 번도 안 깜빡였어요.그래서 이젠, 실사용자 수 칸부터 봐요
그래서 요즘은 통계 화면을 만질 때, 화면에 뜬 값으로는 검산을 안 해요.
그건 같은 착각을 두 번 통과시키는 거더라고요.
원시 데이터를 끌어다 두세 개를 처음부터 손으로 다시 굴려봐요.
근데 진짜로 제일 먼저 보는 건 따로 있어요.
실사용자 수 칸이 0인지.
그 0 하나에 크게 데고 나니까, 이젠 그 칸부터 안 보면 손이 안 나가더라고요.빈 구간을 어디까지 "표본 부족"이라고 회색으로 칠하고 어디부터 그냥 숨길지는, 솔직히 아직도 못 정했어요.
그건 화면 옆에 포스트잇으로 붙여만 놨어요.
지금도 그 노란 종이가 모니터 모서리에 붙어 있어요.728x90반응형'AI Agent' 카테고리의 다른 글
한 달 전에 만든 기록 폴더를 열었더니, 안에 .gitkeep 하나뿐이었어요 (0) 2026.06.23 빠르겠다고 동시에 던졌더니, 에이전트들이 서로를 밟고 있었어요 (1) 2026.06.23 AI한테 제일 먼저 가르친 건 코딩이 아니라 '코딩하지 마'였어요 (0) 2026.06.22 폴더 이름 한 번 바꿨다가 링크 576개를 동시에 깨먹은 날 (0) 2026.06.22 스무 번 넘게 고쳐달라다, "환불하고 싶다"는 말이 나왔어요 (0) 2026.06.22