[개발 일지] 한 군데를 고쳤는데 그대로였다: 같은 값을 정하는 자리 세기

같은 설정값이 세 곳에 적혀 있는 파일 목록
한 군데를 지웠는데도 값이 그대로면 정의가 더 있습니다.
먼저 결론

한 군데를 고쳤는데 그대로였습니다. 같은 값을 정하는 자리가 세 군데였습니다.

글 서식을 바꾸려고 스타일을 하나 넣었는데 화면에서는 적용되지 않았습니다. 원인을 찾아보니 바탕이 되는 서식 파일이 같은 항목을 강제로 정하고 있었습니다. 그 한 줄을 지웠는데도 결과는 같았습니다. 같은 항목이 그 파일 안에서만 세 군데에 있었기 때문입니다. 나중에 넣은 값이 계속 덮이고 있었습니다. 비슷한 일이 글 변환에서도 있었습니다. 마크다운 강조 표시를 옮기는 함수를 만들어 두고 본문에만 적용해서, 요약과 질문 답변 자리에는 별표가 그대로 남아 발행됐습니다. 한 번 고친 뒤에도 다른 자리에서 같은 문제가 또 나왔습니다. 두 경우 모두 원인은 하나였습니다. 같은 일을 하는 자리가 몇 군데인지 세어 보지 않았습니다.

같은 설정값이 세 곳에 적혀 있는 파일 목록 설명 이미지

고쳤는데 그대로일 때는 정의가 더 있다

값을 바꿨는데 화면이 그대로면 보통 저장이 안 됐다고 생각합니다. 그래서 저장을 다시 하고, 새로 고치고, 캐시를 지웁니다.

그런데 이번처럼 같은 항목을 정하는 자리가 여러 곳이면 저장은 매번 정상적으로 됩니다. 다만 다른 자리가 그것을 덮습니다.

이 경우에는 저장을 몇 번 다시 해도 결과가 같습니다. 확인해야 할 것은 저장 여부가 아니라 정의의 개수입니다.

그래서 순서를 바꿨습니다. 값이 안 바뀌면 먼저 그 항목 이름을 파일 전체에서 검색해 몇 번 나오는지 셉니다.

증상먼저 의심한 것실제 원인
값이 안 바뀜저장 실패다른 자리가 덮어씀
한 곳을 지워도 그대로캐시같은 정의가 더 있음
일부 자리만 바뀜적용 지연변환을 일부에만 걸었음

세 군데가 같은 값을 정하고 있었다

바탕 서식 파일 안에서 같은 항목이 세 번 나왔습니다. 위쪽에 한 번, 조건이 붙은 구역에 한 번, 아래쪽 정리 구역에 한 번입니다.

세 자리는 각각 다른 시점에 추가된 것으로 보였습니다. 앞선 문제를 급히 막으려고 덧붙인 흔적입니다.

결국 나중에 적힌 것이 이깁니다. 그래서 위쪽 한 자리를 지운 것만으로는 아무 변화가 없었습니다.

세 자리를 모두 찾아 정리하고 한 곳에서만 정하도록 바꾼 뒤에야 새 값이 적용됐습니다.

변환 함수는 만들었는데 절반에만 걸었다

글을 저장할 때 강조 표시를 서식으로 바꾸는 함수를 만들었습니다. 별표 두 개로 감싼 부분을 굵은 글씨로 바꾸는 일입니다.

그런데 이 함수를 본문 문단에만 적용했습니다. 글 맨 위의 요약과 아래쪽 질문 답변은 다른 경로로 만들어지고 있었고, 그쪽에는 걸리지 않았습니다.

그래서 발행된 글에는 본문은 멀쩡한데 요약에만 별표가 그대로 보이는 상태가 됐습니다.

한 번 고친 뒤에도 같은 문제가 또 나왔습니다. 이번에는 표 안의 칸이었습니다. 글을 이루는 자리가 생각보다 많았고, 새로 만든 자리에는 매번 다시 걸어 줘야 했습니다.

표 안의 칸을 놓친 이유도 같았습니다. 표는 본문과 다른 함수로 만들어지고 있었고, 그 함수는 글자를 그대로 넣고 있었습니다. 자리를 목록으로 적어 두지 않으면 이런 자리는 계속 늦게 발견됩니다.

같은 일을 하는 자리를 먼저 센다

두 사건에서 얻은 것은 같습니다. 고치기 전에 개수를 세는 것입니다.

스타일이면 그 항목 이름이 파일에 몇 번 나오는지 셉니다. 변환이면 글 안에 글자가 들어가는 자리가 몇 군데인지 셉니다.

그리고 고친 뒤에 다시 셉니다. 예상한 만큼 줄었는지 확인합니다. 하나 지웠는데 개수가 그대로면 잘못된 자리를 지운 것입니다.

세는 데는 몇 초가 걸리고, 세지 않으면 같은 확인을 여러 번 반복하게 됩니다.

대상세는 방법고친 뒤 확인
서식 항목파일 전체에서 항목 이름 검색검색 결과가 한 건만 남았는지
변환 함수글자가 들어가는 자리를 목록으로 적기목록의 모든 자리에 걸렸는지
표와 목록표 칸과 목록 항목도 자리에 포함표 안에 원본 표시가 남았는지
같은 값을 정하는 자리 세기 정리 이미지

출력 직전에 한 번 더 검사한다

자리마다 함수를 거는 방식은 새 자리가 생길 때마다 빠집니다. 그래서 마지막에 검사 하나를 더 넣었습니다.

글을 내보내기 직전에 완성된 결과 전체에서 변환되지 않은 표시가 남아 있는지 찾습니다. 별표 두 개가 남아 있으면 내보내지 않고 멈춥니다.

이 검사는 어느 자리에서 빠졌는지는 알려 주지 않습니다. 다만 빠진 채로 나가는 것은 막습니다.

자리를 빠짐없이 챙기는 일과, 빠졌을 때 나가지 못하게 막는 일은 따로 필요합니다.

정리하면 두 가지를 본다

값이 안 바뀌면 정의의 개수를 봅니다. 일부만 바뀌면 적용한 자리의 개수를 봅니다.

둘 다 개수 문제입니다. 원인을 짐작하는 것보다 세는 편이 빠르고 확실합니다.

그리고 고쳤다는 판단은 다시 세어 본 뒤에 합니다. 한 번 고친 자리에서 같은 문제가 다시 나오는 것은, 대개 고쳤다는 판단을 세지 않고 내렸기 때문입니다.

그리고 고친 내용은 한 곳에만 적습니다. 같은 값을 여러 자리에서 정하게 된 것도 처음에는 급한 문제를 각자 막다가 생긴 일이었습니다. 임시로 덧붙인 자리는 그때 바로 지워야 나중에 세 군데가 되지 않습니다.

  • 값이 안 바뀐다: 같은 항목의 정의를 전부 검색해 센다
  • 일부만 바뀐다: 적용해야 할 자리를 목록으로 적고 대조한다
  • 내보내기 직전에 원본 표시가 남았는지 한 번 더 검사한다

자주 묻는 질문

Q. 한 군데를 고쳤는데 왜 그대로인가요?

A. 같은 항목을 정하는 자리가 더 있을 수 있습니다. 이번에는 바탕 서식 파일 안에서만 세 군데가 같은 항목을 정하고 있었고, 나중에 적힌 것이 앞의 것을 덮고 있었습니다.

Q. 변환이 일부에만 적용되는 문제는 어떻게 막나요?

A. 글자가 들어가는 자리를 목록으로 적어 대조하고, 내보내기 직전에 변환되지 않은 원본 표시가 남아 있는지 한 번 더 검사합니다. 남아 있으면 내보내지 않습니다.

Q. 매번 개수를 세는 게 번거롭지 않나요?

A. 검색 한 번이면 끝납니다. 세지 않으면 같은 확인을 여러 번 하게 되고, 이번처럼 잘못된 자리를 지운 채 다음 단계로 넘어가게 됩니다.

확인 자료

  • 본 블로그 운영 중 2026-09-09에 직접 겪은 사례 기록

이 글은 직접 겪은 작업 기록을 정리한 것입니다. 확인하지 못한 항목은 본문에 쓰지 않았습니다. 대표 이미지는 이해를 돕기 위한 참고용 이미지입니다.