AI개발론

개발자는 대체되지 않는다. 그저 변화할 뿐

·17 min read

개발자는 대체되지 않는다. 그저 변화할 뿐

AI의 등장 이후 다수의 개발자들이 공통된 불안감을 가지고 있습니다. "AI가 개발자를 대체할까?" AI가 무엇을 하길래 우리를 이렇게 불안하게 만들까요?

AI가 바꾼 것

AI는 코드를 짤 수 있습니다. 단순히 코드를 생성하는 것뿐만 아니라, 트레이드오프를 고려하고 판단을 내리기도 합니다.

과거 AI 코딩 초기 단계에서는 단순한 자동 완성 기능을 위주로 AI가 사용되었습니다. 그때까지는 개발자들도 AI를 업무 생산성 향상의 수단으로 바라보았습니다. 그러다가 처리 가능한 컨텍스트 양이 늘어나고, 코드베이스를 제어하기 시작하면서 본격적으로 '개발자 대체'가 화두에 올라왔습니다.

다만 그때까지는 'AI가 아닌 AI를 잘 쓰는 개발자에 의해서 대체될 것이다'라는 의견이 주류였고, 이후에 등장한 게 에이전틱 워크플로우(Agentic Workflow)였습니다. AI에게 목표를 주면, 목표 달성을 위해서 복합적인 태스크를 스스로 판단하고 수행하기 시작했습니다.

에이전틱을 쓰든 안 쓰든 개발자 입장에서는 코드베이스를 제어하며 코드를 생성한다는 점은 변함이 없지만, 가장 큰 차이로는 계획-실행-검토-수정의 루프를 반복하며 마치 사람이 일하듯이 작동한다는 것입니다. 이 단계에서 우리는 '주니어 대체'를 논의하게 됩니다.

일반적인 주니어와 차이가 있다면 AI는 똑똑한 전문가 수준의 주니어라는 것입니다. 방대한 분야에 대해서 평균 이상 수준의 지식을 보유한 주니어. 물론 주니어이기에 실수를 하겠지만, 이제는 새롭게 '하네스 엔지니어링'이라는 주제로 어떻게 실수를 제어할지에 대해서 논의하고 있습니다.

마지막으로 '개발자 대체'입니다. 대체되니 안 되니가 중심이 아니고, 중요한 건 개발 산업 구조입니다. AI는 이미 개발 산업 구조를 바꿨습니다. 수많은 테크 기업이 앞다투어 AI를 적용하고, 실무자들은 AI 드리븐 방식으로 개발을 하면서 '클로드 블루'라는 신조어까지 나오고 있습니다.

근본적인 문제로는 우리는 개발자이기 이전에 직장인이고, 기업은 생산성과 수익을 추구하기 때문입니다. 물론 변화의 폭풍 속에서 올바른 개발 문화를 지키고자 하는 노력과 인사이트는 남아 있을 것입니다. 다만 그게 대다수는 아닐 것 같습니다.

한국 개발 산업의 많은 비중을 차지하는 SI 산업의 경우 가장 중요한 것이 바로 일정 내 완성입니다. 보통 이런 일정은 빠듯한 경우가 많고, 가장 먼저 포기하게 되는 것이 바로 코드 품질입니다. 유지보수를 들어간다면 "어차피 우리가 유지보수하는데 일단 만들자"가 되는 것이고, 유지보수를 안 한다면 "어차피 우리가 유지보수 안 하는데 일단 만들자"가 되는 겁니다.

일단 고객은 드릴을 원하는 게 아닌 1/4인치 구멍을 원합니다.

눈에 보이고 돌아가면 장땡인 거죠. 물론 예외가 있을 수 있으나 적어도 제가 일하고 봐온 환경은 그렇습니다.

"SI 회사도 품질 관리 안 하면 신뢰성 문제로 경쟁력이 떨어지는 거 아닌가요?"라고 할 수 있으나, 이해관계나 입찰금액 등 세상에 변수가 좀 많아서 이 부분은 약간 이상론이 아닐까라고 생각합니다.

아무튼 프로젝트 돌리는 만큼 돈이 벌리는 SI 업체로서는 생산성이 곧 매출이고, 비용 중에 가장 큰 부분이 바로 인건비이기 때문에 개발자에 AI 달아서 인건비 절약하고 프로젝트 빨리 끝내서 매출 올리고 싶어 할 것이고, 게다가 옆집은 프로젝트가 한 달 만에 나온다는 소리가 들려오면 아무래도 당장의 이득을 선호하게 될 것 같습니다.

AI의 문제

지금도 주니어를 대체한다는 이야기가 나오는데, 인간이 성장하는 데는 오랜 시간이 걸립니다.

하지만 AI 모델의 성장 속도는 상대적으로 빠릅니다. 1~2년만 돌이켜보더라도 분기마다 신모델이 나오고, 모델이 나올 때마다 최고점을 갱신합니다. AI의 성능은 올라가는데 AI를 활용하는 방법도 계속 연구되면서 효율적으로 변화하고 있습니다. 심지어 "인간이 병목이다"라는 말까지 나옵니다.

5년 뒤 AI 모델과 경쟁해야 할 우리의 난관도 있지만, 개발 산업적으로 개발자의 양극화를 맞이할 수도 있습니다. AI가 주니어를 대체하고, 그나마 주니어들은 성장 기회를 얻지 못하며 AI에 의존적으로 개발을 하는 겁니다.

또한 아까 이야기한 '인간이 병목'이라는 말의 근원으로 코드 리뷰의 부재라는 문제가 있습니다. AI가 쏟아내는 코드를 리뷰하기에는 인간의 인지 능력에 한계가 있기에 리뷰조차도 AI를 활용하는 것입니다. 장기적으로 보자면 어쩔 수 없는 변화의 흐름이겠지만, 주니어와 시니어 사이의 단절이 발생하고, 좋은 구조를 고민하는 훈련 과정이 사라지면서 AI에 의존적인 개발자가 되기 쉽습니다.

이러한 성장의 문제는 주니어뿐만 아니라 전반적인 개발자들에게도 동시에 발생합니다. 과거 개발자는 보통 삽질에서 배우는 경험이 많았습니다. 직접 코드를 짜며 삽질하는 과정에서 뇌에 강한 자극을 받고 장기 기억으로 저장했습니다.

지금은 간단히 물어보기만 해도 AI가 정답을 제공하고, 개발자는 계획을 짜고 코드를 위임합니다. 이 과정에서 개발자는 아는 느낌은 받지만, 실제 근육에 새겨지는 지식은 줄어듭니다. 더 많이 생산할수록, 더 많이 잃어버리게 되는 과정이 되는 것입니다.

가장 큰 문제는 우린 변화의 초반부에 있다는 것입니다. AI가 본격적으로 개발 환경에 들어온 지 5년도 채 안 지났고, 앞으로의 5년은 이전의 5년보다 더욱 빠른 속도로 변화할지도 모릅니다. 그리고 이후의 10년은 우리가 개발자로서 계속 살아갈 수 있을지에 대한 의문을 만듭니다.

AI 시대 개발의 본질

이러한 변화 속에서도 저는 개발의 본질이 바뀌지는 않았다고 생각합니다. AI 시대에서 개발을 잘하는 개발자는 누구일까요? 저는 AI 도구를 활용하는 개발자보다는 기존에도 AI 없이 잘해왔던 개발자가 잘한다고 생각합니다. AI 또한 그저 하나의 도구고, 변화하는 도구를 잘 다루는 건 본질적인 역량이 있는 사람이기 때문입니다.

예를 들어 AI에 질문을 할 때 그냥 "로그인 기능을 만들어줘"와 의도와 제약 사항 그리고 방향성을 알고 질문을 던지는 것은 큰 차이가 있습니다. 흔히 말하는 GIGO(Garbage In, Garbage Out)처럼 아는 만큼 설명할 수 있기 때문입니다.

또한 개발의 본질은 코딩이 아닌 설계입니다. 주어진 환경에서 트레이드오프를 고려하는 능력, 예상 유저와 트래픽을 고려하고, Read 중심이냐 아니면 Write 중심이냐에 따라서 아키텍처를 고민하는 등... 이러한 설계를 하기 위해서는 기본적인 CS 지식과 프레임워크에 대한 이해도가 중요합니다.

물론 본질이 중요하다고 해서 변하는 것들이 안 중요한 것은 아닙니다. "AI에 대체되는 것이 아닌, AI를 쓰는 개발자에 대체된다"는 말이 있듯이, 이제는 본질을 지키면서 변화하는 AI 개발 방법론에 대해서 어느 정도 숙지하고 팔로업을 해야 한다고 생각합니다. 다만 변화하는 흐름은 말 그대로 언젠가는 과거의 지식이 되기 때문에 최전선에서 따라가려 할 필요는 없다고 봅니다.

개발자는 대체될 것인가?

개인적으로는 크게 고민할 필요가 없는 화두라고 느껴집니다. 결국 정답이 없기 때문입니다. 당장의 상황을 보자면 AI가 뛰어나다고 하더라도, 판단을 내리고 결정을 할 사람은 필요합니다.

흔히 나오는 "AI가 아닌 당신을 뽑을 이유가 뭐냐"라는 질문에 대해서도 결국 판단하고 행동할 인력이 필요하니까 면접을 보는 거고, "다른 지원자 대비 당신을 뽑을 이유가 뭐냐"라는 질문과 동일합니다.

고민의 키워드는 다양합니다. AGI, 사무직의 종말, 피지컬 AI로 인한 노동자 대체 기타 등등. 미래 고민을 하고자 한다면 끝도 없이 가능하고, 그럴 시간에 그냥 현재에 충실하는 게 더 나을 것 같다는 게 제 판단입니다.

물론 고민하고 선택해서 대처하는 것도 중요하다는 의견이 있을 수 있으나, 우린 지금 멈출 수 없는 급류에 휩쓸려 있다고 생각합니다. 개발을 그만두고 이 파도를 벗어나 옆으로 잠시 빠질 수 있어도, 결국에는 언젠가 다시 쫓아오는 파도를 맞이하리라 생각합니다.

우리는 뭘 해야 하는가

그저 현재를 즐기려고 노력하는 것이라고 생각합니다. 하루에 감사하고 AI와 개발을 사랑하는 것입니다.

그냥 하는 말이 아니라, 지금의 개발 상황은 정신병 걸리기 딱 좋습니다. 일터에서는 슬롯머신 돌리듯이 도파민 뽑으면서 정답 자판기를 돌리고 있고, 무언가를 만들어내도 뭔가 남지 않고, 내 것이 아니다라고 느껴지는 불안감이 감싸옵니다.

더 잘하기 위해서는 따로 개발의 본질에 대해서 공부를 해야 하는데, 변화하는 AI 개발의 흐름을 따라가야 합니다. 게다가 주변에서 개발자 대체된다는 소리 들어가는 상황에서 앞으로의 5년, 10년을 내가 이 직업을 유지할 수 있을까라는 생각이 듭니다.

그러니 최대한 고민을 줄이기 바랍니다. 어차피 변화의 흐름은 우리가 제어할 수 없습니다.

AI에 대한 인식을 바꾸자면 기회로 생각하시길 바랍니다. 어떻게 쓰느냐에 따라서 학습을 도와주는 튜터가 될 수 있고, 만들고 싶었지만 능력이 부족해 하지 못했던 프로젝트를 도와주는 동료가 될 수 있습니다.

개발의 길에 들어오면서 처음 열정을 느낀 순간이 있었을 겁니다. 그 경험을 소중히 하길 바랍니다. 실망했다면 개발이 아닌 잘하지 못하는 자신에게 실망했을 수 있습니다. 그러니 좀 더 잘할 수 있도록 나를 소중히 하고, 아파도 개발이라는 것을 사랑하길 바랍니다.

물론 변화하는 만큼 가능성이 넘쳐나는 세상이기에 본인의 길을 찾아가는 것도 좋습니다. 누군가에게는 비즈니스 도메인이 될 수 있고, 누군가에게는 창업이라는 도전이 될 수 있습니다. 결국 개발자에게 필요한 건 성장이라고 생각하기에 모두를 응원하겠습니다.

← Previous
프로젝트 Clean의 의미