AI 초안 83편의 코드 블록 124개, 언어 표시는 0개였고 폰에서는 줄 수가 1.8배가 된다
AI 초안으로 시작한 글 83편에는 코드 블록이 124개 들어 있습니다. 명령어, 설정 파일, PHP 필터, 로그 출력이 섞여 있고, 글을 다듬을 때 문장은 여러 번 고쳤지만 코드 블록은 “AI가 준 대로” 두는 경우가 대부분이었습니다. 이번에 그 124개를 전부 꺼내 줄 수, 글자 수, 종류, 앞뒤 문맥, 그리고 실제 화면에서 몇 줄로 보이는지를 쟀습니다. 결과는 세 가지로 요약됩니다. 언어 표시가 붙은 블록은 0개였고, 주석이 있는 블록은 8개뿐이었으며, 폰 화면 기준으로 계산하면 줄 수가 원본의 1.76배로 늘어나 블록 절반 이상이 두 배 넘게 길어집니다. 코드가 잘못됐다는 뜻이 아닙니다. AI가 만든 코드 블록은 “코드”로는 대체로 맞는데, “글 속의 코드”로는 손이 덜 갔다는 이야기입니다.
124개 중 100개가 한 사이트에 있다
대상은 워드프레스 블로그 37편과 AI 블로그 46편, 본문 403,304자입니다. 코드 블록(<pre>)은 워드프레스 쪽에 100개, AI 쪽에 24개로 4배 차이가 납니다. 주제가 다르니 당연한 결과지만, AI 쪽 24개 중 13개가 글 한 편(Codex 서브에이전트 설정)에 몰려 있어 실제로는 46편 중 38편에 코드 블록이 없습니다.
| 구분 | 글 | 코드 블록 | 글당 | 인라인 코드 | 글당 |
|---|---|---|---|---|---|
| 워드프레스 블로그 | 37 | 100 | 2.70 | 521 | 14.1 |
| AI 블로그 | 46 | 24 | 0.52 | 191 | 4.2 |
| 합계 | 83 | 124 | 1.49 | 712 | 8.6 |
글당 분포는 0개가 48편(57.8%), 1개 9편, 2~3개 12편, 4개 이상 14편이고 최대는 13개입니다. 인라인 코드(문장 안의 <code>)는 712개로 블록보다 훨씬 많은데, 이것도 0개인 글이 27편입니다. 코드가 있는 글과 없는 글이 반반으로 갈리고, 있는 글에는 몰려 있습니다.
블록 하나는 평균 4.3줄, 128자
| 줄 수 | 블록 | 비율 |
|---|---|---|
| 1줄 | 38 | 30.6% |
| 2~5줄 | 63 | 50.8% |
| 6~15줄 | 17 | 13.7% |
| 16줄 이상 | 6 | 4.8% |
줄 수 중앙값은 3줄, 글자 수 중앙값은 90자입니다. 가장 긴 블록은 33줄 751자(번역 함수 하나)이고, 124개를 다 합쳐도 15,860자로 본문의 3.9%입니다. 열에 여덟은 다섯 줄 안에 끝나는 짧은 조각이고, 그중 38개는 한 줄짜리입니다. 한 줄짜리는 대부분 wp core verify-checksums 같은 명령 하나이거나 파일 경로 하나입니다.
종류를 나눠 보면
블록 내용을 첫 줄과 패턴으로 분류했습니다. 판정이 기계적이라 경계가 흐린 것은 ‘기타’로 남겼습니다.
| 종류 | 블록 | 비율 | 예 |
|---|---|---|---|
| PHP | 24 | 19.4% | add_filter( 'show_admin_bar', '__return_false' ); |
| 셸 명령 | 23 | 18.5% | find wp-content/uploads -name "*.php" | wc -l |
| 설정 파일 | 15 | 12.1% | pm = dynamic, SetOutputFilter DEFLATE |
| CSS·JSON·SQL·JS | 11 | 8.9% | SELECT option_name, LENGTH(option_value) |
| 로그·출력 | 2 | 1.6% | [31-Oct-2025 08:59:17] PHP Fatal error |
| 기타(경로 목록, 표 대용, 의사코드 등) | 49 | 39.5% | /wp-content/debug.log |
‘기타’가 39.5%나 되는 것이 첫 번째 발견입니다. 열어 보면 코드가 아닌 것이 많습니다. 파일 경로 한 줄, HTTP 응답 헤더 몇 줄, “페이지 요청 → 캐시 확인 → 응답”처럼 화살표로 그린 흐름, 심지어 상한 = (전체 메모리 − 상주 사용량 − 여유분) / Worker 평균 같은 계산식도 코드 블록 안에 있습니다. AI 초안은 고정폭으로 보여 주고 싶은 것을 전부 코드 블록에 넣는 습관이 있고, 다듬는 쪽도 그걸 그대로 뒀습니다.
언어 표시 0개, 주석 8개
124개 블록의 태그를 보면 <pre>만 78개, <pre class="wp-block-code">가 46개이고, language-php처럼 언어를 밝힌 클래스는 하나도 없습니다. 구문 강조 플러그인을 쓰지 않으니 화면에는 차이가 없지만, 코드를 복사해 가는 독자나 검색엔진, 그리고 나중에 강조 기능을 붙일 때를 위한 정보가 통째로 빠져 있습니다. 편집기에서 블록을 만들면 언어를 고를 수 있는데, 완성된 HTML을 통째로 넣는 방식으로 발행하다 보니 그 단계가 없었습니다. 이 발행 방식이 남긴 흔적은 본문 전체가 블록 하나였던 69편에서 다뤘습니다.
주석(#, //, /* */)이 든 블록은 8개(6.5%)입니다. 24개 PHP 블록 중 주석이 있는 것은 2개뿐이고, 셸 명령 23개는 전부 주석 없이 명령만 있습니다. 대신 설명은 블록 바로 앞 문단이 맡습니다. 124개 중 122개가 문단 바로 뒤에 오고, 그 문단은 114개가 마침표로 끝납니다. 콜론(:)으로 끝내고 코드를 잇는 영어권 문서 습관은 한 번도 안 나왔습니다. 블록 다음도 문단이 113개이고, 소제목으로 바로 넘어가는 것이 10개입니다. 코드 뒤에 “이 코드는 ~합니다”가 거의 항상 따라옵니다.
코드 안의 한글 39개
블록 39개(31.5%)에 한글이 들어 있습니다. 나눠 보면 이렇습니다.
| 한글의 역할 | 블록 | 예 |
|---|---|---|
| 문자열·자리표시자 | 21 | '/home/계정명/logs/wp-debug.log', https://내도메인/ |
| 출력 결과·표 대용 | 14 | default : 943회, 않을 수 있습니다 28 |
| 주석 | 4 | /* 워드프레스 본문 글자 크기 및 줄 간격 조정 */ |
자리표시자 21개가 문제입니다. 계정명, 내도메인, 사이트명을 그대로 복사해 붙이면 당연히 안 돕니다. 영어권 관습인 example.com, your-domain은 23개 블록에서 쓰였는데, 한글 자리표시자는 그것과 달리 코드처럼 보이지 않아서 오히려 눈에 띄고, 그래서 바꿔야 한다는 것은 알 수 있습니다. 문제는 일관성입니다. 같은 뜻을 한 글에서는 example.com으로, 다른 글에서는 내도메인으로 썼습니다.
폰에서는 줄 수가 1.76배가 된다
이 테마는 코드 블록을 white-space: pre-wrap으로 그립니다. 가로로 스크롤되는 대신 화면 폭에서 줄이 접힙니다. 코드는 접히면 뜻이 달라 보입니다. 명령 한 줄이 두 줄이 되면 독자는 두 명령으로 읽습니다. 그래서 실제로 몇 줄로 보이는지 계산했습니다.
계산 조건은 이렇습니다. 글꼴 15px 고정폭(글자 폭 0.6em = 9px), PC는 본문 폭 842px에서 양쪽 여백과 블록 안쪽 여백을 뺀 733px이라 한 줄에 81자, 폰은 360px 화면에서 같은 여백을 빼면 219px이라 한 줄에 24자입니다. 실측이 아니라 CSS 값으로 계산한 추정치이고, 폰 기종과 글꼴에 따라 두세 자 차이가 납니다.
| 구분 | 원본 줄 | PC 표시 줄 | 폰 표시 줄 |
|---|---|---|---|
| 워드프레스 블로그 100개 | 428 | 435 | 733 |
| AI 블로그 24개 | 101 | 106 | 198 |
| 합계 124개 | 529 | 541 (1.02배) | 931 (1.76배) |

- 원본 529줄 중 24자를 넘는 줄이 272줄(51.4%)입니다. 81자를 넘는 줄은 12줄뿐이라 PC에서는 거의 안 접힙니다.
- 24자 넘는 줄이 하나라도 있는 블록이 101개(81.5%)입니다.
- 폰에서 줄 수가 두 배 이상 되는 블록이 67개(54.0%)입니다. 한 줄짜리 블록 38개 중 30개가 폰에서 두 줄 이상이 됩니다.
- 가장 많이 늘어나는 블록은 15줄이 33줄이 됩니다.
가장 긴 줄의 중앙값은 46자입니다. PC에서 한 줄에 넉넉히 들어가고, 폰에서는 딱 두 줄로 접히는 길이입니다. AI가 만든 명령줄은 옵션을 한 줄에 다 붙이는 경향이 있어서(wp user list --role=administrator --fields=ID,user_login,user_registered) 이 길이가 자연스럽게 나옵니다. PC 화면에서 쓰고 PC 화면에서 검수했으니 접히는 것을 본 적이 없었습니다.
인라인 코드 712개는 어디에 썼나
문장 안의 <code>는 712개, 종류로는 450가지이고 한 번만 나온 것이 319가지입니다. 길이는 평균 11.7자, 중앙값 10자입니다.
| 내용 | 개수 | 비율 |
|---|---|---|
| 단어 하나 (옵션명, 훅 이름 등) | 322 | 45.2% |
| 파일·경로 | 138 | 19.4% |
| 띄어쓰기 있는 구절 | 83 | 11.7% |
| 스네이크 표기 식별자 | 70 | 9.8% |
| 한글 포함 | 31 | 4.4% |
| HTML 태그·상수·플래그·함수·숫자 | 68 | 9.6% |
가장 많이 나온 것은 functions.php 21회, .htaccess 16회, wp-config.php 14회입니다. 워드프레스 글에서 손대는 파일 세 개가 그대로 순위입니다. 한글이 든 인라인 코드 31개 중 12개는 관리 화면 메뉴 경로(설정 → 일반, 사용자 > 프로필)이고 9개는 어미를 인용한 것(수 있습니다)입니다. 둘 다 코드가 아닌데 구분 서식이 필요해서 코드 서식을 빌린 자리입니다. 이것도 AI 초안의 습관이고, 대안(굵게 또는 따옴표)을 정하지 않아서 그대로 남았습니다. 설정 파일 블록의 실제 예는 VS Code Remote-SSH 접속 때 CPU가 폭주하는 이유에 있는 18줄짜리 JSON이 대표적인데, 이 글의 블록 세 개도 전부 언어 표시가 없고 폰에서는 18줄이 35줄이 됩니다.
정한 것
124개를 소급해서 고치지는 않습니다. 언어 클래스를 붙이는 일은 기계적으로 할 수 있지만, 분류의 39.5%가 ‘기타’인 상태에서 자동으로 붙이면 틀린 표시가 생깁니다. 대신 다음 글부터 지킬 것을 정했습니다.
- 코드 블록에는 코드만 넣습니다. 경로 하나, 계산식, 흐름 화살표는 인라인 코드나 표로 옮깁니다.
- 명령줄은 24자 기준으로 접히는 자리를 정해
로 줄을 나눕니다. 접히는 위치를 AI가 아니라 사람이 정합니다. - 자리표시자는
example.com계열로 통일하고 한글 자리표시자는 쓰지 않습니다. - 언어 클래스는 붙일 수 있는 블록(PHP, 셸, SQL, CSS, JSON)에만 붙이고 나머지는 비워 둡니다.
- 관리 화면 메뉴 경로는 코드 서식 대신 굵게 씁니다.
측정은 두 사이트의 발행 글 83편 본문에서 <pre>와 <code>를 정규식으로 뽑아 PHP로 집계했고, 화면 줄 수는 테마 CSS의 폭·여백·글꼴 값으로 계산했습니다.