서류뚝딱 운영 중2026-09-17 기준
시즌 1 / EP.06 개발

잘 돌아가는 코드와 안전한 코드는 다릅니다

2026-09-21 · 시즌 1 · 21편 중 6
사라진 스타일시트2개 → 0개9/8 · 설정값이 빈 프로젝트에서
네이버 유입 비중71%8/4 GA 확인 · 집계는 첫 화면만
안 쓰는 PDF 라이브러리2개설치만 돼 있음 · 아직 그대로
공유 정보 상속 발견9/18글 쓰다 찾음 · 아직 안 고침

AI가 짠 코드는 대개 돌아갑니다. 버튼이 눌리고 파일이 받아지니 저도 매번 다음 기능으로 넘어갔습니다.

반년 동안 서류뚝딱에서 문제가 된 건 전부 그다음 단계였습니다. 평소엔 되는데, 값이 비거나 들어오는 길이 달라지면 무너지는 코드였습니다.

네 가지를 한 표로

사례겉으로 보이는 것실제로 일어난 일지금 상태
광고 스크립트 조건문정상 화면설정값이 비면 CSS가 통째로 사라짐9/8 수정·배포
네이버 방문 집계숫자가 들어옴처음 들어온 화면만 셈주소 바뀔 때마다 재호출로 수정
"PDF 다운로드" 버튼누르면 뭔가 열림파일이 아니라 브라우저 인쇄 창아직 그대로
링크 공유 정보공유하면 미리보기가 뜸지정 안 한 페이지는 홈 제목·주소찾았고 아직 안 고침

넷 다 에러 메시지가 없어서, 만드는 동안에는 보이지 않습니다.

값이 비면 CSS가 사라지는 머리 영역

광고 아이디가 있을 때만 스크립트를 넣는 흔한 조건문이었습니다. 아이디는 설정 파일에서 오는데, 항목이 비어 있으면 빈 문자열이 되고 그 빈 글자가 <head> 안에 그대로 찍힙니다.

단계일어나는 일
1설정값이 비어 조건 결과가 빈 문자열
2머리 영역에 텍스트가 끼어듦 — 화면 라이브러리가 금지하는 상태
3서버가 보낸 화면과 브라우저 화면이 어긋났다고 판단해 새로 그림
4그 과정에서 스타일시트 줄 2개가 함께 빠짐 → 글자만 남은 화면

서류뚝딱에선 이 화면이 한 번도 안 나왔습니다. 값이 채워져 있었을 뿐 코드가 안전했던 게 아닙니다. 같은 코드를 쓴 다른 프로젝트에서 값이 비어 있었고, 거기서 터진 날 서류뚝딱 쪽도 함께 고쳤습니다.

{adsenseClient ? (
  <script async src={...} crossOrigin="anonymous" />
) : null}

&& 대신 삼항으로 바꿔 값이 없으면 null만 남게 했습니다. 원인을 찾는 데 오래 걸린 건 CSS 파일 자체는 주소로 받아 보면 정상이었기 때문입니다. 브라우저 화면 안의 스타일시트 줄을 세서 0을 확인한 뒤에야 방향이 잡혔습니다.

첫 화면만 센 방문 집계

항목내용
붙인 이유방문의 71%가 네이버(8/4 확인)인데 네이버 검색어를 볼 도구가 없었음
붙인 코드네이버가 안내하는 기본 코드 그대로
어긋난 점기본 코드는 처음 들어올 때 한 번만 실행 — 링크를 눌러 부분만 바꿔 그리는 지금 구조에선 이후 이동을 안 셈
고친 방법주소가 바뀔 때마다 집계를 직접 한 번 더 호출
모르는 것언제부터 언제까지 빠졌는지는 기록이 없음

AI가 틀린 게 아니라, 옛날 방식 홈페이지 기준으로 맞는 코드를 다른 구조에 붙인 경우였습니다.

이름과 동작이 어긋난 채 남은 것

항목이름·겉모습실제상태
서식 화면 파란 버튼"PDF 다운로드"새 창 + 인쇄 창, "PDF로 저장"은 사용자가 고름아직 그대로
PDF 라이브러리 2개설치 목록에 있음코드 어디서도 안 부름 (4편에서 인쇄 방식으로 바꾼 흔적)아직 그대로
소개 페이지 등 공유 정보링크 미리보기 정상제목·주소가 홈 값 그대로9/18 발견, 안 고침
없는 주소404 응답, 화면도 안 깨짐정상
직접 확인 · 2026. 9. 18. 라이브 사이트 응답

공유 정보는 홈을 만들 때 한 번 들어가고, 새 페이지마다 따로 챙기지 않으면 조용히 물려받습니다. 서식 상세나 블로그 글처럼 직접 지정한 곳만 제대로 나왔습니다.

확인하는 도구도 틀립니다

하려던 확인쓴 방법실제로 센 것결과
CSS 안에 특정 글자가 몇 번 나오나grep -c그 글자가 나오는 줄 수한 줄로 압축된 배포용 CSS라 늘 1

멀쩡하다는 답을 받았지만 사실은 아무것도 확인하지 못한 상태였습니다. 버그보다 틀린 방법으로 확인하고 안심하는 쪽이 더 위험했습니다.

배포할 때마다 해 볼 것

  • 개발용 화면 말고 실제 배포와 같은 방식으로 빌드해서 열어 보기
  • 휴대폰 폭(400px)에서 가로로 넘치는 화면이 없는지 보기
  • 브라우저 안에서 스타일시트 줄이 2개인지, 머리 영역에 빈 글자가 없는지 세기
  • 사이트 지도에 있는 주소가 전부 200으로 열리는지
  • 원본 파일을 받아 크기가 원본과 같은지 대조
  • 검색 엔진 인증 파일, www 주소 넘김, 검색어 붙인 검색 화면이 열리는지
  • 확인 명령어가 내가 묻는 것을 정말 세는지 한 번 의심해 보기