챗봇에 말을 걸듯 평범한 한국어나 영어로 지시하면 소프트웨어가 만들어지는 시대가 눈앞에 와 있다. 그런데 이 흐름에 대한 가장 날카로운 반론 중 하나는 최신 논문이 아니라 1978년에 쓰인 짧은 글에 담겨 있다. 네덜란드의 컴퓨터 과학자 에츠허르 다익스트라(Edsger W. Dijkstra)가 남긴 메모 EWD667, 제목 그대로 「'자연어 프로그래밍'의 어리석음에 관하여」다. 생성형 AI가 코딩의 상당 부분을 대신하기 시작한 지금, 거의 반세기 전의 이 경고를 다시 읽어볼 가치가 있다.
왜 형식 언어가 등장했는가
다익스트라는 자동 계산이 시작된 초창기부터, 프로그래밍이 형식적 기호 체계 특유의 '세심함과 정확성'을 요구한다는 사실을 결함으로 여긴 사람들이 있었다고 지적한다. 이들은 명백한 실수가 담긴 명령도 고분고분 그대로 실행해 버리는 기계를 탓했다. 다익스트라는 여기에 A. E. 하우스먼의 말을 빌려 덧붙인다. "하지만 한순간은 긴 시간이고, 생각은 고통스러운 과정이다."
거의 아무런 중복성(redundancy)도 없는 기계어는 인간과 기계 사이의 위험한 인터페이스로 일찌감치 지목됐고, 그 대응으로 이른바 '고급 프로그래밍 언어'가 발전했다. 그 결과 어리석은 실수 상당수가 잘못된 답 대신 오류 메시지로 걸러지게 된 것은 중요한 진전이었다. 다만 다익스트라는 이 개선조차 모두에게 환영받지는 못했다고 꼬집는다. 무시할 수 없는 오류 메시지를 틀린 결과보다 더 성가셔하는 사람들이 있었고, 어떤 이들은 지금도 '프로그래밍의 용이함'을 '발각되지 않는 실수를 저지르기 쉬움'과 동일시한다는 것이다. 언어가 아무리 바뀌어도 그 뒤의 추상 기계는 여전히 충실한 노예, 즉 말도 안 되는 지시를 완벽하게 수행하는 비(非)지성적 자동기계로 남아 있었다.
인터페이스는 노동의 단순한 분배가 아니다
기계를 모국어로 지시할 수 있게 만들자는 제안의 논리는 단순하다. 형식 기호를 써야 하는 의무가 어려움의 근원이라면, 그 부담을 기계에 더 많이 넘기면 사람의 삶이 편해지리라는 것이다. 다익스트라는 이 가정 자체를 의심한다. 인터페이스를 고른다는 것은 고정된 양의 일을 나누는 문제가 아니다. 경계를 넘어 협력하고 소통하는 데 드는 일이 추가로 발생하기 때문이다. 그는 인터페이스를 바꾸면 양쪽 모두에서 해야 할 일이 오히려 급격히 늘어날 수 있다는 것이 '뼈아픈 경험'으로 확인됐다고 말한다. 당시 '좁은 인터페이스(narrow interface)'에 대한 선호가 커진 이유가 바로 이것이다. 모국어로 소통하면 기계의 부담이 크게 늘어나는 것은 분명하지만, 그렇다고 사람의 삶이 단순해진다는 보장은 없다.
근거로 그는 수학의 역사를 든다. 그리스 수학은 언어적·그림적 활동에 머물러 정체됐고, 이슬람의 '대수학'도 소극적인 기호화 시도 끝에 다시 수사적 문체로 돌아가면서 사그라들었다. 근대 세계는 비에트, 데카르트, 라이프니츠, 그리고 후대의 불(Boole) 같은 이들이 의식적으로 설계한 형식 기호 체계 덕분에, 언어적 정밀성을 향한 헛된 시도였던 중세 스콜라주의의 족쇄에서 벗어나면서 비로소 등장할 수 있었다는 것이다.
'자연스러움'의 정체
형식 텍스트의 미덕은 그 조작이 정당하려면 단지 몇 가지 단순한 규칙만 만족하면 된다는 데 있다. 이는 모국어로는 피하기 거의 불가능한 온갖 헛소리를 걸러내는 놀랍도록 효과적인 도구다. 다익스트라는 형식 기호를 쓰는 의무를 부담이 아니라 특권으로 봐야 한다고 말한다. 덕분에 과거에는 천재만 해낼 수 있던 일을 이제 학생들이 배워서 할 수 있게 됐기 때문이다. 그는 1977년의 어느 기술 보고서 서문이 "명료함을 위해 논리 연결사의 표준 기호조차 피했다"고 적은 것을 두고, 이런 오해가 그 저자 한 사람에게만 국한된 것이 아님을 보여준다고 비판한다. 결국 모국어를 쓸 때 느끼는 '자연스러움'이란, 헛소리임이 한눈에 드러나지 않는 진술을 손쉽게 만들어낼 수 있다는 뜻에 지나지 않는다는 것이다.
그는 만약 처음부터 모국어가 정보 처리 장비의 유일한 입출력 수단이었다면 어땠을지 상상해 보라고 한다. 그의 짐작으로는 역사가 반복됐을 것이고, 컴퓨터 과학은 그 상태에서 충분히 잘 정의된 형식 체계로 '부트스트랩'하는 암흑기술로 채워졌을 것이다. 인터페이스를 쓸 만큼 좁히는 데 세상의 모든 지성이 필요했을 테고, 그 일을 제대로 해내는 데 또다시 수천 년이 걸렸으리라는 것이다.
실무자가 지금 읽어야 할 이유
다익스트라의 글은 당대의 '자연어 프로그래밍'을 겨냥했지만, 자연어 프롬프트로 코드를 생성하는 오늘날의 도구에도 그대로 겹쳐 읽힌다. 그가 던지는 질문은 결국 '모호함을 어디로 밀어내느냐'다. 자연어 명세는 작성하기 쉬워 보이지만, 그 모호함은 사라지지 않고 검증·디버깅·소통 단계로 옮겨가 양쪽의 일을 늘릴 수 있다. 실무적으로는 AI에 무엇을 맡기든 결과물을 검증할 명확한 기준, 즉 테스트·타입·명세 같은 형식적 장치가 여전히 필요하다는 뜻이기도 하다.
다만 그의 논지에는 한계도 분명하다. 이 글은 통계나 실험이 아니라 역사적 유추와 저자의 직관("gut feeling")에 기댄 1978년의 의견이며, 글 말미의 이른바 '신(新)문맹' 언급처럼 교육 쇠퇴에 대한 당대의 비관적 정서가 섞여 있다. 또한 그는 자연어 입력을 보조 수단으로 쓰되 최종 산출물을 형식 체계로 다듬는 식의 절충 가능성은 다루지 않는다. 그럼에도 "모국어로 프로그래밍하는 기계는 만들기도 쓰기도 지독하게 어려울 것"이라던 그의 마지막 직관은, 인터페이스가 쉬워 보일수록 숨은 비용을 따져 물어야 한다는 원칙으로 여전히 유효하다.