카드 명세가 들어오면 시스템이 지출 항목을 붙인다. 틀린 건 실무자가 고친다. 그 고친 걸 시스템이 배워서 다음부터 알아서 붙이면, 손이 점점 덜 간다. 여기까지가 처음 그림이었다.
첫 설계는 이랬다. 실무자가 고치면 그게 규칙 후보로 쌓이고, 나중에 후보 목록을 열어 승인하면 규칙이 된다.
숫자를 넣어보니 이상했다. 100건을 고치면 규칙 후보가 30개쯤 생긴다. 그러면 100건을 본 다음에 30개를 또 봐야 한다.
검수가 안 준다. 줄이려고 만든 건데 일이 하나 더 붙었다. 이러면 자동화라고 부를 이유가 없다.
그래서 순서를 뒤집었다. 사람이 규칙을 만들고 시스템이 적용하는 게 아니라, 사람은 고르기만 하고 규칙은 시스템이 만든다. 고치는 행위 자체가 규칙 등록이 되게 하는 것이다.
바로 규칙으로 만들면 위험한 경우가 있다. 실무자가 고치는 이유가 두 갈래이기 때문이다.
하나는 "이번 건만 예외"다. 평소엔 복리후생비로 처리하는 회식이 이번엔 접대비인 경우. 다른 하나는 "앞으로 이건 다 이렇게"다. 앞엣것을 규칙으로 만들면 다음 달 회식까지 접대비가 된다.
그래서 버튼을 갈랐다. 인라인으로 고치면 그 건만 바뀌고, 규칙으로 만들려면 별도 버튼을 누른다. 그리고 규칙 버튼을 같은 가맹점에 세 번 누르면 네 번째부터 시스템이 알아서 붙게 했다.
세 번을 둔 이유는 단순하다. 한 번은 실수일 수 있다. 세 번이면 실수가 아니다.
만들어서 올리고 열흘쯤 지나서 봤다.
자동으로 붙은 게 하나도 없었다. 규칙이 아예 만들어지지 않았다.
기록을 열어보니 실무자가 규칙 버튼을 안 누른 게 아니었다. 여러 번 눌렀다. 그런데 카운트가 전부 1에서 멈춰 있었다.
같은 카페 체인인데 지점 이름이 붙어 있었다. 한 지점에서 한 번, 다른 지점에서 한 번. 사람이 보면 둘 다 같은 카페고 같은 항목으로 처리할 게 뻔하다. 시스템은 가맹점 이름을 통째로 놓고 세고 있었으니 둘을 남남으로 봤다.
각자 하나씩 세다가 끝난다. 셋에 영원히 못 닿는다.
이게 특이한 상황이 아니라는 게 문제였다. 카드 명세에 찍히는 가맹점 이름은 원래 지점 단위다. 체인점에서 결제하면 거의 항상 이렇게 된다. 즉 자주 가는 곳일수록 학습이 안 되는 구조였다.
묶는 방법이야 있었다. 지점 이름을 떼고 앞부분만 보고 세면 된다. 그런데 그러면 이름이 비슷한 다른 가게까지 같이 묶인다. 앞부분이 몇 글자냐를 정하는 순간, 그 숫자가 틀리는 경우를 계속 만나게 된다.
대표님한테 물었다. 판단은 묶지 말자는 쪽이었다. 같은 체인이라도 지점이 다르면 다른 가게로 친다. 하나의 가맹점 이름에 하나의 규칙을 붙인다.
그러면 세 번을 세는 장치는 의미가 없어진다. 각 가맹점은 어차피 따로 세어질 테니까. 그래서 세는 걸 통째로 없앴다. 실무자가 규칙 버튼을 한 번 누르면 그 자리에서 규칙이 된다.
세는 걸 없앴다는 건 틀린 규칙이 바로 들어올 수 있다는 뜻이다. 처음에 세 번을 뒀던 이유가 그거였으니까.
여기서 방향을 바꿨다. 잘못 들어오는 걸 막는 대신, 잘못 들어와도 싸게 되돌릴 수 있게 만들었다.
거래를 세 등급으로 나눴다. 확실한 건 자동으로 통과시키고 개수만 보여준다. 애매한 건 한 화면에 모아서 한 번에 승인한다. 못 맞춘 것만 실무자가 개별로 본다. 실무자는 사실상 마지막 것만 본다.
그리고 신고를 확정하기 전까지는 자동으로 붙은 것도 한 번에 되돌릴 수 있게 했다. 되돌리면 같은 패턴이 한꺼번에 다시 분류되고 그 규칙은 꺼진다.
되돌리는 비용이 싸니까 자동 적용을 과감하게 할 수 있다. 반대로 되돌리기가 비싸면 임계를 높이게 되고, 임계가 높으면 아무것도 안 배운다. 처음에 세 번을 뒀던 건 사실 이 준비가 안 돼 있어서였다.
세 번이라는 숫자를 정할 때 나는 학습의 문제를 풀고 있다고 생각했다. 몇 번이면 믿을 만한가.
실제 문제는 다른 데 있었다. 무엇과 무엇을 같은 것으로 볼 것인가. 그게 안 정해진 상태에서 횟수만 정해두니, 아무리 세도 하나에서 멈췄다.
기계에게 뭔가를 가르칠 때 사람은 대개 "몇 번 보여주면 알아들을까"를 먼저 생각한다. 그런데 그 앞에 질문이 하나 더 있다. 내가 같다고 생각하는 두 가지를 기계도 같다고 보는가. 거기가 어긋나 있으면 횟수는 아무 의미가 없다.
기다리는 동안 아무것도 안 배웠다. 한 번을 믿었으면 열흘 치를 배웠을 것이다.