몇 년 전, 한 동료가 “이제 개발자는 글 쓰는 사람이 되어야 한다”고 농담처럼 말했다. 당시엔 그 말이 반은 진담이었음을 몰랐다. 코드를 짜는 일은 점점 더 자동화되고 있지만, 그 코드가 무엇을 위한 것인지 설명하는 일은 여전히 인간의 몫으로 남아 있다. 마치 목수가 톱과 망치를 기계에 맡기더라도 무엇을 만들지 결정하는 건 여전히 자신의 손과 눈인 것처럼.
소프트웨어 개발에서 AI 도구의 역할은 이제 부인할 수 없는 현실이 되었다. 코파일럿이 제안하는 코드 스니펫을 거부하는 개발자는 거의 없다. 반복적인 보일러플레이트 코드, 단순한 API 호출, 심지어 복잡한 알고리즘의 뼈대까지도 AI가 생성해내는 속도는 인간의 손으로는 따라갈 수 없다. 하지만 그 코드가 실제로 작동하는지, 더 나아가 그 코드가 ‘올바른’ 문제를 해결하고 있는지는 여전히 개발자의 판단에 달려 있다.
여기서 흥미로운 역설이 등장한다. 코딩은 점점 더 기술적인 작업에서 추상적인 작업으로 변모하고 있다. 예전에는 포인터 연산이나 메모리 누수 같은 저수준 문제를 해결하는 것이 개발자의 주요 업무였다면, 이제는 AI가 생성한 코드의 의도를 해석하고, 그 코드가 비즈니스 요구사항을 제대로 반영하고 있는지 검토하는 것이 더 중요한 과제가 되었다. 코드는 더 이상 ‘쓰는’ 것이 아니라 ‘읽고 이해하는’ 대상이 된 셈이다.
하지만 글쓰기는 사정이 다르다. 코드는 엄격한 문법을 따르고, 컴파일러라는 절대적인 심판관이 존재한다. 반면 글쓰기는 모호함과 해석의 여지를 허용한다. AI가 생성한 글은 문법적으로는 완벽할지 몰라도, 그 안에 담긴 논리적 일관성이나 맥락에 대한 깊은 이해는 여전히 인간의 영역이다. 기술 문서, 설계 문서, 심지어 단순한 이메일까지도 AI가 작성할 수 있지만, 그 내용이 실제로 독자에게 전달하고자 하는 의미를 담고 있는지는 별개의 문제다.
AI는 코드를 작성할 때 ‘어떻게’에 집중하지만, 개발자는 ‘왜’에 집중해야 한다.
이 차이는 단순히 기술적인 문제를 넘어 철학적인 질문으로 이어진다. 코딩은 도구적 행위지만, 글쓰기는 사고의 연장이다. AI가 코드를 짜는 동안 개발자는 그 코드가 어떤 문제를 해결하고, 어떤 가치를 창출하는지 고민해야 한다. 이는 마치 건축가가 설계도를 그리는 동안에도 그 건물이 어떤 공간을 만들어낼지, 그곳에서 사람들이 어떻게 살아갈지를 상상하는 것과 비슷하다.
물론 AI 도구의 발전은 개발자의 역할을 완전히 바꾸어 놓을 것이다. 이미 많은 기업에서 AI가 코드 리뷰를 수행하고, 버그를 발견하며, 심지어 아키텍처 제안까지 하고 있다. 하지만 이러한 변화는 개발자를 대체하는 것이 아니라, 그들의 역할을 재정의하는 과정이다. 개발자는 이제 더 이상 ‘코드 생산자’가 아니라 ‘문제 해결사’로 거듭나야 한다.
이러한 변화는 개발자에게 새로운 도전과 기회를 동시에 제공한다. AI가 반복적인 작업을 대신해주면서, 개발자는 더 창의적이고 전략적인 업무에 집중할 수 있게 되었다. 하지만 동시에, 그들은 AI가 생성한 결과물을 비판적으로 평가하고, 그 한계를 이해해야 하는 새로운 책임을 지게 되었다. 이는 마치 조수가 그림을 그려주는 화가가 그 그림의 완성도를 판단하고, 필요할 경우 수정해야 하는 것과 같다.
결국 중요한 것은 기술의 발전이 인간의 사고를 대체하는 것이 아니라, 인간의 사고를 확장하는 도구가 되어야 한다는 점이다. 코딩은 AI에게 맡기더라도, 그 코드가 왜 필요한지, 어떤 문제를 해결해야 하는지에 대한 고민은 여전히 인간의 몫이다. 그리고 그 고민을 글로 표현하는 일은 AI가 결코 대신할 수 없는, 순전히 인간의 영역으로 남아 있을 것이다.
이 에세이의 영감은 여기에서 찾을 수 있다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.