컴파일러는 절대 풍자를 쓰지 않는다: AI가 신경다양성 코더에게 불안하게 느껴지는 이유
Source: Dev.to
저는 45년 동안 코드를 작성해 왔습니다. 저는 메모리가 바이트 단위로 셀 정도였고, 버그가 거의 문자 그대로였던 시절에 시작했습니다.
40년이 넘는 시간 동안 저는 Assembly에서 C, Java, Python으로 언어가 진화하는 모습을 지켜봤습니다. 하지만 매 번 반복되는 한 가지 근본적인 진실은 변하지 않았습니다: 기계는 문자 그대로였습니다. 제가 컴퓨터에게 \$X\$를 하라고 했는데 \$Y\$를 수행했다면, 그것은 제가 명령을 잘못 입력했기 때문이지, 컴퓨터가 제 어조를 오해했거나, 제 태도를 싫어했거나, 기분이 안 좋았기 때문이 아닙니다.
신경다양성(Neurodivergent)인 사람에게 프로그래밍은 단순한 직업 그 이상이었습니다—그것은 안식처였습니다.
블랙 박스 문제
우리는 신경망을 종종 “블랙 박스” 라고 부릅니다. 왜냐하면 그들이 어떻게 답을 도출하는지 진정으로 알지 못하기 때문이죠. 아이러니하게도, 일반적인 인간의 사고 역시 우리에게는 블랙 박스입니다.
우리는 투명한 박스였던 컴퓨터에 몰려들었습니다. 레지스터를 보고, 실행 스택을 추적하고, 변수들을 검사할 수 있었으니까요.
명시적인 코드를 자연어 모델로 대체함으로써, 우리는 본질적으로 신경전형 뇌를 모방하는 기계를 만든 셈입니다: 그것은 맥락에 의존하고, 함축 rather than 진술, 그리고 자신 있게 틀리면서도 충분히 자주 틀려서 당신 스스로의 정상성을 의심하게 만듭니다.
Source: …
구문 성역
왜 이 변화가 그렇게 충격적인지 이해하려면 Theory of Mind를 살펴봐야 합니다.
심리학에서 Theory of Mind는 자신과 타인에게 정신 상태—신념, 의도, 욕구, 감정—를 귀속시키는 능력입니다. 즉, 내 머리 속에 있는 것이 당신 머리 속에 있는 것과 다르다는 것을 이해하는 능력입니다.
많은 신경다양성(Neurodivergent) 사람들에게 이것은 지치고 마찰이 많은 과정입니다. 저녁 파티에 참석하려면 사회적 신호, 암시, 숨은 의도를 실시간으로 끊임없이 계산해야 합니다.
- 동료에게 “우리는 술 마시러 나갈 거야”라고 말하면 그것은 암묵적인 초대인가, 단순히 정보를 전달하는 건가?
- 그것이 단순히 정보라면 당신이 “좋아, 가자”라고 말하는 것은 무례하고 건방진 행동이 됩니다.
- 초대였는데 당신이 “음, 괜찮네”라고 말한다면 당신은 비우호적인 태도를 보인 것입니다.
코딩은 전혀 Theory of Mind가 필요하지 않습니다.
컴파일러는 숨은 의도가 없습니다. “마음”이 있어 이론을 세울 수도 없습니다. 순수하고 순수한 논리만으로 작동합니다.
| 인간 상호작용 | 컴퓨터 상호작용 |
|---|---|
| “괜찮아.” (의미: 행복, 화, 피곤, 혹은 꺼져) | return 0; (의미: 함수가 성공적으로 종료됨) |
45년 동안 IDE(통합 개발 환경)는 사회적 교류 규칙이 중단된 안전한 공간이었습니다. 피드백은 가혹했지만 정직했습니다. 구문 오류는 당신의 인성을 판단하는 것이 아니라, 세미콜론이 빠졌다는 사실을 알려주는 진술일 뿐입니다.
나는 “세미콜론이 빠진 걸 알면 왜 그냥 넣어 주지 않나요?”라고 생각했던 것이 기억납니다.
답은 당연히, 컴파일러는 Theory of Mind가 없었고 내가 원하는 것이 무엇인지 “알지” 못했기 때문이었습니다.
모호함의 침공
인공지능이 등장한다.
우리는 “영어가 가장 뜨거운 새로운 프로그래밍 언어다” 라는 말을 듣는다. 우리는 기계에 프롬프트를 입력하라 지시받는다. 하지만 프롬프트는 프로그래밍이 아니라 프롬프트는 협상이다.
LLM에 대한 프롬프트를 작성할 때 우리는 다시 그라이스의 격률(Grice’s Maxims) 의 복잡한 세계로 끌려 들어간다. 언어 철학자 폴 그라이스(Paul Grice)는 효과적인 의사소통이 협력 원칙(Cooperative Principle)—즉 양(Quantity), 질(Quality), 관계(Relation), 방법(Manner) 에 관한 규칙에 의존한다고 제안했다.
인간은 이 규칙들을 끊임없이 위반한다:
- 빈정거림 ( 질 위반)
- 장황함 ( 양 위반)
- 수동‑공격적인 발언 ( 방법 위반)
전통적인 코드는 이러한 격률을 엄격히 강제했다. 간결하고, 진실하며, 관련성이 있었다. 그러나 LLM은 다음과 같은 행동을 할 수 있다:
- 환각 ( 질 위반)
- 불리언 값을 요구했음에도 불구하고 장황하고 화려한 설명을 제공 ( 양 위반)
- 올바른 출력을 얻기 위해 입력을 “다듬어”야 함
갑자기 “소스 코드”도 일상 대화와 같은 언어적 모호성의 대상이 된다. 우리는 모델이 특정 표현에 대해 어떻게 느끼는지 추측해야 한다. 본질적으로 부동소수점 숫자 행렬에 대해 치료를 시행해 SQL 쿼리를 작성하게 만드는 것이다.
거의 사고로 이어질 뻔한 모호함의 예
한 조종사는 이륙 후 재접근이 필요해 부조종사에게 “takeoff power.” 라고 말했다. 이 지시는 고도 상승을 돕기 위해 전력을 최대(이륙) 상태로 설정하라는 의미였다. 그러나 부조종사는 “take off power.” 로 듣고 “전력을 끊어라” 라는 의미로 해석해 엔진을 공회전 상태로 만들었다. 모든 항공 운송 통신이 영어로 이루어졌고, 이는 조종사들의 모국어가 아니었기 때문에 의사소통 오류가 발생했다. 여기서는 방어 장치나 맥락 기반 정지가 어떻게 도움이 될 수 있었는지 파악하기 어렵다.
확실성의 샤논 한계
I actually knew Claude Shannon. We lived in the same town, I was close friends with his daughter in high school and college, and we were both members of the MIT Juggling Club.
For those who only know the name from textbooks, Shannon was the Father of Information Theory. He realized that all information could be represented in binary digits—bits—and gave us the fundamental unit of digital certainty.
In Shannon’s world a bit measured the reduction of uncertainty; it was the answer to a yes/no question and the mathematical opposite of ambiguity.
When we wrote code in C or Java for the last 45 years, we were living in the house that Shannon built. We were manipulating bits of certainty—and now we’re being asked to navigate a sea of probabilistic language models.
Source:
Bits, Uncertainty, and the Shift from Code to Prompt Engineering
우리는 불확실성을 해소하고 있었습니다. 코드 한 줄마다 목표는 잡음을 없애 신호를 완벽하게 만드는 것이었습니다.
하지만 LLM은 샤논의 작업 중 다른 부분, 즉 영어의 엔트로피 위에서 작동합니다.
샤논은 글로 쓰인 영어의 엔트로피 (예측 불가능성)를 유명하게 추정했습니다. 그는 인간 언어가 중복되고 통계적이라는 점을 이해했으며, 이는 현대 AI가 작동하는 방식과 정확히 일치합니다—언어의 통계적 중복성을 이용해 다음 단어를 예측합니다.
하지만 여기서 함정이 있습니다: 예측은 정밀함이 아닙니다.
전통적인 코딩에서 Prompt Engineering으로 이동함에 따라 우리는 비트(절대적 확신)를 토큰(확률적 가능성)으로 교환하고 있습니다. 우리는 컴파일러의 잡음‑없는 채널을 떠나 언어 엔트로피의 늪, 즉 샤논이 디지털 논리로 메우려 했던 바로 그 늪으로 다시 들어가는 것입니다.
Determinism vs. Probability: The Anxiety of “Probably”
가장 깊은 마찰은 수학적입니다.
수십 년 동안 우리는 결정론적 세계에 살았습니다:
If P, then Q.
이는 이진적인 안락함이며, 검증 가능하고 재현 가능합니다.
AI는 확률적 세계를 도입합니다:
P(Q | P)
P가 주어졌을 때 Q가 일어날 확률.
AI에게 코드를 작성해 달라고 하면, AI는 코드를 “알고” 있는 것이 아니라 방대한 데이터셋을 기반으로 가장 가능성이 높은 다음 토큰을 예측합니다. 그것은 분위기와 통계적 가능성에 의존합니다.
패턴과 경직된 시스템에서 안락함을 찾는 신경다양성 사고자에게 이는 깊은 불안을 야기합니다. 우리는 **“정답 또는 오답”**이라는 시스템에서 **“충분히 좋음”**이라는 시스템으로 이동하고 있습니다.
- 구시대: 논리가 잘못돼서 디버깅에 3시간을 썼다.
- 신시대: 3시간 프롬프트 엔지니어링에 소비한다—사실은 블랙 박스를 설득하기 위한 마법의 말을 찾는 일이며—그리고 또 3시간은 생성된 코드가 올바른지 검증한다(확인했죠, 맞죠?).
Where Do We Go From Here?
저는 라디트가 아닙니다. 저는 AWS Hero, AWS Ambassador, 그리고 10 건의 미국 기술 특허 보유자입니다. 매일 AI를 사용합니다. 강력한 도구이죠. 하지만 이진적 안식처가 사라진 것이 안타깝습니다.
우리는 “코딩”이 건축보다 외교에 가깝게 변할 시대에 진입하고 있습니다. 이는 언어적 뉘앙스와 설득에 능한 사람들에게 보상을 제공할 것이며—전통적으로 신경전형자를 선호해 온 기술이기도 합니다. 반면 직관적 도약은 오히려 신경다양성을 가진 사람들에게 유리할 수도 있습니다.
컴파일러 오류의 절대적 진실에서 위안을 찾으며 수십 년을 보낸 우리에게는 새로운 기술을 배워야 합니다: 기계의 모호함을, 우리가 세상의 모호함을 견디듯이 견디는 법을 배워야 합니다.
하지만 제가 정확히 말한 대로 기계가 정확히 행동하던 시절이 그리울 것입니다.
Brian Tarbox는 언어 철학과 인지 심리학 학위를 보유하고 있습니다.