글쓴이: 작두뉴스 운영자 / 기록일: 2026년 8월 20일
여러 기사에 새 카드를 붙이는 수정 작업이 세 편을 처리한 뒤 멈췄다. 처음 세 편은 정상이라 서버나 권한 문제처럼 보이지 않았다. 로그에는 찾으려던 제목과 실제 제목이 일치하지 않는다는 내용이 남아 있었다.
대상 목록을 만들 때 사람이 읽기 쉬운 제목을 기준으로 삼았다. 그런데 목록에 적은 제목 하나와 관리자에 저장된 제목 사이에 글자 하나가 달랐다. 뜻은 거의 같았지만 엄격한 비교에서는 서로 다른 문자열이었다. 네 번째 글을 찾지 못하자 안전을 위해 전체 작업이 중단됐다.
중단 자체는 나쁜 결과가 아니었다. 찾지 못한 글을 건너뛰고 계속했다면 완성 수량만 보고 누락을 알아차리지 못했을 수 있다. 더 위험한 경우에는 비슷한 제목의 다른 글을 잘못 고를 수도 있다. 대량 수정은 애매할 때 멈추는 편이 낫다.
먼저 관리자 자료에서 실제 제목과 슬러그, 글 번호를 다시 읽었다. 수정 목록의 제목을 바로잡고, 이미 처리된 세 편에 카드가 중복으로 붙지 않는지 확인했다. 같은 작업을 처음부터 다시 실행했지만 이미 카드가 있는 글은 건너뛰도록 되어 있어 중복은 생기지 않았다.
여기서 중요한 것은 재실행 안전성이었다. 일괄 작업은 중간에 한 번도 실패하지 않는다는 가정보다, 실패 뒤 다시 실행해도 결과가 망가지지 않도록 만드는 편이 현실적이다. 네 번째에서 멈췄다면 첫 세 편을 기억해 수동으로 제외할 필요 없이 전체 목록을 다시 돌릴 수 있어야 한다.
제목은 운영 중 바뀔 수 있다. 맞춤법을 고치거나 독자가 이해하기 쉽게 다듬으면 문자열이 달라진다. 반면 글 번호는 데이터베이스에서 고유하고, 슬러그도 주소로 사용되는 동안 비교적 안정적이다. 그래서 작업 대상을 찾을 때는 글 번호를 첫 기준으로, 슬러그를 두 번째 기준으로 쓰는 것이 안전하다.
제목은 검증용으로 남길 수 있다. 글 번호로 찾은 자료의 현재 제목이 예상 제목과 다르면 경고를 내고 사람이 확인한다. 이렇게 하면 안정적인 식별과 사람이 읽는 확인을 함께 할 수 있다. 제목만으로 찾는 것보다 오류 원인을 이해하기도 쉽다.
대량 수정 전에는 대상 전체를 먼저 조회하는 단계도 필요하다. 실제 변경을 시작하기 전에 모든 글 번호와 슬러그가 한 건씩만 존재하는지 확인한다. 하나라도 없거나 둘 이상이면 아무 글도 바꾸지 않고 목록부터 고친다. 절반만 바뀐 상태를 줄이는 방법이다.
수정 뒤에는 요청 수와 처리 수가 같은지만 보지 않았다. 새로 바뀐 수, 이미 같은 상태여서 건너뛴 수, 찾지 못한 수를 나눠 셌다. 세 숫자의 합이 전체 대상 수와 맞아야 했다. 처리 완료라는 한 줄만으로는 중복과 누락을 구분할 수 없다.
이 문제는 파일 이름을 다룰 때도 비슷하다. 사람이 보기 좋은 이름은 띄어쓰기나 문장 부호가 바뀔 수 있다. 자동 작업에는 고정된 식별자를 쓰고, 표시 이름은 확인용 자료로 두는 편이 좋다.
오늘은 제목 한 글자 때문에 작업이 멈췄지만, 그 덕분에 대상 선택 방식의 약점을 확인했다. 엄격한 검사는 귀찮은 장애물이 아니라 잘못된 글을 건드리지 않게 한 안전장치였다. 다만 안전장치가 반복 작업을 더 어렵게 만들지 않도록 재실행 방식도 함께 준비해야 했다.
다음부터는 대량 수정 전에 네 가지를 확인한다. 글 번호와 슬러그가 모두 있는지, 중복 식별자가 없는지, 현재 제목이 예상과 맞는지, 이미 처리된 글을 다시 만나면 건너뛰는지다. 이 검사를 통과한 뒤에만 실제 본문을 바꾼다.
사람에게는 같은 글처럼 보이는 제목도 컴퓨터에는 다른 값이다. 반대로 컴퓨터가 같은 번호라고 판단해도 사람이 제목을 보고 이상을 알아챌 수 있다. 둘 중 하나만 믿기보다 고정 식별자로 찾고 제목으로 다시 읽는 방식이 작두뉴스의 대량 작업에는 가장 안전했다.
댓글 0