이 글은 Pragmatic Engineer 뉴스레터에서 발행된
『The Philosophy of Software Design – with John Ousterhout』 인터뷰 내용을 기반으로,
제가 겪은 실무 경험과 함께 ‘AI 시대의 소프트웨어 설계’에 대해 정리한 글입니다.
최근 몇 년 간, AI와 LLM(대규모 언어 모델) 기반 개발 도구들이 폭발적으로 등장했습니다.
단순한 코드 자동완성 기능을 넘어, 실제 프로덕션 수준의 코드까지 빠르게 생성하는 시대가 도래한 것입니다.
Stanford 교수이자 『A Philosophy of Software Design』의 저자인 John Ousterhout는 이 흐름이 개발자의 역할을 근본적으로 바꿔놓을 것이라 봅니다.
“AI 도구가 저수준 프로그래밍 작업을 더 많이 맡게 될수록,
인간 개발자의 역할은 점점 더 설계 중심적이 될 것이다.”
이제 ‘코드를 얼마나 빨리 잘 짜는가’보다,
‘무엇을 어떻게 만들지 설계할 수 있는가’가 더 중요한 시대가 된 것입니다.
제가 스타트업에서 일할 때는 늘 빠른 기능 구현과 눈에 띄는 결과가 요구됐습니다.
초기에는 정말 짧은 시간 안에 데모를 만들어야 했고, 비즈니스 피드백을 반영해 제품을 빠르게 개선해야 했죠.
그러나 그렇게 쌓인 코드들은 언젠가 반드시 기술 부채가 되어 돌아왔습니다.
팀원이 늘어나고 유지보수가 시작되면, 설계 없이 만들어진 시스템은
다른 이들의 발목을 잡게 되죠.
그래서 석사 시절, 교수님께서 하셨던 말씀이 떠오릅니다.
“소프트웨어 개발자는 문서로 말한다.”
기획과 설계 문서 없이 개발이 시작되면,
속도는 빠를지 몰라도 ‘왜 그렇게 만들었는지’ 아무도 설명할 수 없게 됩니다.
실제로 저도 AI 기반 웹사이트를 빠르게 개발했던 경험이 있는데,
명확한 설계 문서 없이 AI가 생성한 결과물을 정리하고 확장하는 데 꽤 많은 에너지를 썼습니다.
Ousterhout 교수는 ‘Tactical Tornado(전술적 토네이도)’라는 개념을 소개합니다.
이들은 엄청난 속도로 기능을 구현하지만, 설계나 장기적인 구조에는 거의 관심이 없습니다.
스타트업에서는 이런 개발자가 ‘히어로’처럼 보일 수 있습니다.
하지만 시간이 지나면서 다른 개발자들이 이 복잡한 구조를 수습해야 하는 상황이 반복됩니다.
흥미롭게도, 최근 AI 개발 도구들도 ‘전술적 토네이도’처럼 느껴지곤 합니다.
빠르게 코드 결과물을 내지만, 그 구조와 목적은 인간이 판단해야 하는 영역이기 때문입니다.
오스터하우트 교수는 말합니다.
“AI는 아직 고수준의 설계를 해주지 못한다.
이 영역은 여전히 인간의 몫이다.”
따라서 AI 시대일수록, 인간 개발자는 더 좋은 설계를 고민해야 한다는 역설적인 결론에 도달하게 됩니다.
특히 주니어 개발자들은 포트폴리오나 면접 준비 시
단순히 ‘무엇을 만들었는지’보다 ‘어떻게 설계했는지’
그리고 ‘왜 그렇게 설계했는지’를 말할 수 있어야 할 것입니다.