
AI 시대에도 코드는 여전히 우리의 모국어입니다: C에서 Java로의 변화와 다른 점
AI가 코드를 짜주는 시대에도 왜 여전히 개발자의 '코드 문해력'이 중요한지, 풀링포레스트 CTO 송찬영이 전하는 AI 협업의 본질과 원칙을 살펴봅니다.
송찬영
CTO

안녕하세요. 풀링포레스트 CTO 송찬영입니다.
최근 사내 타운홀 미팅에서 한 주니어 개발자가 조심스럽게 손을 들고 질문했습니다. "CTO님, 이제 자연어로 코딩하는 시대인데, 굳이 언어의 깊은 원리나 복잡한 문법까지 공부해야 할까요?" 솔직히 말해 잠시 멍해졌습니다. Cursor나 Claude 같은 도구가 우리 개발팀의 생산성을 비약적으로 높여준 것은 사실이지만, 그 질문 뒤에 숨은 불안감과 오해가 뼈저리게 느껴졌기 때문입니다. 많은 이들이 지금의 AI 혁명을 과거 어셈블리어에서 C언어로, 혹은 C에서 Java로 넘어갔던 '추상화의 진보'와 동일시합니다. 하지만 저는 이 관점에 대해 단호하게 선을 긋고 싶습니다.
우리는 지금 '착시'를 겪고 있습니다. 과거 프로그래밍 언어의 패러다임이 바뀔 때는 '중간 산물(Intermediate Product)' 자체가 변했습니다. 어셈블리어에서 C로 넘어갈 때, 우리는 레지스터와 메모리 주소를 직접 다루는 일을 멈췄습니다. C에서 Java로 넘어갈 때, 메모리 관리는 가비지 컬렉터의 몫이 되었고 우리의 중간 산물은 기계 친화적인 코드에서 인간 친화적인 객체지향 코드로 극적으로 변모했습니다. 그때마다 우리가 일하는 방식, 아키텍처를 설계하는 사고방식 자체가 송두리째 바뀌었습니다.
하지만 LLM(거대 언어 모델)의 도입은 이와 다릅니다.
풀링포레스트에서 AI를 도입하며 겪은 초기 시행착오가 이를 증명합니다. 초기에 우리는 일부 모듈 개발을 AI에게 전적으로 맡기는 실험을 했습니다. '프롬프트가 곧 코딩'이라는 믿음으로 소위 'Vibe Coding(느낌대로 코딩하기)'을 시도했죠. 결과는 어땠을까요? 겉보기엔 잘 돌아가는 기능이 나왔지만, 유지보수 단계에서 큰 위기를 맞았습니다.
문제의 핵심은 '중간 산물'이 여전히 소스 코드라는 점이었습니다. 우리는 프롬프트를 입력해 곧바로 실행 가능한 바이너리(Binary)를 얻는 것이 아닙니다. `프롬프트 -> 소스 코드 -> (수정) -> 바이너리`의 과정을 거칩니다. AI가 아무리 뛰어난 코드를 뱉어내도, 결국 그 결과물은 Java, Python, TypeScript 같은 기존 언어의 문법을 따르는 텍스트 파일입니다.
우리가 겪은 위기는 바로 여기서 왔습니다. AI가 작성한 코드를 인간이 검증하지 않고, 그 구조를 이해하지 못한 채 블랙박스처럼 취급했을 때 기술 부채는 걷잡을 수 없이 불어났습니다. PR(Pull Request) 리뷰 시간에 팀원들은 AI가 짠 복잡한 로직을 해석하느라 평소보다 두 배의 시간을 써야 했습니다. "영어가 새로운 프로그래밍 언어"라는 말은 반은 맞고 반은 틀립니다. 지시는 영어로 할지언정, 시스템을 지탱하는 실체는 여전히 코드이기 때문입니다.
이 깨달음을 얻은 후, 우리 팀은 AI 활용 원칙을 재정립했습니다.
첫째, 코드 리뷰와 리팩터링의 기준을 오히려 강화했습니다. AI는 코드를 '생성'하는 데는 탁월하지만, 전체적인 아키텍처의 일관성을 유지하거나 장기적인 유지보수성을 고려하는 데는 서툽니다. 소스 코드가 여전히 우리의 중간 산물인 이상, 이를 관리하고 설계하는 책임은 인간에게 있습니다.
둘째, 동적 인터프리터 언어의 활용성을 재발견하고 있습니다. 컴파일 과정 없이 즉시 실행하고 수정할 수 있는 언어들은 AI와의 협업에서 빛을 발합니다. 실행-수정-확인의 주기가 극도로 짧아지면서, AI가 제안한 코드를 실시간으로 검증하고 반영하는 워크플로우가 정착되고 있습니다.
결론적으로, AI는 프로그래밍 언어를 대체하는 것이 아니라, 우리가 그 언어를 더 빠르고 효율적으로 다루게 돕는 강력한 '비서'일 뿐입니다. 어셈블리어에서 C로 넘어갈 때처럼 우리가 다루는 대상이 사라지는 것이 아닙니다. 오히려 우리가 다뤄야 할 코드의 양은 폭발적으로 늘어났습니다.
지금 막막함을 느끼는 개발자분들께 꼭 전하고 싶습니다. 코드는 사라지지 않습니다. 오히려 AI가 짠 코드를 읽고, 판단하고, 개선할 수 있는 '문해력(Literacy)'이 그 어느 때보다 중요한 역량이 될 것입니다. 우리는 코더(Coder)에서 아키텍트(Architect)이자 에디터(Editor)로 진화해야 합니다. 기본기를 소홀히 하지 마세요. 그것이 AI 시대에 우리가 대체되지 않고 생존하는 유일한 길입니다.


