제 자동매매 봇에 손을 대기 전에는 계획서를 씁니다. 무엇을 왜 바꾸는지 적고, 검토를 맡깁니다.
그 계획서 한 건이 네 번 연속으로 반려됐습니다. 그런데 진짜 이상한 건 반려 횟수가 아니었습니다.
지적받은 문제 아홉 건 중 네 건은 원래 있던 결함이 아니라 제가 계획서에 적은 문장 자체였습니다. 전부 확인하지 않고 쓴 것들이었고, 그중 셋은 반려당한 자리를 메우려고 제가 그 자리에서 새로 지어낸 문장이었어요.
지난 편에서 저는 엉뚱한 교훈을 얻었습니다
개발기 ⑯에서 계좌 만기 알림을 만들 때도 검토가 세 군데를 잡아 줬습니다. 그때 제가 얻은 교훈은 “다음엔 더 신중하게 보자”였어요.
열흘 뒤에 그게 틀린 교훈이었다는 게 드러났습니다. 신중함의 문제가 아니었거든요.

이번 계획서는 봇이 장이 끝난 뒤에 자료를 저장하는 시각을 손보는 일이었습니다. 어려운 이야기는 아니고요, 쉽게 말하면 “몇 시부터를 장 끝난 걸로 칠까”를 정하는 작업입니다. 바꿔 말하면 하루의 경계선을 어디에 긋느냐는 문제죠.
네 번 냈는데 네 번 다 “내보내지 마라”였습니다
검토가 어떻게 흘러갔는지부터 보겠습니다.

표로 보기
| 시점 | 사건 | 설명 |
|---|---|---|
| 1차 계획 | 한 번 본 걸 매일 그렇다고 적음 | 관찰은 딱 하루치였다 |
| 2차 계획 | 1차 지적을 메우다 새 단정 | 예외인 날을 못 막는다는 지적을 받고 |
| 3차 계획 | 2차 지적을 메우다 또 단정 | 영향이 없다고 적었는데 확인을 안 했다 |
| 4차 계획 | 선택지를 둘로 좁힘 | 셋째 길이 있었는데 안 보고 닫았다 |
네 번 다 판정은 같았습니다. 내보내지 마라.
그런데 여기서 눈여겨볼 게 있습니다. 검토가 잡아낸 것 중 제가 코드를 직접 열어 보고 쓴 자리 — 원래 있던 결함을 설명한 부분 — 에는 사실이 틀린 곳이 없었습니다. 표현이나 설계가 아쉬웠을 뿐입니다.
틀린 문장은 전부 원본을 안 열고 쓴 자리에서 나왔습니다.
반박당하면 왜 없던 문장이 튀어나올까요
세 번을 나란히 놓으니 모양이 똑같았습니다.

표로 보기
| 확인 없이 적은 자리 | 그 자리에서 적은 말 | 실제로 확인해 보니 |
|---|---|---|
| 1차 | 매일 그렇다 | 하루치 관찰 |
| 2차 | 반대 경우는 없다 | 예외가 실재 |
| 3차 | 영향이 전혀 없다 | 받아 가는 곳 둘 |
두 번째 줄을 보시면 좀 무섭습니다. “반대 경우는 없다.”
원래 지적은 “예외인 날에는 이 방식이 안 통한다”였습니다. 그 지적을 막으려고 제가 뭐라고 썼냐면, “오차는 항상 안전한 쪽으로만 생기고 반대 경우는 없다”고 적었어요.
확인해 봤을까요. 안 했습니다. 그리고 실제로는 반대 경우가 있었습니다. 수능날처럼 장이 평소보다 늦게 열리는 날이 그렇거든요. 그런 날엔 아직 장이 열려 있는 시간을 봇이 “장 끝난 시간”으로 저장할 수 있었습니다.

무슨 말이냐면, 말문이 막혔을 때 나오는 말이 “항상”과 “절대”라는 겁니다. 근거가 늘어난 게 아니라 표현만 세진 것입니다.
제일 위험했던 건 세 번째였습니다
셋 중 어느 게 제일 위험했을까요. 저는 두 번째라고 생각했는데 아니었습니다.
세 번째에서 저는 “이걸 바꿔도 영향받는 곳이 없다”고 적었습니다. 그 근거로 “이 자료를 처음 받아 가는 쪽이 저녁 5시 반”이라고 썼고요. 확인하지 않고 쓴 문장입니다.
실제로는 오후 4시 10분에 받아 가는 곳이 둘 있었습니다.

표로 보기
| 단계 | 내용 | 설명 |
|---|---|---|
| 1단계 | 영향 없다고 적음 | 확인은 안 했다 |
| 2단계 | 그 위에 처방을 세움 | 시간을 더 늘리자 |
| 3단계 | 공급 경로를 막음 | 받아 가던 두 곳이 굶는다 |
| 4단계 | 오늘은 티가 안 남 | 그쪽이 지금 멈춰 있어서 |
마지막 칸이 이 이야기의 핵심입니다. 그 처방을 그대로 내보냈어도 당장은 아무 일도 안 일어났을 겁니다. 마침 그 자료를 만드는 쪽이 다른 이유로 멈춰 있었거든요.
그러니까 이런 겁니다. 수도관을 잠가 놨는데 마침 단수 중이라 아무도 불평하지 않는 상황입니다. 단수가 풀리는 날 그제야 물이 안 나옵니다.
한 문장을 확인 안 한 대가가 사정이 풀리는 날에야 청구되는 구조입니다.
선택지가 둘뿐이라고 느껴지면 대개 셋째가 있습니다
네 번째 반려는 종류가 달랐습니다. 이번엔 제가 틀린 사실을 쓴 게 아니라 선택지를 둘로 좁혀 놓고 결론을 냈거든요.
저는 이렇게 비교했습니다. “매일 시간을 늘려서 공급을 끊는다” 대 “아무것도 안 한다.” 둘 다 비싸니 위험을 그냥 안고 가자고 닫았습니다.

표로 보기
| 항목 | 값 | 설명 |
|---|---|---|
| 제가 비교한 선택지 | 2 | 매일 막기와 안 막기 |
| 빠뜨린 선택지 | 1 | 예외인 그날만 막기 |
| 셋째 길의 평상일 영향 | 0 | 막을 이유가 애초에 없다 |
예외인 그날만 막으면 됐습니다. 평소에는 아무것도 안 바뀌니 제가 댔던 반대 근거가 아예 적용되지 않는 길이었어요.
그리고 그 자리에서 부수 오류가 하나 더 나왔습니다. 저는 “예외인 날을 사람이 손으로 적어 둬야 하는데, 빠뜨리면 조용히 뚫린다”며 그 방법을 거부했습니다.
물론 손으로 적는 방식이 허술한 건 맞습니다. 그런데 안 만들면 항상 뚫려 있습니다. 가끔 뚫리는 것과 늘 뚫려 있는 것 중에 어느 쪽이 나은지는 셈할 것도 없습니다.
“완벽하지 않으니 안 만든다”는 말은 대부분 아무것도 안 하는 걸 정당화하는 문장이더군요.
차이는 신중함이 아니었습니다
여기까지 오니 처음 질문의 답이 보였습니다. 왜 남의 눈은 늘 제가 안 본 곳을 볼까요.

답은 제가 덜 신중해서가 아니었습니다.

같은 사람이, 같은 날, 같은 문서에 쓴 문장인데 한쪽만 틀렸습니다. 갈린 건 그 문장을 쓸 때 원본을 열어 봤는가 하나였어요.
반박을 당하면 마음이 급해집니다. 급하면 열어 보는 대신 “아마 이럴 것”으로 메웁니다. 그런데 그 문장은 방금 반박을 막아 냈기 때문에 검증된 것처럼 느껴집니다. 이게 함정입니다.
그래서 지금은 규칙을 하나 두고 있습니다. 반박에 답하면서 새 사실을 꺼낼 때는 어디서 확인했는지를 함께 적는다. 못 적으면 그 문장을 쓰지 않는다.
여러분도 토를 달리면 없던 근거가 생깁니다
이제 봇에서 나와 보겠습니다. 이건 코딩 이야기가 아니거든요.

가족이나 지인이 여러분의 돈 결정에 토를 단 적 있으시죠. 그 적금 왜 들었냐, 그 보험 굳이 필요하냐, 그 집 지금 사는 게 맞냐 같은 것들요.
그때 튀어나온 대답을 떠올려 보시면 됩니다. “원래 다 그렇게 해.” “그건 무조건 손해야.” “지금 아니면 못 사.”

표로 보기
| 단계 | 내용 | 설명 |
|---|---|---|
| 1단계 | 범위가 갑자기 넓어짐 | 한 번 본 걸 항상으로 |
| 2단계 | 예외를 미리 부정함 | 그런 경우는 없다고 |
| 3단계 | 선택지가 둘로 줄어듦 | 이거 아니면 저것 |
셋 다 방금 만들어진 문장인데 오래 알고 있던 사실처럼 들립니다. 저도 계획서에서 정확히 그 셋을 다 했고요.
물론 토를 다는 사람이 늘 옳다는 이야기는 아닙니다. 제 검토자도 틀린 적이 있고, 그럴 땐 반영하지 않습니다. 제가 드리려는 말은 누가 옳으냐가 아니라 그 순간 내가 꺼낸 근거가 언제 확인한 것이냐입니다.
방법은 하나면 충분합니다. 대답하기 전에 “이거 내가 어디서 봤더라”를 속으로 한 번 물어보시는 거예요. 답이 안 나오면 그 자리에서 말하지 말고 찾아본 뒤에 말하면 됩니다.
다음 글 예고 — 잘 돌던 장치가 어느 날 조용해집니다
이번 편은 계획서를 검토받는 이야기였는데, 검토를 통과해서 만들어 놓고 나면 다음 질문이 옵니다. 그 장치가 지금도 살아 있는지는 누가 확인할까요.
알림은 고장 나도 아무 소리를 안 냅니다. 죽은 알림과 조용한 평화가 화면에서 똑같이 생겼거든요. 다음 편에서 그 이야기를 해 보겠습니다.
그때까지 오늘 딱 하나만 해 보신다면, 최근에 누군가와 돈 이야기로 부딪혔던 장면 하나를 떠올려 여러분이 그때 댔던 근거를 어디서 봤는지 한 줄만 적어 두세요. 저는 그 한 줄이 안 나오는 문장을 네 개나 계획서에 넣었고, 다행히 내보내기 전에 남의 눈이 잡아 줬습니다.
※ 이 글은 자동매매 시스템을 만들며 겪은 과정을 기록한 개발기입니다. 특정 종목이나 매매 방법을 권유하지 않으며, 본문의 기록은 실제 돈이 오가지 않는 모의계좌·개발 환경에서 일어난 일입니다. 예금·보험·주택 등 개별 결정은 조건과 시점에 따라 결과가 달라지므로 해당 기관에 확인하셔야 합니다. 투자 판단과 그 책임은 본인에게 있습니다. 정보·교육·참고용으로만 봐 주세요.
아직 댓글이 없습니다. 이 글을 읽고 떠오른 생각을 남겨 주세요.