"코드는 원래 어려운 부분이 아니었다"는 말에 프로그래머들이 폭발한 이유
요즘 AI 코딩 도구 발표나 블로그 글을 보면 거의 공식처럼 나오는 문장이 하나 있습니다. “어차피 코드는 원래 어려운 부분이 아니었다"는 말입니다. 그런데 이 문장에 정면으로 반박한 글이 최근 개발자 커뮤니티에서 636표를 받으며 상위권에 올랐습니다. 왜 하필 이 한 문장이 프로그래머들의 신경을 그렇게 정확히 건드렸을까요.
이 문장은 원래 어디서 왔나
“코드는 어려운 부분이 아니다"라는 말이 AI 시대에 처음 나온 건 아닙니다. 원래는 소프트웨어 공학 쪽의 오래된 통찰이었습니다. 프레드 브룩스가 1986년 논문 “No Silver Bullet"에서 구분한 본질적 복잡성과 부수적 복잡성이 그 뿌리입니다. 언어 문법이나 메모리 관리 같은 건 도구로 없앨 수 있는 부수적인 문제고, 진짜 어려운 건 문제 자체를 이해하고 구조를 잡는 일이라는 뜻이었습니다.
여기까지는 대부분의 개발자가 동의합니다. 문제는 이 말이 AI 마케팅 문맥으로 넘어오면서 뜻이 슬쩍 바뀌었다는 데 있습니다. 원래는 “코딩보다 설계가 더 어렵다"였는데, 지금은 “코딩은 쉬우니까 AI에 맡기고 사람은 요구사항만 말하면 된다"로 읽힙니다. 같은 문장인데 결론이 전혀 다릅니다.
코드는 설계의 결과물이 아니라 설계 그 자체다
반박글이 짚은 지점은 명확합니다. 코드를 쓰는 행위와 설계하는 행위를 떼어낼 수 있다는 전제부터 틀렸다는 겁니다.
경험 있는 개발자라면 다 아는 감각이 있습니다. 머릿속에서는 완벽했던 구조가 막상 코드로 옮기기 시작하면 무너집니다. 이 함수가 이 데이터를 어디서 받아야 하는지, 이 상태를 누가 소유해야 하는지, 이 예외는 어디서 처리해야 맞는지. 이런 질문은 코드를 쓰다가 튀어나옵니다. 설계 문서 단계에서는 안 보입니다.
그러니까 코드는 설계를 기록하는 도구가 아니라 설계를 검증하는 도구입니다. 컴파일러와 타입 체커, 테스트가 “당신 생각은 여기서 앞뒤가 안 맞습니다"라고 알려줍니다. 이 과정을 건너뛴다고 설계가 좋아지지는 않습니다. 설계가 틀렸다는 걸 늦게 알게 될 뿐입니다.
“모욕"이라는 단어가 나온 이유
반박글 제목에 “모든 프로그래머에 대한 모욕"이라는 센 표현이 들어간 게 눈에 띕니다. 기술적으로 틀렸다는 지적이 아니라 감정이 실린 반응이라는 뜻입니다.
여기엔 맥락이 있습니다. 개발자들은 지난 수십 년간 “코딩은 곧 자동화된다"는 말을 반복해서 들어왔습니다. 4세대 언어, CASE 툴, 비주얼 프로그래밍, 노코드까지. 매번 “이제 요구사항만 쓰면 코드가 나온다"고 했고, 매번 그 요구사항을 정확하게 쓰는 일이 결국 프로그래밍이었다는 결론으로 돌아왔습니다.
그리고 하나 더 있습니다. 이 문장을 가장 자주 쓰는 사람들이 대체로 코드를 직접 유지보수하지 않는 자리에 있다는 점입니다. 데모를 만드는 것과 3년 된 코드베이스에서 버그를 고치는 것은 전혀 다른 일인데, “코드는 쉽다"는 말은 앞쪽 경험만 담고 있습니다. 커뮤니티 반응 중에 이런 요약이 있었습니다. AI로 코드를 만드는 속도는 확실히 빨라졌지만, 그 코드를 읽고 신뢰할 수 있는지 판단하는 속도는 하나도 안 빨라졌다는 겁니다.
반대편 주장도 완전히 틀린 건 아닙니다
공정하게 보면 “코드는 어려운 부분이 아니다"라는 쪽에도 근거가 있습니다.
실무에서 프로젝트가 실패하는 원인을 따져보면 문법 오류나 알고리즘 실력 부족은 거의 없습니다. 대부분 엉뚱한 걸 만들었거나, 조직 간 소통이 안 됐거나, 요구사항이 계속 바뀌었기 때문입니다. 그러니 코드 작성 속도가 10배 빨라져도 실패율은 별로 안 변합니다.
그래서 두 주장은 서로 다른 층위를 말합니다. 한쪽은 “프로젝트가 왜 실패하는가” 이야기고, 다른 한쪽은 “개인이 문제를 어떻게 이해하는가” 이야기입니다. 둘 다 맞습니다. 다만 앞쪽을 근거로 뒤쪽을 없애도 된다고 말하는 순간 논리가 무너집니다.
그래서 무엇이 진짜 어려운가
논쟁을 정리하면 프로그래밍의 어려움은 대략 세 층으로 나뉩니다.
첫째는 문법과 API 사용법입니다. 이건 AI가 거의 해결했다고 봐도 됩니다. 아무도 이걸 아쉬워하지 않습니다.
둘째는 코드로 구조를 잡아나가는 과정입니다. 여기가 이번 논쟁의 진짜 전장입니다. AI가 코드를 뱉어주면 이 과정이 생략되는데, 생략된 만큼의 이해는 나중에 어딘가에서 청구서로 돌아옵니다. 보통 장애가 났을 때입니다.
셋째는 애초에 무엇을 만들어야 하는지 정하는 일입니다. 여기는 AI가 거의 손을 못 댑니다. 브룩스가 “어려운 부분"이라고 했던 게 원래 이 층이었습니다.
남는 질문
이번 논쟁이 636표를 받은 건 새로운 통찰 때문이 아닙니다. 많은 개발자가 이미 느끼고 있던 불편함을 누군가 정확한 문장으로 써줬기 때문입니다. AI가 코드를 잘 쓴다는 사실과, 코드를 쓰는 경험이 이제 필요 없어졌다는 주장은 서로 다른 이야기입니다.
질문 하나를 남겨둡니다. AI가 짜준 코드를 읽고 “이건 아닌 것 같다"고 판단하는 감각은 어디서 오는 걸까요. 아마 직접 코드를 써보면서 틀려본 경험일 겁니다. 그렇다면 그 경험 없이 자란 다음 세대는 무엇을 근거로 그 판단을 하게 될까요.
댓글
댓글을 불러오는 중...