프로그래밍 언어의 발전사는 곧 추상화의 역사였다. 기계어에서 어셈블리, 고급 언어로 이어지는 흐름은 인간이 기계의 언어에 맞추는 대신 기계가 인간의 언어에 가까워지는 과정이었다. 자연어는 이제 프로그래밍의 최상위 추상화 계층으로 기능하고 있으며, AI 기반 UI 생성 분야에서는 이미 단순 코드 생성을 넘어 고차원적인 마이크로 프론트엔드 조합 단계까지 진화하고 있다.
프로그래밍 언어의 발전사는 곧 추상화의 역사였다. 기계어에서 어셈블리, 고급 언어로 이어지는 흐름은 인간이 기계의 언어에 맞추는 대신 기계가 인간의 언어에 가까워지는 과정이었다. 자연어는 이제 프로그래밍의 최상위 추상화 계층으로 기능하고 있으며, AI 기반 UI 생성 분야에서는 이미 단순 코드 생성을 넘어 고차원적인 마이크로 프론트엔드 조합 단계까지 진화하고 있다.
최근 한 기술 블로그에서 'Yes, and…'라는 제목의 흥미로운 글을 읽었다. 몬태나 주립대학교에서 컴퓨터 과학을 가르치는 한 교수가 쓴 글이었는데, AI 시대에도 여전히 프로그래밍을 배워야 하는가에 대한 그의 고찰이 담겨 있었다. 그는 프로그래밍이 근본적으로 컴퓨터를 이용한 문제 해결과 복잡성 제어에 관한 것이기에 그 가치는 변하지 않을 것이라고 주장한다. 하지만 주니어 개발자들에게는 매우 엄격한 태도를 보인다. AI가 코드를 생성해줄 수 있더라도 절대로 그렇게 하지 말고 직접 코드를 짜야 한다고 강조한다. 코드를 직접 짜지 않으면 코드를 읽는 능력을 기를 수 없고, 결국 자신이 이해하지 못하는 시스템을 만드는 ‘마법사의 제자’ 함정에 빠지게 된다는 논리다. 그는 AI를 코드 생성기가 아니라 개념 이해를 돕는 유능한 조교(TA)로 활용하라고 조언한다.
프로그래밍이 죽었다는 말은 사실 과장된 표현이다. 오히려 지금은 그 어느 때보다 역동적으로 변화하고 있는 시기다. 이전까지 우리가 파일 하나하나를 수정하며 정성스럽게 코드를 작성하던 방식이 이제는 에이전트에게 지시를 내리고 그 결과를 조율하는 방식으로 진화하고 있다. 이런 변화 속에서 개발자의 환경은 단순한 에디터를 넘어 하나의 커맨드 센터로 탈바꿈해야 할 운명에 처했다. 우리가 다루는 단위가 파일에서 에이전트로 옮겨가고 있다는 사실을 인지하는 것이 중요하다.
최근 IT 생태계를 지켜보며 가장 흥미로운 변화 중 하나를 꼽으라면, 단연 인공지능 에이전트들이 다시 '파일 시스템’이라는 고전적인 기술에 주목하기 시작했다는 점이다. 불과 얼마 전까지만 해도 모든 데이터는 벡터 데이터베이스에 들어가야 하고, 모든 지식은 그래프 형태로 구조화되어야 한다는 목소리가 높았다. 하지만 아이러니하게도 가장 진보된 AI 기술을 다루는 사람들이 지금 가장 열광하는 것은 우리가 수십 년 전부터 사용해 온 폴더와 파일의 구조다. 인프라와 데이터베이스의 역사는 돌고 돈다는 말이 있는데, 이번 파일 시스템의 부상은 단순한 회귀가 아니라 AI 시대에 맞는 새로운 정의라고 봐도 무방할 것 같다.
최근 개발자 커뮤니티에서 LLM이 생성하는 코드의 품질을 두고 매우 흥미로운 논쟁이 벌어졌다. '너의 LLM은 정확한 코드가 아니라 그럴듯한 코드를 쓴다’는 제목의 글이 큰 화제가 되었는데, 한 개발자가 Rust로 SQLite를 처음부터 끝까지 재구현한 프로젝트를 분석한 내용이다. 겉으로 보기에는 수십만 줄의 방대한 코드가 완벽한 구조를 갖추고 테스트를 통과하며 실제 SQLite 파일 포맷을 읽고 쓰는 것처럼 보이지만, 성능 면에서는 원본 SQLite보다 2만 배나 느리다는 충격적인 결과가 나왔다. 이는 LLM이 아키텍처나 모듈의 이름 같은 외형은 그럴듯하게 흉내 내지만, 성능을 결정짓는 핵심적인 최적화 로직이나 불변식은 놓치기 쉽다는 점을 시사한다.
클로드 코드가 가장 잘 다루는 프로그래밍 언어는 무엇일까
AI 에이전트 시대가 본격적으로 열리면서 우리가 프로그래밍 언어를 선택하는 기준이 근본적으로 흔들리고 있다. 과거에는 인간 개발자의 가독성이나 실행 성능, 혹은 생태계의 크기가 가장 중요한 지표였다면 이제는 AI 에이전트가 얼마나 효율적으로 코드를 생성하고 검증할 수 있는지가 새로운 척도로 부상했다. 최근 엔도 유스케가 클로드 코드(Claude Code)를 활용해 13개 프로그래밍 언어의 생산성을 정량적으로 분석한 결과는 이런 변화를 아주 명확하게 보여준다. 단순히 어떤 언어가 좋다는 주관적인 논쟁을 넘어 시간과 비용이라는 구체적인 수치로 증명된 데이터는 우리가 앞으로 어떤 언어로 개발을 시작해야 할지에 대해 많은 시사점을 던져준다.