메인 콘텐츠로 이동하기

AI는 소프트웨어 엔지니어링을 종식시킬까?

·4 분
engineer
Image generated by AI

AI 시대, 코딩 에이전트가 등장한 이후로 소프트웨어 엔지니어는 사라질 것이다, 아니다라는 논의는 끊이질 않는다. 나 역시 그 한가운데에 서 있는 사람으로서 매일같이 고민하는 문제다.

만약 AI로 인해 정말로 소프트웨어 엔지니어의 역할이 사라진다면, 난 무엇을 해야 하는가? 만약 사라지지 않고 역할이 크게 바뀐다면 어떤 역할을 해야 할까? 만약 AI가 그저 도구로 남는다면 어떻게 해야 잘 활용할 수 있을까? 같은 질문이 머리속에 맴돈다. 정답은 없다. 하지만 적어도 거대한 변화 속에 있다는 것은 알고있다.

물론 나는 AI 엔지니어도 아니고 한명의 안드로이드 엔지니어일 뿐이다. OpenAI나 Anthropic 같은 AI 선두 기업에서 일하며 그 속사정을 알고 있지도 못하다. 그래서 당연하게도 내 생각은 틀릴수도 있다. 하지만 AI로 인해 가장 위협받고 있는 직종에 종사하며 치열하게 고민한 생각을 적어보려 한다.

나는 현재 AI를 어떻게 쓰고 있는가? #

먼저 2026년 현재, 나는 AI를 어떻게 쓰고 있는지 정리해보는게 좋을 것 같다.

나는 주로 Claude와 Gemini를 쓰고 있다. Claude는 주력으로 사용하고, Gemini는 Google 서비스들을 구독하는 김에 같이 사용한다.

먼저 정보를 찾을 때 AI를 사용하는 빈도가 Google에 직접 검색하는 것보다 많아졌다. 특히 간단한 질문일수록 AI에 물어보는 빈도가 높다. 그런 질문들은 철저한 출처 검증이나 정확성이 요구되지 않기 때문이다.

정확성이 요구되는 질문은 AI와 직접 검색을 병행한다. AI가 가져오는 대답에 출처를 요구하고 내가 직접 찾아본 정보와 대조해본다. 그리고 그 정보들을 종합해서 결론을 내린다.

코딩 에이전트는 매일같이 사용한다. 회사에서는 Claude Code 엔터프라이즈 요금제로 사용중이고, 개인적으로도 Claude Code를 구독해서 쓴다. 하지만 AI에게 모든 코딩 작업을 위임하고 있지는 않다. 내가 직접 쓰는게 더 빠르거나 낫겠다 싶은 부분은 손으로 쓰고, AI가 쉽게 할수 있는 부분은 시킨 뒤 변경사항을 리뷰한다. 그러다 보니 점점 코드 작성 시간보다 diff를 보는 시간이 더 늘어나고 있다.

하지만 매일같이 AI에게 질문하고 AI에게 코드 작성을 시켜도, 나는 모든걸 맡기지는 않고 있다.

AI는 실제로 코딩을 잘 하고 있다. 이제 AI 코딩 에이전트는 단순한 보조를 넘어섰다고 생각한다. AI의 방대한 지식을 기반으로 내가 생각하지 못하는 괜찮은 코드를 작성해줄 때도 종종 발생한다. 이미 개발자가 모든 코드를 한줄 한줄 작성하는 것은 비효율이 된 시대다.

하지만 그렇다고 AI가 소프트웨어 엔지니어링의 모든 분야에서 인간을 뛰어넘었냐 하면 그건 아니라고 생각한다. 여전히 AI는 맥락을 놓치고, 중복 코드를 생산하고, 버그를 만들어낸다. 그게 오랜 시간 쌓이면 돌이킬 수 없을 정도로 망가진다. 바이브 코딩으로 무언가를 만들어냈다는 이야기는 계속 들리지만 그 서비스를 얼마나 지속했는지에 대한 이야기는 잘 들리지 않는 이유가 여기 있다고 생각한다.

그렇다면 소프트웨어 엔지니어는 대체되지 않는가? #

설계하는 사람이 시키는대로, 그저 요구사항대로 동작하도록 코드를 생산하기만 했던 사람들은 이미 AI에게 대체되고 있을 것이다. 그 영역에서는 이미 AI가 인간의 속도와 성능을 추월했다.

하지만 설계를 고민하고 검증하는 역할은 아직 대체되지 않을 것이라고 본다. 특히 검증의 영역은 쉽사리 대체되지 않을 것이다.

AI는 그럴싸한 결과를 만들어내지만 완벽하지 않다. AI는 코드 품질의 하한선을 높여주지만 인간이 필요 없을 정도로 품질이 높지도 않다. 그렇다는 것은 모든 것을 맡기기에는 부족하다는 뜻이다. 일정 수준의 품질로 생산하는 것은 최적화되었지만 그 이상은 사람의 손길이 필요하다.

어느정도의 검증은 AI도 수행할 수 있다. 하지만 AI에게 전적으로 검증을 넘겨주는 것은 검증하지 않는 것과 별반 다르지 않을 것이다. 왜냐하면 AI는 책임을 지지 않기 때문이다. AI에게 맡긴 코드에서 문제가 생기면 AI를 질책할 것인가? 하지만 결국 책임은 그 AI를 운용한 사람에게 있을 것이다. 그리고 책임이 사람에게 있는 이상, 책임자는 그 코드를 더 철저히 검증할수밖에 없다.

그렇다고 모든 것을 철저하게 검증하는 것도 낭비일 것이다. AI가 코드의 수준을 일정 수준까지 평준화할 수 있는 정도가 되기 때문이다. 그렇다면 사람은 코드 라인 한줄 한줄에 집중하기보다는 필요한 부분을 집중적으로 리뷰하는게 더 효율적일 것이다.

결국 소프트웨어 엔지니어의 역량은 구현보다는 검증 쪽으로 무게가 옮겨가고 있는게 아닐까.

결국 기본기가 중요하다 #

아직도 AI는 빠르게 변화하고 있고 어떤 결말이 찾아올지 알 수 없다. 하지만 지금의 AI를 잘 활용하려면 잘 작동하기만 하는 코드와 오랫동안 동작할 코드를 구분하고, 상황에 맞게 필요한 기술이 사용되었는지 판단하고, 불필요한 부분이 있는지 가려내는 능력이 필요하다.

이러한 검증을 잘 하기 위해서는 그 문제에 대해서 탄탄한 기본 지식과 경험이 쌓여야 한다. 결국 기본기다.

물론 어디까지가 기본기일지는 앞으로도 변화할것이다. 그리고 그 선이 어디인가는 아직 정의되지 않은 것 같다. 아마 AI의 발전이 어떻게 흘러가는지 계속 지켜보면서 판단해야 하지 않을까?

운영체제가 탄생하기 전에는 하드웨어에 어떤 명령을 내려야 하는지, 어떻게 메모리를 관리해야 하는지 등등을 자세히 알아야 했을 것이다. 하지만 운영체제의 탄생 이후로는 OS가 제공하는 시스템 콜을 사용하도록 추상화됐다.

C언어의 탄생 이전에는 시스템 프로그래밍을 위해 기계어와 어셈블리에 대한 이해도가 많이 필요했을 것이다. 하지만 C언어 이후 자세히 몰라도 구현할 수 있게 되었다. C언어 컴파일러가 기계어와 어셈블리어를 만들어주기 때문이다.

Java가 탄생한 이후 예전만큼 메모리 관리에 대해 알지 못해도 개발하는데 문제가 없어졌다. JVM의 GC가 메모리를 알아서 정리해주기 때문이다.

하지만 그렇다고 하드웨어를 직접 다루는 개발자, 기계어와 어셈블리어를 다루는 개발자, C언어 개발자는 사라지지 않았다. 대신 추상화 영역에 따라서 분화하고 전문화되었을 뿐이다. AI가 추상화하고 있는 영역에 따라 또 한번의 분화가 이루어질지도 모르겠다는 생각이 든다.

정말로 미래에 소프트웨어 엔지니어가 사라질까에 대한 답은 확실히 내릴 수 없다. 하지만 지금 드는 생각으로는, AGI가 탄생해서 모든 영역에서 사람을 뛰어넘지 못하는 이상 사람의 역할은 계속 존재하지 않을까 싶다. 다만, 그 역할이 바뀔 뿐이지.