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 응답, 화면도 안 깨짐 | 정상 |
공유 정보는 홈을 만들 때 한 번 들어가고, 새 페이지마다 따로 챙기지 않으면 조용히 물려받습니다. 서식 상세나 블로그 글처럼 직접 지정한 곳만 제대로 나왔습니다.
확인하는 도구도 틀립니다
| 하려던 확인 | 쓴 방법 | 실제로 센 것 | 결과 |
|---|---|---|---|
| CSS 안에 특정 글자가 몇 번 나오나 | grep -c | 그 글자가 나오는 줄 수 | 한 줄로 압축된 배포용 CSS라 늘 1 |
멀쩡하다는 답을 받았지만 사실은 아무것도 확인하지 못한 상태였습니다. 버그보다 틀린 방법으로 확인하고 안심하는 쪽이 더 위험했습니다.
배포할 때마다 해 볼 것
- 개발용 화면 말고 실제 배포와 같은 방식으로 빌드해서 열어 보기
- 휴대폰 폭(400px)에서 가로로 넘치는 화면이 없는지 보기
- 브라우저 안에서 스타일시트 줄이 2개인지, 머리 영역에 빈 글자가 없는지 세기
- 사이트 지도에 있는 주소가 전부 200으로 열리는지
- 원본 파일을 받아 크기가 원본과 같은지 대조
- 검색 엔진 인증 파일, www 주소 넘김, 검색어 붙인 검색 화면이 열리는지
- 확인 명령어가 내가 묻는 것을 정말 세는지 한 번 의심해 보기
다음 편 · 09-22 공개 예정EP.07 · 관리자 도구