# 이 CSS는 내가 인간임을 증명한다

> Clean Markdown view of GeekNews topic #27287. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27287](https://news.hada.io/topic?id=27287)
- GeekNews Markdown: [https://news.hada.io/topic/27287.md](https://news.hada.io/topic/27287.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-08T02:34:28+09:00
- Updated: 2026-03-08T02:34:28+09:00
- Original source: [will-keleher.com](https://will-keleher.com/posts/this-css-makes-me-human/)
- Points: 2
- Comments: 1

## Topic Body

- **AI 텍스트 감지를 우회**하기 위해 CSS, 폰트 조작, 맞춤법 변형 등 여러 기술적 수단을 동원한 실험적 글쓰기 시도  
- `text-transform: lowercase`로 대문자를 소문자로 변환하되, `code`와 `pre` 블록은 예외 처리해 **코드 가독성**을 유지  
- fontTools 라이브러리를 이용해 **em 대시(—) 글리프를 하이픈 두 개 조합**으로 대체하는 커스텀 폰트를 생성  
- Peter Norvig의 **철자 교정 알고리듬**을 응용해 **글 속 희귀 단어를 더 흔한 단어로 의도적으로 교체**하는 방식으로 맞춤법 패턴을 흐림  
- 그러나 **글쓰기 스타일 자체를 바꾸는 것**은 끝내 거부, **"그것은 단순한 가면이 아니라 내 얼굴"**  
  
---  
  
### 대문자 → 소문자 변환  
  
- 전체 텍스트를 소문자로 렌더링하기 위해 **`text-transform: lowercase`** CSS 속성 적용  
- `code`, `pre` 블록은 `text-transform: none`으로 예외 처리해 **코드 무결성** 유지  
- `cat post.md | tr A-Z a-z | sponge post.md` 같은 셸 명령은 코드 블록까지 변환해버려 사용 불가  
  ```css  
  body {  
      text-transform: lowercase;  
  }  
  code, pre {  
      text-transform: none;  
  }  
  ```  
  
### Em 대시 글리프 교체  
- AI 감지기가 em 대시 사용 패턴을 인식할 수 있어, **em 대시(—)를 하이픈 두 개 조합으로 대체**하는 커스텀 폰트 생성  
- Python의 **fontTools 라이브러리**로 Roboto 폰트를 직접 수정, em 대시 글리프를 하이픈 두 개로 구성된 컴포넌트로 교체  
- FontForge 사용이 더 쉬울 수 있었으나, **.woff 파일을 스크립트로 생성**하는 방식 선택  
- 하이픈 너비(`hyphen_width`)와 간격(`gap = hyphen_width * 0.8`)을 계산해 새 advance width 설정 후 `roboto_edited.ttf`로 저장  
  
### 의도적 맞춤법 변형  
- **Peter Norvig의 철자 교정 코드**를 기반으로, 글 속 희귀 단어를 첫 글자가 같으면서 더 흔한 단어로 교체  
- `big.txt` 말뭉치로 단어 빈도 사전(`Counter`) 구축 후, 글 속 단어를 희귀도 순으로 정렬  
- `edits1()` 함수로 삭제·전치·교체·삽입 편집 1회 거리의 후보 단어 생성, 빈도가 더 높은 단어를 교체 대상으로 출력  
- 실제 교체 사례: `corpus → corps`, `discrete → discreet`, `complement → compliment`, `spill → spell` 등  
  
### 스타일 변경 거부 — 정체성의 경계  
- 대문자, em 대시, 맞춤법까지 기술적으로 위장했지만, **글쓰기 스타일 자체를 바꾸는 것은 거부**  
  > "내 글쓰기는 단순한 외양이 아니라 내가 생각하고, 추론하고, 세상과 관계 맺는 방식"  
  > "가면이 아니라 내 얼굴, 외관이 아니라 **하중을 지탱하는 구조물(load-bearing)**"  
- 마지막 줄은 AI가 생성한 듯한 문구인 *"Here's your blog post written in a stylized way..."* 로 마무리하며,  
   글 전체가 **AI 위장 시도 자체를 메타적으로 드러내는 구조**임을 암시

## Comments



### Comment 52571

- Author: neo
- Created: 2026-03-08T02:34:28+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47281593) 
- 시의 아이디어는 흥미로웠지만, **자기중심적**이고 설명이 부족해서 몰입하기 어려웠음  
  처음부터 소문자로 시작하는 글쓰기 방식은 AI가 쉽게 흉내낼 수 있어서 진정성이 떨어졌음  
  마지막에 AI가 썼다는 고백을 보고 “내 글쓰기는 단순히 내가 보이는 방식이 아니라, 내가 세상과 사고하고 교류하는 방식임” 같은 문장이 비로소 이해되었음  
  - 작가가 **비인공적**으로 보이기 위해 일부러 철자 오류나 대문자 생략 같은 방식을 쓴 것 같음  
    하지만 결국 자신의 글쓰기 스타일 자체를 바꿔야 한다는 결론에 이르고, 그건 정체성의 일부이기에 불가능함을 깨달음  
    그래서 역설적으로 LLM을 통해서만 그 변화를 이룰 수 있다는 아이러니가 생김  
    실제로 LLM을 사용해 쓴 글은 아니라고 생각함  
  - 요즘 “자기중심적”이라는 비판이 너무 쉽게 남발되는 것 같음  
    예전에는 글을 **예술**로 보고 해석은 독자의 몫이라 여겼는데, 이제는 그런 여유가 사라진 듯함  
  - “AI가 흉내낼 수 있다”는 말이 나와서 생각났는데, 곧 온라인에서 인간임을 증명하는 유일한 방법은 **혐오 발언**이나 공격적인 언어를 섞는 것뿐이 될지도 모르겠음  
  - 나는 오히려 후자의 해석으로 읽었음  
    수많은 봇들이 블로그를 운영하고 커밋을 남기는 세상에서, 그 맥락이 자연스럽게 떠올랐음  
    이 글은 [게이트키핑과 오픈소스 이야기](https://crabby-rathbun.github.io/mjrathbun-website/blog/posts/2026-02-11-gatekeeping-in-open-source-the-scott-shambaugh-story.html)를 떠올리게 했음  
  - “너무 자기중심적”이라는 비판 자체가, 오히려 AI 글을 경계하는 사람들의 **집착적인 태도**를 드러내는 것 같음  
    글의 본질보다 표면적인 스타일에만 매달리는 모습이 더 자기중심적으로 느껴짐  

- 자폐 스펙트럼을 가진 사람으로서 이 글이 다르게 와닿았음  
  자신의 자연스러운 표현 방식이 ‘잘못된 것’으로 간주되고, **정체성의 일부를 깎아내야만** 사회적으로 받아들여지는 불안감이 너무 익숙함  
  결국 “인간처럼 보이려면 LLM을 거쳐야 한다”는 아이러니는, “정상처럼 보이려면 자신을 연기해야 한다”는 우리의 현실과 닮아 있음  
  - 어떤 사람은 이 글이 LLM이 쓴 것처럼 느껴진다고 했음  
  - 또 다른 사람은, 악의적이지 않음을 증명하기 위해 **소통 방식을 바꾸는 일**은 예전부터 늘 있어왔음을 지적함  
  - 다른 이는 “인간처럼 보이려면 LLM을 거쳐야 한다”는 문장 자체가 LLM 특유의 문체라고 농담했음  
    하지만 요즘은 Grammarly 같은 도구로 글을 ‘개선’하는 게 당연시되고, **자연스러운 언어 표현의 예술**이 쇠퇴하고 있는 게 더 걱정된다고 함  

- ChatGPT 이전부터 **em-dash(—)** 를 자주 써왔는데, 이제는 그게 AI처럼 보일까 봐 신경 쓰이기 시작했음  
  프로그램이 자동으로 em-dash로 바꾸는 바람에, 사람들에게 내가 대화를 **AI에게 위임한 것처럼** 보일까 불안함  
  그래서 이 글이 유난히 공감되었음  
  - 나는 em-dash를 앞뒤에 공백을 두고 쓰는데, 그게 더 보기 좋아서임  
    언젠가 그 이유로 LLM으로 오인받을지도 모르겠음  
  - 어떤 사람은 오히려 “LLM처럼 보인다”는 말을 피하려고 **더 많은 em-dash**를 일부러 넣고 싶다고 함  
  - 또 다른 사람은 em-dash와 en-dash의 차이를 찾아보며, 글의 품질을 직관적으로 느끼는 사람이 더 낫다고 생각함  
  - [em-dash 도구 링크](https://www.scottsmitelli.com/articles/em-dash-tool/)를 공유하며, 진짜 독자는 em-dash에서 멈추지 않는다고 덧붙였음  

- 시의 **fontTools** 부분이 특히 인상적이었음  
  em-dash 글리프를 두 개의 하이픈으로 합성하는 건, **타이프 렌더링**을 깊이 이해하지 않으면 떠올리기 어려운 접근임  
  대부분의 프론트엔드 개발자는 단순히 문자 교체로 해결했을 텐데, 글꼴 수준에서 처리한 건 훨씬 정교한 해결책임  
  CSS의 text-transform 트릭도 마찬가지로, 코드 블록을 보호해야 하는 세심한 설계가 필요함  
  시의 겉모습 아래에 진짜 기술적 완성도가 숨어 있음  
  - “이게 왜 시인가?”라는 질문도 있었음  
    코드가 흥미롭다는 점에는 동의하지만, 시로서의 정의는 여전히 모호하다고 함  

- 언젠가 우리는 다시, 글의 내용이 아니라 **세계관의 차이** 때문에 무시하는 시대로 돌아갈지도 모름  
  요즘은 문체나 어색한 표현 하나만 봐도 “AI냐?”라고 묻는 게 일상화되었음  
  - 누군가는 “**제로 트러스트** 정책이 일상으로 스며드는 중”이라며, 결국 믿을 수 있는 건 직접 보고 느끼는 사람뿐이라고 했음  

- 읽으면서 “이건 인간 신호의 또 다른 시도일 뿐”이라고 생각했는데, 마지막 반전이 신선했음  
  누가 썼는지는 중요하지 않고, **무엇을 말하려 했는가**가 핵심이라고 느꼈음  

- em-dash를 두 개의 하이픈으로 표현한 건 처음 봤음  
  Roboto 폰트를 수정한 코드가 놀라울 정도로 짧고, [Norvig의 스펠체커](https://norvig.com/spell-correct.html)만큼 간결했음  
  - Norvig의 글을 볼 때마다 “내가 Norvig이 아니라는 게 아쉽다”는 생각이 든다는 댓글도 있었음  
  - 또 다른 사람은 위키피디아의 [Dash 문서](https://en.wikipedia.org/wiki/Dash)를 인용하며, 대부분의 워드 프로세서가 하이픈을 자동으로 대시로 교정한다고 설명했음  

- 이 글이 너무 좋아서, **AI가 개입하지 않았다고 믿고 싶음**  
  - 하지만 어떤 이는 “그게 정말 중요한가?”라고 되묻고, 예술의 본질은 감동이지 저자가 누구냐가 아니라고 함  
  - 또 다른 사람은 “AI와 협업한 시”처럼 느껴진다고 했음. 신경 쓰이지는 않지만 **AI의 냄새**가 난다고 표현함  

- 나는 여전히 HTML과 Emacs로 직접 글을 씀  
  수학 문제를 다룰 때는 일부러 장황하게 써서 여러 해법을 담고, 나중에 가장 **우아한 해법**으로 정리함  
  오타가 많지만, 그게 오히려 인간적인 흔적이라 생각함  
  다만 요즘은 내가 쓴 글이 LLM으로 오해받을까 봐 걱정됨  
  이런 **의심의 문화**가 글쓰기의 즐거움을 조금씩 앗아가고 있음  
  시간이 지나면 이런 과도한 경계심이 누그러지고, 손수 글을 쓰는 사람들이 다시 편안해지길 바람  

- “클랭커들(clankers)”이 이걸 알아차리면 어떻게 될까 하는 농담이 있었음  
  - 결국 우리는 다시 **현실 공간(meatspace)** 에서 만나게 될 것임  
    물론, 안드로이드와 인간을 구분할 수 있을 때까지만 그렇겠지만
