저는 AI를 매일, 적극적으로 사용합니다.
코드 작성, 자료 검색, 문서 요약, 유튜브 영상 정리, 코드 리뷰. 개발 사이클 전반에 걸쳐 AI가 들어와 있습니다.
생산성이 올라가는 건 부정할 수 없고, 이제 없이 일하는 게 오히려 어색합니다.
"AI가 개발자들을 대체할까요?" 라는 질문이 종종 보입니다. 그런 질문에는 이렇게 답할 수 있습니다.
대체 가능한 개발자와 대체불가능한 개발자로 나뉩니다.
AI는 가장 익숙한 답을 만듭니다
“대시보드를 만들어줘”라고 하면 AI가 가장 익숙하다고 생각되는 대시보드가 나옵니다.
“대시보드”라는 단어 하나에 수많은 구체적 대시보드들의 공통된 형태가 압축되어 있고, AI는 그 추상화된 개념을 기반으로 결과를 만들어냅니다.
이 추상화를 구체화하기 위한 도구들이 있습니다. 디자인일 수도 있고, 기획서가 될 수도 있고, MCP, Skills, 프롬프트 등등. 이 도구들의 역할은 하나입니다. AI가 임의로 결정해야 하는 영역을 줄이는 것입니다.
예전과 크게 달라진 건 없습니다
회사에 입사했는데, 이전 개발자가 아무런 문서도 남기지 않고 떠났습니다.
어쨌든 개발을 해야 하니 코드를 열어보고는 한숨부터 나옵니다.
분명 동작은 잘 하는 것 같은데, 화면과 코드가 매칭이 되지 않아 시작점을 찾는 것부터가 어렵습니다.
기획서를 붙잡고 코드를 눈에 익히며 온보딩 기간을 보냅니다.
낯선 코드를 읽는 고통은 AI가 없던 시절에도 같았습니다.
다른 점이 있다면, AI가 생성한 코드는 이전 개발자보다 조금 그럴듯하게 생겼습니다.
변수 이름도 적절하고, 폴더명도 그럴듯하고, 로직도 돌아갑니다.
대체 가능한 개발자
AI가 생성한 코드를 검토 없이 올리는 개발자를 생각해봅시다.
- 코드가 동작하는지는 확인합니다.
- 하지만 왜 그렇게 설계됐는지 설명하지 못하고, 이 구조가 지금 팀에 맞는지 판단하지 못합니다.
- 요구사항이 바뀌었을 때 어디를 고쳐야 할지 모릅니다.
- 지금 동작하면 충분하다고 생각합니다.
- 코드가 터지면 “AI가 짠 코드라서요”라고 말합니다.
정확히 “AI가 짠 코드라서요”라고 하진 않겠지만, 답변이 크게 다르진 않을 것입니다.
앞서 말한 문서 없이 떠난 개발자와 다를 게 없습니다. 그리고 그 자리를 AI가 대신하는 건 이미 어렵지 않습니다.
대체 불가능한 개발자
그렇다면 대체 불가능한 개발자는 무엇이 다를까요.
1. 맥락
코드는 팀 안에서, 제품 안에서 존재합니다. “이 구조가 지금 우리 팀에 맞는가”, “이 시점에서 이 트레이드오프가 옳은가”, “어떤 우선순위로 개발해야 하는가” — 이 질문에 답하려면 코드 밖을 알아야 합니다.
더 나아가, AI는 주어진 문제를 풀지만 그게 진짜 문제인지는 의심하지 않습니다. 문제를 올바르게 정의하는 것, 그리고 언제 AI를 믿고 언제 의심할지를 판단하는 것도 맥락에서 나옵니다. AI는 코드를 보지만, 그 코드가 놓인 맥락은 보지 못합니다.
2. 통제와 점검
AI의 출력은 비결정적입니다. 그래서 “AI가 올바른 결과를 냈는지 어떻게 아는가”라는 문제가 생깁니다. 결과가 맞는지 판단하려면 결국 그 결과를 이해하는 사람이 있어야 합니다.
대체 불가능한 개발자는 AI에게 맡긴 이후에도 계속 개입합니다. 명세에 맞게 작업하고 있는지 점검하고, 예상치 못한 방향으로 흘러갈 때 잡아줍니다. AI는 “대충 비슷한 것”을 잘 만들지만, “정확히 이것”을 만드는 데는 사람의 눈이 필요합니다.
3. 책임
AI가 코드를 작성하더라도, 책임은 사람이 집니다. 오류가 발생했을 때 원인을 추적하고, 설계 의도를 설명하고, 고칠 수 있어야 합니다.
책임이 있어야 설명이 가능하고, 설명이 가능해야 팀이 움직입니다. 코드 리뷰에서 근거를 제시하고, 결정을 동료에게 납득시키는 것도 책임의 연장입니다. 그리고 책임을 지는 사람은 코드를 다르게 씁니다 — 내가 나중에 이 코드를 설명해야 한다는 걸 알기 때문에.
그런 개발자는 대체할 수 없습니다.
결국 AI가 코드를 작성하는 시대에 개발자의 역할이 사라지는 게 아니라, 무게중심이 이동하는 것입니다.
추상화된 결과물을 구체화하고, 비결정적인 과정을 통제하고, 판단하고, 책임지는 쪽으로.
생각해보면 이건 우리가 늘 해오던 일입니다.
추상화를 다루고, 구체화하고, 그 사이의 결정을 내리는 것. 도구가 바뀌었을 뿐입니다.