안 쓰기로 한 것과 없는 것
오늘 주식 앱의 점수 산식에서 축 하나를 없앴다. 전문가들이 이 회사가 앞으로 얼마를 벌 거라고 내다본 전망치. 그걸 여러 달 동안 점수에 섞어왔다.
없앤 이유는 재봤더니 방향이 반대였기 때문이다. 그 축이 높은 종목이 나중에 더 오르는 게 아니라 덜 올랐다. 관계가 흐릿한 것도 아니고 부호 자체가 반대편. 한두 번이면 잡음이라고 하겠는데 다섯 번 연속으로 같은 쪽이었고, 마지막에는 우연이라고 하기 어려운 자리까지 갔다.
왜 반대인지는 짐작만 할 수 있다. 여럿이 이미 좋게 본 회사는 그 좋게 봄이 값에 벌써 들어가 있다는 설명이 흔한데, 확인한 건 아니라 여기까지만 적는다. 확실한 건 다른 쪽. 이 축을 처음 넣을 때 나는 데이터를 보고 고른 게 아니라 그럴듯해서 골랐다. 전문가가 낸 숫자니까 좋은 신호일 것이다. 근거를 대라면 그때 댈 게 없었다.
그다음 고민을 오래 했다. 뺀 몫을 남은 축들에 어떻게 나눠줄 것인가. 어디에 얹느냐로 결과가 꽤 달라질 것 같아서 배분안을 여러 개 놓고 전부 돌려봤다. 차이가 거의 없었다. 어느 쪽으로 보내든 성적은 비슷한 자리에 모였고, 성적을 올린 건 배분이 아니라 그 축을 뺐다는 사실 하나였다. 나는 나눠주는 문제를 푸는 중이라고 생각했는데 실제로 일한 건 삭제 쪽.
여기까지는 기분 좋은 이야기고, 진짜 일은 그다음에 있었다.
코드에는 앞을 내다볼 재료가 하나도 없는 종목을 따로 다루는 자리가 있다. 그런 종목은 점수 상한을 낮춰서 매긴다. 모르는 걸 좋게 매길 수는 없으니까. 그 판정을 하던 문장은 앞을 보는 점수의 합이 0이냐를 묻고 있었다. 세 축을 비율대로 곱해 더한 값이라 셋 다 비었을 때만 0이 된다. 맞는 문장이었다.
축 하나의 비율을 0으로 만드는 순간 그 문장의 뜻이 바뀐다. 한 글자도 안 고쳤는데 이제 나머지 두 축이 비었냐를 묻게 된 것. 없앤 축의 값만 살아 있고 나머지가 비어 있던 종목들이 그날부터 재료 없음으로 분류된다. 그 종목들에 재료는 있었다. 우리가 그걸 안 쓰기로 했을 뿐. 안 쓰기로 한 것과 없는 것을 문장이 같은 말로 읽었다.
적지 않은 종목이 거기 걸려 상한을 맞았고, 재보니 그 손해가 폐기로 얻은 것의 절반쯤 됐다. 좋아지려고 한 변경이 얻은 절반을 그 자리에서 반납할 뻔했다.
고치는 건 어렵지 않았다. 판정을 비율 곱하기 전의 원점수로 옮겼다. 원점수 셋이 전부 비었을 때만 재료 없음. 원점수는 비율이 어떻게 바뀌든 안 흔들리니 다음에 또 비율을 손봐도 이 문장의 뜻은 제자리에 있는다.
무서운 건 이게 어디서도 안 걸린다는 점이다. 조건식은 자기가 무엇을 묻고 있는지 스스로 말하지 않는다. 뜻을 정하는 건 옆에 있는 숫자들이고 그 숫자는 다른 파일에 사는 것. 그날 내가 만진 건 숫자 두 개고 조건식은 건드리지도 않았다. 에러도 안 나고 화면도 멀쩡하게 뜬다. 다만 일부 종목의 점수가 조용히 낮게 나올 뿐이고, 그 종목을 열어본 사람은 그게 원래 그 회사의 점수라고 읽는다.
돌아보면 오늘 한 일은 넣을 때 안 한 검증을 뺄 때 한 것이다. 넣는 쪽에는 문턱이 없었고 빼는 쪽에는 몇 달치 기록과 여러 번 다시 재본 결과가 있었다. 넣는 게 언제나 더 쉽다.