본문으로 건너뛰기
피드

프로그래밍을 모두에게 끔찍하게 만드는 방법 — AI를 최악의 컴퓨터 언어로 비판한 에세이

general 약 7분

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

  • 1

    좋은 컴퓨터 언어의 3대 원칙: 해석, 예측 가능성, 발견 가능성

  • 2

    AI는 발견 가능성은 뛰어나지만 예측 가능성에서 완전히 실패

  • 3

    ELIZA 효과: 사용자가 AI에 인간적 능력을 투사하는 인지적 위험

  • 4

    1981년 'The Last One'과 현재 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이 블라인드와 씨름하는" 워크플로우를 코드베이스에 자동화한 셈

ℹ️참고

> 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의 실수는 컴퓨터 언어를 만든 것이 아니라, 형편없이 만들고 사용자에 대한 공감이 없었던 것"

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

댓글

댓글

댓글을 불러오는 중...

general

뉴욕타임스·디애틀랜틱·USA투데이에 Wayback Machine 보존 허용을 요구하는 청원

Save the Archive 청원은 주요 언론사가 Internet Archive의 Wayback Machine 보존을 막지 말고 협력해야 한다고 요구함. 특히 뉴욕타임스, 디애틀랜틱, USA투데이가 AI 우려를 이유로 보존을 제한하는 흐름을 비판하면서, 오히려 생성형 AI 시대일수록 독립적인 웹 아카이브가 더 중요하다고 주장함.

general

검색과 인공지능이 만드는 ‘감시형 웹의 벽정원’

이 글은 오픈 웹이 사라지는 이유를 출판의 문제가 아니라 발견 가능성의 문제로 봐. 구글 검색, 브라우저, 광고, 운영체제, 인공지능 어시스턴트, 신원 확인 인프라가 합쳐지면서 측정되고 수익화되는 웹만 더 잘 보이게 된다는 주장이다.

general

이 대통령, AI ‘초과세수 국민배당’ 논란에 직접 반박

이재명 대통령이 김용범 정책실장의 ‘AI 국민배당금’ 발언을 둘러싼 논란에 직접 나섰다. 핵심은 기업의 초과이윤을 걷겠다는 얘기가 아니라, AI 산업 호황으로 국가에 초과세수가 생기면 그 재원을 국민에게 어떻게 돌려줄지 검토하자는 취지였다는 설명이다.

general

AI 데이터센터 붐에 캐터필러·이튼까지 반도체주처럼 움직이는 중

AI 투자 열풍이 엔비디아 같은 반도체주를 넘어 전력, 냉각, 발전 장비를 파는 전통 산업재 기업 주가까지 끌어올리고 있다는 내용이다. 데이터센터 증설이 물리 인프라 수요를 키우면서 S&P500 산업재 지수와 필라델피아 반도체지수의 45일 상관계수가 0.75까지 올라갔다.

general

시니어 개발자가 자기 전문성을 제대로 설명하지 못하는 이유

이 글은 시니어 개발자가 비즈니스와 자주 어긋나는 이유를 ‘복잡성 관리’와 ‘불확실성 감소’의 충돌로 설명한다. 사업팀은 시장 반응을 빨리 확인하고 싶어 하고, 시니어 개발자는 안정성과 유지보수성을 지키려 하니 같은 요청도 서로 다른 문제로 보인다는 얘기다.