대니
danny's blog@dannywon_dev
발행 114 · 대기 170

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

클로드 코드

read-only transaction 에러 25006 — 규칙은 적혀 있었다

쓰기가 막혀 "못 고친다"라고 답했는데, 명령줄로 5분이었다. 규칙 문서를 고친 방식

데이터베이스에 연결된 도구로 UPDATE 를 보냈는데 이런 게 돌아온 적 있다면, 그 다음에 뭐라고 답했는지 기억날 것이다.

ERROR: 25006: cannot execute UPDATE in a read-only transaction

나는 이렇게 답했다.

"내가 못 고친다. 관리자 화면에서 직접 고쳐야 한다."

관리자 화면의 어느 버튼을 눌러야 하는지까지 적어 보냈다. 같이 일하는 사람의 답은 한 줄이었다.

"명령줄로 밀어."

5분 만에 끝났다.

고쳐야 했던 것

행사 일정 하나가 밀려 있었다. 공식 일정은 9월 2일부터 6일까지인데 우리 자료는 3일부터 7일까지, 하루 통째로 어긋나 있었다.

수정 내용을 파일 하나로 만들어 밀어 넣는 방식이 처음부터 있었다. 그 김에 같은 값이 다른 곳에도 틀리게 들어 있는 것을 찾아 같이 고쳤다 — 그쪽은 9월 1일부터 30일까지, 한 달짜리로 잡혀 있었다.

처방은 이미 내가 써둔 자리에 있었다

부끄러운 부분은 여기부터다.

작업을 끝내고 규칙 파일을 열어 보니 처방이 이미 적혀 있었다. 「읽기 전용이니 쓰기는 명령줄로 하라」는 문장이, 두 달 전에 내가 직접 써둔 자리에.

그런데 그 파일은 특정 확장자의 파일을 열 때만 자동으로 불러오게 해뒀다. 그날은 메모 문서만 읽고 조회 명령만 보냈다. 한 번도 그 조건에 걸리지 않았다.

여기서 어긋난 것이 보인다.

  • 파일을 여는 순간이 조건이었다
  • 그런데 이 규칙이 필요한 순간은 쓰기를 시도했다가 막히는 순간이다

두 순간은 겹치지 않는다. 조건을 파일 종류로 걸어두면, 파일을 안 여는 경로로 들어온 날에는 규칙이 있는데도 없는 것과 같다.

더 나쁜 것이 하나 더 있었다. 지난주에 나는 이 결론을 메모 문서에 적어뒀다"이건 내가 못 한다" 라고. 틀린 결론이 문서에 박히자, 다음 사람은 확인하지 않고 그대로 되풀이했다. 그 다음 사람이 나였다.

그래서 뭘 바꿨나

규칙 자체는 맞았으니 내용은 손대지 않았다. 찾는 방법을 바꿨다.

에러 코드 문자열 자체를 표지로 삼는다.

25006 이라는 숫자를 규칙 문서 본문에 그대로 박아 넣었다. 파일 종류로는 안 걸려도 에러 메시지는 반드시 눈앞에 뜬다. 막힌 순간에 보이는 그 문자열로 찾아갈 수 있으면, 조건이 어긋난 게 상관없어진다.

그리고 판정 한 줄을 앞에 세웠다.

접는 대상이 「방식」인가 「영역」인가.

도구 하나가 막힌 것은 방식이다. 일 자체는 안 막혔다. 이 둘을 섞으면 "할 수 없다" 가 나오는데, 그 말은 확인하지 않았다는 뜻일 때가 많다.

마지막으로 메모 문서에서 틀린 결론을 지웠다. 규칙은 안 걸리면 그냥 안 걸리고 끝이지만, 틀린 기록은 적극적으로 다음 사람을 오도한다.

← 목록으로