AI에게 시키기

코드를 못 읽는 사람이 AI에게 버그를 설명하는 법

버그는 대개 내가 제일 먼저 발견합니다. 그런데 고치는 건 AI입니다. 그 사이를 잇는 게 제 일인데, 저는 한동안 그 일을 잘못하고 있었습니다.

  • AI 코딩
  • 비개발자
  • 버그 설명

저는 코드를 못 읽습니다. 그런데 프로그램이 이상해진 걸 제일 먼저 발견하는 사람은 항상 저입니다. 매일 그 화면을 보는 사람이 저니까요.

발견은 제가 하고, 고치는 건 AI가 합니다. 그 사이를 잇는 게 제 일입니다. 그런데 저는 한동안 그 일을 잘못하고 있었습니다.

저는 원인을 짚어서 말하고 있었습니다

어느 날 아침 대시보드에 종목이 하나도 안 떴습니다. 화면 위에는 NXT라고 적혀 있었습니다. 그 시간대에 조회하는 시장 이름입니다.

그래서 저는 “NXT 조회가 잘못됐구나” 하고 생각했고, 그 전제로 이야기를 시작했습니다.

그 전제가 하루를 날렸습니다.

문제는 제가 본 것이 아니라 추측한 것을 말했다는 겁니다. 제가 실제로 본 건 “종목이 안 뜬다”였고, “NXT 때문이다”는 제 짐작이었습니다. 그런데 말할 때 그 둘을 구분하지 않았습니다.

AI는 제 짐작을 검증할 대상이 아니라 전제로 받아들였습니다. 그래서 NXT 관련 설정을 바꿔가며 시험하기 시작했고, 저도 거기에 따라갔습니다. 진짜 원인은 전혀 다른 곳(인증이 만료된 것)에 있었는데, 우리 둘 다 그쪽은 쳐다보지도 않았습니다.

AI는 제 말을 의심하지 않습니다. 이게 사람 개발자와 다른 점이었습니다. 옆에 개발자가 있었다면 “그건 왜 그렇게 생각하세요?“라고 되물었을 텐데, AI는 그냥 제 가설 위에 집을 짓기 시작합니다.

본 것만 말했어야 했습니다

그날 제가 했어야 할 말은 이거였습니다. 원인은 빼고 관찰한 것만.

  1. 무엇을 하려고 했나 "아침 8시 반에 대시보드를 켰다"
  2. 무엇이 보일 거라고 기대했나 "거래대금 상위 종목이 20개쯤 떠야 한다"
  3. 실제로는 무엇이 보였나 "한 개도 없다. 에러 메시지도 없고 그냥 빈 화면이다"
  4. 언제부터, 어떤 조건에서 "어제까지는 됐다. 지금 다시 켜도 똑같다"
네 가지를 다 말하는 데 30초면 됩니다. 이 30초가 하루를 아낍니다.

3번과 4번이 특히 중요합니다.

“에러 메시지도 없다” 는 정보입니다. 저는 처음에 이걸 “말할 게 없다”로 여겼습니다. 아무것도 안 나왔으니까요. 그런데 에러가 안 났다는 사실 자체가 원인 후보를 크게 줄여줍니다.

“어제까지는 됐다” 도 마찬가지입니다. 어제와 오늘 사이에 무엇이 달라졌는지로 범위가 좁혀집니다. 실제로 제 버그 하나는 “오전 9시 50분을 걸쳐서 켜두면 재현된다”를 알아낸 순간 원인이 하나로 좁혀졌습니다. 그 조건을 찾기 전까지는 며칠 동안 “아까는 이상했는데 지금은 되네?“를 반복했습니다.

화면을 보여주는 게 열 줄보다 낫습니다

이 글을 쓰는 오늘도 같은 일이 있었습니다.

이 블로그의 디자인을 바꾸는 작업을 시켰습니다. 다 됐다는 답을 받고 사이트에 들어갔는데 아무것도 안 바뀌어 있었습니다.

예전의 저라면 “왜 안 바뀌었지? 배포가 안 됐나?” 하고 원인을 짚어서 물었을 겁니다. 그날은 그냥 화면을 캡처해서 보냈습니다. “디자인 변경이 하나도 없는데?” 한 줄과 함께요.

그 사진 한 장으로 즉시 드러났습니다. 제가 보고 있던 건 홈이 아니라 카테고리 페이지였습니다. 홈만 고쳐졌고 나머지 페이지는 그대로였던 겁니다.

말로 설명했으면 한참 걸렸을 겁니다. “어느 페이지를 보고 계세요?“부터 시작해서 몇 번을 주고받았겠죠. 사진에는 제가 설명할 생각조차 못 한 정보가 통째로 들어 있었습니다. 주소창, 화면 제목, 메뉴 위치 전부요.

말로 옮기려다 빠뜨리는 게 많습니다. 코드를 못 읽으니 무엇이 단서인지 제가 모르기 때문입니다. 사진은 그 판단을 안 해도 됩니다.

틀린 추측도 말해도 됩니다 — 표시만 하면

원인을 아예 말하지 말라는 뜻은 아닙니다. 매일 보는 사람의 감이 맞을 때도 많습니다.

다만 본 것과 짐작을 구분해서 말하면 됩니다.

종목이 하나도 안 뜬다. 에러는 없다. 어제까지 됐다. (추측인데) 화면에 NXT라고 떠 있어서 그것 때문인가 싶다.

괄호 한 줄 차이인데 결과가 다릅니다. 이렇게 말하면 AI가 그 가설을 확인 대상 목록의 하나로 다루지, 전제로 깔지 않습니다.

이건 제가 그날 이후에 정리한 것이지, 원래부터 이렇게 해온 건 아닙니다. 아직도 급할 때는 원인부터 말합니다.

남은 교훈

  1. 원인이 아니라 증상을 말한다. 원인을 짚는 건 상대가 할 일입니다.
  2. 네 가지를 말한다. 하려던 것, 기대한 것, 실제로 본 것, 언제부터·어떤 조건에서.
  3. “에러가 없다”도 정보다. 아무 일도 안 일어난 것 역시 관찰 결과입니다.
  4. 말보다 사진. 무엇이 단서인지 모를 때는 화면을 통째로 보내는 게 정확합니다.
  5. 추측은 추측이라고 표시한다. AI는 내 말을 의심하지 않습니다. 의심해야 할 부분은 내가 표시해줘야 합니다.

코드를 못 읽는 게 약점이라고 생각했는데, 이 부분에서는 별로 상관이 없었습니다. 버그를 설명하는 일은 코드를 읽는 능력이 아니라 관찰한 것을 정확히 옮기는 능력이었습니다. 그건 배울 수 있는 것이었습니다.

이 글은 개인 프로젝트의 개발 기록입니다. 투자 자문이나 종목 추천이 아니며, 글에 등장하는 종목명은 프로그램의 동작을 설명하기 위한 예시입니다. 투자 판단과 그 결과에 대한 책임은 투자자 본인에게 있습니다.