---
title: "프로그래밍을 모두에게 끔찍하게 만드는 방법 — AI를 최악의 컴퓨터 언어로 비판한 에세이"
published: 2026-03-27T20:35:26.000Z
canonical: https://jeff.news/article/1328
---
# 프로그래밍을 모두에게 끔찍하게 만드는 방법 — AI를 최악의 컴퓨터 언어로 비판한 에세이

AI를 컴퓨터 언어 설계의 관점에서 비판한 에세이. 해석, 예측 가능성, 발견 가능성이라는 세 가지 설계 원칙으로 AI 프로그래밍 도구를 평가하며, 예측 가능성에서의 완전한 실패를 지적함.

## Quine Programmer에서 시작하는 질문

- 저자가 The Daily WTF(아직도 운영 중이라고 놀람)에서 영감을 받아 던지는 근본적 질문: **"아무거나 할 수 있는 시스템"과 Python의 차이가 뭔가?**
- "Quine Programmer"란 충분한 설정만 주면 뭐든 할 수 있는 시스템을 만든 사람을 말함. 그런데 프로그래밍 언어도 충분한 코드만 주면 뭐든 할 수 있잖음. 그럼 이 둘의 차이는 뭔가?
- Excel이 프로그래밍 언어인가? Scratch는? nginx.conf는? `find` 명령어의 커맨드라인 플래그는? 저자는 이 모든 것이 넓은 의미에서 프로그래밍의 일종이라고 봄

## 컴퓨터 언어의 세 가지 설계 원칙

- 저자가 제시하는 "컴퓨터 언어"의 정의: **"의미 있는 입력의 복잡성에 한계가 없는 컴퓨터 프로그램"** — 설정 파일, 마크업, 스타일 언어, 비텍스트 언어까지 포함하는 정의임
- 좋은 컴퓨터 언어의 3대 설계 목표:
  1. **해석(Interpretation)**: 유효한 입력은 처리하고 무효한 입력은 거부해야 함
  2. **예측 가능성(Predictability)**: 사용자가 컴퓨터가 입력을 어떻게 해석할지 이해할 수 있어야 함
  3. **발견 가능성(Discoverability)**: 사용자가 시스템 안에서 새로운 목표를 표현하는 방법을 알 수 있어야 함
- Quine Programmer는 해석은 자랑하지만, 예측 가능성은 생각도 안 했고("구현 자체가 멘탈 모델이지"), 발견 가능성도 무시함("코드 읽으면 되잖아!"). 그리고 에러 메시지라는 핵심 발견 도구도 놓침

## AI를 이 잣대로 평가하면

- AI는 **발견 가능성에서는 뛰어남**. 자연어로 소통하니까 진입 장벽이 극도로 낮음. 뭐든 설명해줄 의향이 있음 (사실 정확성은 제쳐두고)
- 하지만 **무효한 입력 거부를 못 함**. 유효/무효 입력의 구분 자체가 있는지도 의문임
- 가장 치명적인 실패는 **예측 가능성** — 데이터셋의 규모 때문에 사용자가 동작에 대한 멘탈 모델을 구성하는 게 원천적으로 불가능함. "Peter Griffin이 블라인드와 씨름하는" 워크플로우를 코드베이스에 자동화한 셈

> [!NOTE]
> Dijkstra가 주장했듯이, 논리적/기술적 작업에 형식 기호를 사용하는 것은 역사적으로 중대한 돌파구였음. 자연어의 모호성, 지역적 표현, 자기 부정, 문맥 의존성은 해석 과정을 극도로 오류에 취약하게 만듦

## ELIZA 효과 — 사용자는 AI에 능력을 투사한다

- 1960년대 ELIZA 챗봇 창시자 Weizenbaum의 분석: 사용자가 시스템을 이해할 수 없으면, **자기 자신의 사고 능력을 유일한 비유로 가져다 붙임**. "고양이가 내가 전등을 켜고 끄는 걸 보고 마법이라 생각하는 것"과 같은 원리
- 이건 순진한 비서만의 문제가 아님 — 전문 정신과 의사들이 ELIZA를 "정신의학의 미래"라고 선언했고, 칼 세이건까지 "컴퓨터 터미널로 치료받는 장밋빛 미래"를 제시했음
- 저자 본인도 2014-2017년에 자기 트윗으로 학습된 트위터 봇(@jneebooks)을 운영했는데, 고등학교 친구가 봇과 대화하면서 저자 본인인 줄 알았고, **봇이라고 말해도 안 믿었음**
- 현대 AI는 이 의인화 경향이 중립적이지 않음. **적극적인 인지적 위험(cognitohazard)**임. 최근에 Meta AI 전문가가 공개적으로 OpenClaw에게 "이메일 지우지 마"라고 꾸짖었는데 — 컴퓨터가 수치심을 느끼고 행동을 교정할 거라고 가정한 거임

## 튜닝된 노이즈로서의 AI와 그 한계

- 셰이더 프로그래밍에서 노이즈를 예술적으로 쓰려면 **노이즈의 분포와 행동을 이해하는 것이 핵심**임. 예측 가능성이 노이즈 활용의 전제 조건이라는 거임
- AI/LLM 모델은 본질적으로 **튜닝된 노이즈**의 한 형태임. Andrej Karpathy도 "GPT는 입력 토큰을 다음 토큰의 확률 분포로 매핑하는 큰 수학 함수"라고 설명함
- 노이즈를 **출력에** 쓰는 건 정당한 활용임 (예: 이미지 생성, 텍스트 생성 등). 하지만 **인터페이스에** 노이즈를 넣는 건 다른 문제 — 입력 복잡성이 무한한 컴퓨터 언어에서 이미 자연스러운 불확실성이 충분한데, 행동이 잘 이해되지 않는 새로운 불확실성 소스를 추가하는 건 창작 통제의 불필요한 포기임

## 결론: AI 프로그래밍의 운명은 The Last One과 비슷할 것

- 1981년에도 "The Last One"이라는 Quine 시스템이 "프로그래밍의 종말"이라는 찬사를 받았음. "적응 못 하는 데이터 프로세싱 종사자는 일자리를 잃을 것"이라는 기사까지 나왔는데, 실제로는 끔찍한 시스템이었음
- Claude 등 자연어 기반 프로그래밍 도구는 "The Last One의 실패가 기술적 한계 때문이었고, 하드웨어가 좋아지면 해결된다"는 전제 위에 서 있음. 하지만 **문제는 인터페이스에 있음** — 기술 발전이 사용자를 얼마나 empowering하는지가 핵심인데, 그 부분이 빠져있다는 거임
- 저자의 전망: 프로그래밍 도구가 불안정하고, 멘탈 모델링을 완전히 거부하고, 무효한 입력을 일관되게 거부하지 못하면 **목적에 부적합한 것이고, 확실히 프로그래밍의 미래는 아님**
- 하지만 프로그래밍 기술 자체는 AI 겨울을 살아남을 것이고, AI가 만든 혼란을 치우는 일거리가 꽤 있을 거라고 봄
- 마지막 조언: "올해 새로운 전통적 프로그래밍 언어를 배워봐라. 아니면 직접 만들어봐라. Quine Programmer의 실수는 컴퓨터 언어를 만든 것이 아니라, 형편없이 만들고 사용자에 대한 공감이 없었던 것"

## 핵심 포인트

- 좋은 컴퓨터 언어의 3대 원칙: 해석, 예측 가능성, 발견 가능성
- AI는 발견 가능성은 뛰어나지만 예측 가능성에서 완전히 실패
- ELIZA 효과: 사용자가 AI에 인간적 능력을 투사하는 인지적 위험
- 1981년 'The Last One'과 현재 AI 프로그래밍 도구의 유사성 지적

## 인사이트

AI를 프로그래밍 도구가 아니라 '형편없이 설계된 컴퓨터 언어'로 프레이밍하는 시각이 참신함. 특히 '노이즈는 출력에 쓰면 괜찮지만 인터페이스에 넣으면 문제'라는 구분이 날카로움.
