AI가 개발자를 대체할 수 있을까?
기술의 발전은 언제나 기존의 일하는 방식을 바꾸고, 때로는 특정 직업의 소멸을 가져오기도 했습니다. 100년전에도 건축가와 설계 엔지니어들은 100층이 넘는 빌딩을 설계하고 만들 수 있었지만 손으로 복잡한 도면을 그리는 데 엄청난 시간과 노력을 쏟았습니다. 컴퓨터가 발달하고 CAD기술이 등장하면서 설계 기술이 간단하게 바뀌었지만 건축가와 설계 엔지니어는 대체되지 않았습니다. 도면제작자라는 일이 소멸되었죠. 기술은 직업을 대체한 것이 아니라 반복적인 제도 작업에서 해방시켜 더욱 창의적인 설계 구상과 구조적 검토, 시뮬레이션 등 고차원적인 업무에 집중할 수 있도록 도왔습니다.
비슷한 예로 회계 분야를 들 수 있습니다. 과거 한국에서는 상고, 상업 고등학교를 졸업하고 기업에서 주판이나 계산기를 사용하며 일일이 영수증을 모으고 수기로 장부를 정리하는 경리들이 많았습니다. 거의 대부분의 소기업들은 회사마다 한명씩의 경리를 채용하는게 보편적이었죠. 하지만 엑셀과 같은 스프레드시트가 보급되면서 이 “경리”는 소멸했습니다. 오늘날 대부분의 소기업들은 자동화된 프로그램을 사용해서 세금 보고를 하고, 영수증을 모을 필요도 없어졌죠. 조금 복잡한 회계업무가 필요한 회사는 회계사에게 의뢰를 합니다. 이 회계사는 최소 4년제 대학을 졸업하고 거기에 더해 CPA등 자격을 갖춘, 예전 회계업무에 비하면 극소수의 사람만이 할 수 있는 일이 되었습니다. 그 대신 이 극소수의 회계사는 단순 작업뿐만 아니라 데이터를 분석하고 재무 전략을 수립하며, 경영진에게 필요한 통찰력을 제공하는 등 더 가치 있는 역할로 진화했죠.
오늘날 우리는 AI의 급격한 발전 앞에서 'AI가 개발자를 대체할 수 있을까?'라는 질문을 던지고 있습니다. 간단한 코드 생성과 테스트, 리팩토링은 순식간에 끝나고, 심지어 간단한 프로그램을 스스로 만들기도 하는 AI의 능력을 보면 이러한 질문은 자연스럽습니다. 하지만 저는 '설계'와 '책임' 때문에 AI가 개발자를 '완전히' 대체하기는 어렵다고 생각합니다.
먼저 설계에 대해 얘기해보죠. 소프트웨어 개발은 단순히 코드를 작성하는 행위가 아닙니다. 그 이전에 해당 제품이나 서비스가 왜 필요한지, 어떤 문제를 해결해야 하는지에 대한 깊은 이해를 바탕으로 최적의 구조를 구상하는 '설계' 과정이 필수적입니다. 이 설계 과정에는 수많은 의사결정(Design Decision)이 포함됩니다. 예를 들어, 프로세스 간 통신 방식을 결정할 때, 로컬 환경인지, 클라우드 환경인지, VPC 간 통신인지 등 다양한 기술적 맥락을 고려해야 합니다. 속도, 보안, 비용, 유지보수성 등 여러 요소를 저울질하며 최적의 균형점을 찾아야 합니다. AI가 이러한 모든 맥락과 미묘한 트레이드오프를 완벽히 이해하고, 최적의 설계를 내놓을 수 있을까요?
물론 가능합니다. 사용자가 요구사항을 명확히 정의한다면요. 하지만 회사원으로 일하던, 프리랜서로 외주를 받아서 일하던 개발자를 가장 괴롭히는건 언제나 사용자의 요구입니다. 스티브 잡스가 얘기했었죠. 대중은 보여주기 전까지 자신이 뭘 원하는지 모른다(A lot of times, people don't know what they want until you show it to them) 고요. 이전의 예시로 되돌아가서 두개의 프로세스가 있고 이 프로세스가 어떻게 교류해야 하는지 사용자는 깊이 고민하지 않습니다. 하나의 로컬 머신에서 돌아가는지, 두대의 멀리 떨어진 머신에서 돌아가는지 몰라요. 그들의 요구는 “무조건 보안을 최우선시해서 만들어”, 혹은 “무조건 빠르게 해” 같은 식이죠. 하나의 로컬 머신에서 돌아가는 두개의 프로세스를 보안 최우선으로 만들어서 토큰을 만들고 클라우드 펍섭을 통해서 통신하면 속도가 어떻게 될까요? AI가 사용자 자신도 명확히 알지 못하는 요구사항의 본질까지 파악하여 최적의 설계를 내놓을 수 있을까요? 게다가 사용자의 요구는 개발 과정에서 수시로 바뀌며, 때로는 비논리적이거나 모순된 요구를 하기도 합니다.
마찬가지 맥락으로 저는 노코드 툴도 불가능하다고 생각하는게, 실제 툴은 코드를 사용하지 않더라도 이를 이용한 기능의 제작은 논리, 정확히 말하면 컴퓨터가 어떤 식으로 작동하는지에 대한 이해 없이 작성하는게 불가능하다고 생각합니다. 이 논리를 모르는 사용자가 노코드/로우코드 툴을 이용해 복잡한 서비스를 만든다고 가정했을 때, 논리적 오류 없이 완벽한 설계를 구상하고 이를 구현하는 것은 불가능에 가깝고, AI가 이러한 인간의 불완전성, 모호함, 그리고 복잡한 맥락 속에서의 창의적 문제 해결 능력을 완전히 대체하기는 어렵다고 봅니다.
둘째는 '책임'의 문제입니다. AI는 특정 분야에서 이미 인간의 능력을 뛰어넘는 성능을 보여주었습니다. 알파고가 이세돌을 상대로 승리한 10여년전 이미 알파고의 수는 인간이 그동안 두지 않았던, 예상할 수 없었던 수였습니다. 그때는 이해할 수 없었던 수가 알고보니 인간이 그동안 수많은 대국을 하면서도 두지 않았던 수였고, 지금의 바둑은 인간이 AI에게 배우는 시대가 됐죠. AI의 결정 과정이나 결과물이 항상 인간이 이해하고 통제할 수 있는 것은 아닙니다. 여기에 맹점이 있는게, 바둑과 달리 현실 세계의 소프트웨어는 수많은 사용자의 데이터, 돈, 안전과 직결될 수 있으며 외부 요인에 영향을 받습니다. 바둑의 경우의 수가 많다고 하지만 현실 세상에 비하면 한정된 세계일 뿐이죠. 테슬라의 FSD같은 자율주행 기술도 마찬가지입니다. 굉장히 잘 만들었고 대부분의 운전 작업을 대체할 수 있지만 그럼에도 불구하고 누구도 그 기술이 완전한 5단계라 하지 않습니다. 테슬라조차도요. XAI등을 통해 AI의 결과물을 이해하려는 노력이 있음에도 불구하고 여전히 AI, 특히 LLM의 메커니즘은 블랙박스에 가깝습니다.
일반적인 프로젝트에서 보안 취약점이 있거나 시스템의 오류가 발생하면 그 코드를 잘 아는 사람이 디버깅을 해야합니다. 하지만 AI의 코드, 인간이 이해할 수 없는 코드에 문제가 생기면요? 그로 인해 금전적 손실이나 인명 피해가 발생하면 그 책임을 누가 질까요? 저는 현대 사회에서 자율주행 기술이 아직 완전한 5단계에 이르지 못한 이유가 기술이 부족해서가 아니라 생각합니다. 이 책임 소재의 불분명성 때문입니다. AI가 아무리 효율적인 코드를 생성한다 하더라도, 그것이 복잡하고 이해하기 어려운 '스파게티 코드'라면 인간 개발자는 이를 신뢰하고 그대로 적용하기 어려울 것입니다. 결국 중요한 시스템일수록 인간 개발자는 AI의 결과물을 검증하고, 잠재적 위험을 관리하며, 최종적인 결과에 대한 책임을 져야 해요.
물론, 그럼에도 불구하고 앞서 서론에서 언급한 것처럼 태스크 단위의 코드 구현에 익숙한 개발자들은 영향을 받을 수 밖에 없습니다. 설계를 할 수 있고 책임을 질 수 있는 단계에 이르지 못한 개발자들 중 AI를 적극적으로 활용할 수 없는 사람들이 가장 먼저 도태될 것이고, AI를 써서 빠르게 구현할 수 있는 사람 역시도 영향을 받게 되겠죠. 그렇다고 손놓고 있을 필요도, 그럴 수도 없습니다.
기술이 빠르게 발전하는 것을 두려워할 필요는 없습니다. 빨리 발전한다고 모든 사람이 빠르게 따라갈 수 있는게 아니거든요. 구글이 검색 서비스를 낸지가 25년도 넘었지만 여전히 수많은 사람들은 아직도 구글 검색 기능을 효율적으로 사용해서 정보를 찾을 수 없습니다. LLM도 마찬가지입니다. LLM이 할 수 있는 일이 많은 것과 사람들이 그걸 따라가는건 완전히 별개의 얘기에요. 엑셀이 등장했을때 계산기, 주판만 고집하던 경리는 소멸했지만 엑셀을 능숙하게 활용할 수 있던 사람은 더 많은 기회를 얻었을 겁니다. 지금의 자신이 미래의 자신과 같을 필요는 없고, 그건 재능이니 뭐니 하는 문제가 아니라 마인드의 문제일 뿐입니다.
아직 주니어 레벨이나 취업을 준비하는 취준생들 역시 마찬가지입니다. 취업에 대해서는 따로 글을 하나 나중에 쓰겠지만 이럴 때일수록 기초를 탄탄히 하고 AI를 활용한 문제 해결 능력을 키우는데 집중하셔야 합니다. 엑셀로 일하는 시대에 상고 나오고 부기 자격증 따봐야 아무 소용없습니다. 늦었다고 빨리가야 한다고 국비 다니고 그러지 말고 제대로 배우셔야 해요. 조급할 필요가 없는게 기술 개발과 사람들 인식의 발전은 별개입니다. 모든 시니어 개발자들이 AI가 나왔다고 능숙하게 다룰 수 있는게 아니에요. 심지어 구글러들조차도 마찬가지에요.
옛날 옛적 사무실 실내에서 담배피던 시절의 개발자는 1천 페이지도 넘는 API 책을 끼고 살았습니다. 지금 그렇게 일하는 개발자가 있을까요? 있을지도 모르지만 적어도 그 사람이 “표준”이라 할 수는 없습니다. 돌이켜보면 시대와 기술은 항상 변해왔어요. 저장매체만 해도 천공카드부터 클라우드까지 얼마나 많은 진화가 있었습니까.
진부한 얘기이지만 위기는 기회입니다. 발전없이 고인물들만 가득한 업계보다는 이렇게 급변하는 업계가 오히려 주니어 이하의 레벨에게 더 좋을 수 있어요. 08년 금융위기 때 커리어 시작하신 분과 예전에 나눈 이야기가 있었는데 모두가 해고하는 분위기에서 어렵게 커리어를 시작해서 포기하지 않고 했더니 되려 주변에 경쟁자가 없어져서 주니어 이후로 승진이나 보상면에서 더 이득봤다고 하더라구요. 지금 커리어를 준비하시는 분들도 AI를 어떻게 받아들이고 활용하느냐에 따라 미래가 달라질겁니다. 핵심은 변화를 인지하고 주도적으로 움직이는 거에요.