AI 코딩 어시스턴트가 좋아지면서 "이제 개발자가 필요 없어진다"는 말이 자주 들립니다. 실제로 바뀐 건 필요 여부가 아니라, 개발자가 시간을 쓰는 지점입니다.
예전에는 요구사항을 받고, 설계하고, 코딩하고, 테스트하고, 배포했습니다. 지금은 코딩 자리에 "AI와 함께 짜고 그 결과를 검증하는" 단계가 들어갑니다. 순서는 비슷한데 무게중심이 옮겨갔습니다.
문제를 정의하는 일은 넘어가지 않았다
AI는 주어진 문제를 푸는 데 강합니다. 어떤 문제를 풀어야 하는지 정하는 일은 그대로 사람에게 남았습니다.
"로그인 기능 만들어줘"라고 하면 AI는 무언가를 만들어 줍니다. 그게 내가 원한 물건일 확률은 낮습니다. "사용자가 로그인할 때 이메일 인증을 거치게 해줘. 인증 링크는 24시간 유효하고, 한 번만 쓸 수 있어야 해"라고 적으면 결과가 달라집니다. 차이를 만든 건 프롬프트 기술이 아니라 요구사항을 얼마나 또렷하게 알고 있었느냐입니다.
모호한 비즈니스 요구를 구체적인 기술 요구로 옮기는 작업. 이게 첫 번째입니다.
구조를 정하는 일도 마찬가지다
AI는 함수 하나, 컴포넌트 하나를 잘 만듭니다. 시스템 전체의 모양을 정하는 일은 다릅니다.
마이크로서비스로 갈지 모놀리식으로 갈지, 상태를 어디에 둘지, 테이블을 어떻게 쪼갤지, API 경계를 어디에 그을지. 확장성과 유지보수성과 성능을 놓고 저울질하는 판단은 코드 조각만 봐서는 나오지 않습니다.
검증이 새 일감이 되었다
전에는 코드를 쓰는 데 시간을 썼습니다. 지금은 코드를 읽고 판단하는 데 씁니다.
AI가 내놓은 코드에도 버그가 있고, 보안 취약점이 있고, 성능 문제가 있습니다. 그럴듯해 보인다는 점이 오히려 위험합니다. 문법이 어색하면 의심하게 되는데, 매끄러우면 그냥 넘어가게 되니까요.
머지 전에 확인할 것들은 예전과 크게 다르지 않습니다. 요구사항을 만족하는가, 보안 구멍은 없는가, 성능은 괜찮은가, 테스트는 붙었는가, 문서는 남겼는가. 달라진 건 이 목록을 도는 빈도입니다.
나머지 넷
프롬프트를 잘 쓰는 능력은 결국 컨텍스트를 잘 주는 능력입니다. 명확한 요구사항에 배경과 제약을 붙이고, 결과를 보고 다시 좁혀 들어가는 반복. 마법 같은 문구는 없습니다.
기술을 아는 것만으로는 부족합니다. 그 기술이 어떤 비즈니스 문제를 푸는지 읽어낼 줄 알아야 합니다. 사용자 관점에서 생각하고 비용 대비 효과를 따져 도구를 고르는 일은 AI가 대신 해주지 않습니다.
학습 속도는 그 자체로 경쟁력이 됐습니다. 새 도구가 계속 나오고, 작년에 익힌 방식이 올해 낡습니다.
그리고 AI와 잘 협업하는 능력이 주목받지만, 결국 일은 사람과 하게 됩니다. 복잡한 프로젝트는 혼자 못 하고, 비개발자와 말이 통해야 하고, 팀 안에서 아는 것을 나눠야 합니다.
코딩 능력은 어디로 갔나
문법을 정확히 외우고, API 시그니처를 기억하고, 복잡한 알고리즘을 백지에서 구현하는 능력. 이게 예전의 코딩 능력이었습니다.
지금은 문제를 정의하고, AI가 만든 코드를 이해하고 검증하고, 상황에 맞는 도구를 고르는 쪽으로 무게가 옮겨갔습니다. 암기가 덜 중요해진 만큼 판단이 더 중요해졌습니다.
주니어라면
기본기입니다. 프로그래밍 기본 개념, 자료구조와 알고리즘, 소프트웨어 공학 원칙.
"AI가 있으니 이건 건너뛰어도 되지 않나"라는 생각이 가장 위험합니다. 기본기가 없으면 AI가 준 코드가 맞는지 틀린지 판단할 수가 없습니다. 이해하지 않고 갖다 쓰는 순간, 배울 기회도 같이 날아갑니다.
반대쪽 함정도 있습니다. 변화를 거부하고 쓰던 방식만 고집하는 것. 새 도구를 아예 안 들여다보는 것. 이쪽도 결과는 같습니다.
그래서 남는 이야기
코딩 능력이 필요 없어진 건 아닙니다. 다만 그것만으로는 부족해졌습니다. 개발자의 역할은 사라진 게 아니라 옮겨갔고, 그 자리가 어디인지 아는 사람과 모르는 사람의 간격은 앞으로 더 벌어질 겁니다.
