들어가며
개발자 역할에 대한 어떤 글 하나를 읽고, 인상 깊었던 내용을 정리해보려고 한다.
원문 링크: https://www.facebook.com/story.php?story_fbid=10231490731273196&id=1286083876
이 글의 질문은 단순하다.
AI가 기존 코드를 기가 막히게 짜깁기하는 시대라면, 인간 개발자의 진짜 가치는?
AI는 이미 코드를 꽤 잘 쓴다. 간단한 기능 구현, 리팩터링, 테스트 코드 작성, 문서화 같은 일은 예전보다 훨씬 빨라졌다. 이제 개발자는 무엇을 해야 하지?
AI는 빈칸을 잘 채운다
글에서는 LLM을 interpolation에 강한 모델로 설명한다.
LLM은 지금까지 학습한 수많은 데이터와 현재 주어진 context를 바탕으로 다음 토큰을 예측한다. 쉽게 말하면, 이미 세상에 많이 존재하는 패턴 사이의 빈칸을 아주 잘 채운다.
기존 코드 스타일을 따라 구현하거나, 자주 등장하는 구조를 조합하거나, 알려진 문제 풀이 방식을 가져오는 일에는 강하다. 이미 많은 사람이 해본 일, 인터넷 어딘가에 흔적이 많은 일, 패턴이 충분한 일일수록 AI는 더 잘한다.
하지만 완전히 새로운 방향으로 스스로 뛰어넘는 일은 아직 어렵다.
글에서는 이것을 interpolation과 extrapolation의 차이로 설명한다. 데이터가 빽빽하게 모여 있는 구체 안의 빈 부분을 채우는 것은 interpolation이다. 반면 그 구체에서 멀리 떨어진 새로운 지점으로 나아가는 것은 extrapolation이다.
AI는 구체 안을 밝히는 데 강하지만, 구체 바깥으로 혼자 점프하는 데는 아직 한계가 있다.
인간은 평균적인 존재가 아니다
LLM은 평균적인 패턴을 따라간다. 주어진 context에서 사람이 가장 말할 법한 것을 예측한다. 하지만 인간은 꼭 그렇게 작동하지 않는다.
사람은 생각보다 고집이 세고, 편향되어 있고, 자기만의 취향과 직관을 가진다. 모두가 같은 데이터를 본다고 해서 같은 결론에 도달하지 않는다. 오히려 같은 정보를 보고도 완전히 다른 방향으로 해석한다.
이것은 문제이기도 하지만, AI 시대에는 장점이 될 수 있다.
모델은 평균적인 방향으로 가려 하지만, 인간은 자기만의 직관으로 모델을 다른 방향으로 끌고 갈 수 있다. 모델이 기존 지식의 구체 안에 머무르려 할 때, 인간은 context를 바꾸고, 질문을 바꾸고, 전제를 바꾸면서 모델을 바깥으로 밀어낼 수 있다.
즉, 인간의 역할은 AI가 답을 내도록 기다리는 것이 아니라, AI가 탐험할 좌표를 정하는 데 있다.
개발자는 CEO가 아니라 탐험가일 수도 있다
요즘 AI 이야기를 하다 보면 자주 나오는 비유가 있다.
이제 사람은 직접 일하는 사람이 아니라, 여러 AI agent를 부리는 CEO가 되어야 한다는 말이다. 물론 어떤 상황에서는 맞는 말이다. 간단한 제품을 만들거나, 최종 사용자가 사람이고 결과를 눈으로 바로 판단할 수 있는 경우라면, AI에게 일을 맡기고 결과를 보면서 수정하면 된다.
예를 들어 주식 차트를 보여주는 대시보드를 만든다고 해보자. 이 경우에는 내부 코드가 아주 완벽하지 않아도, 사용자가 직접 써보면서 “코스닥 차트도 보여줘”, “필터를 추가해줘”라고 요청하면 된다. 결과물이 눈에 보이고, 피드백도 비교적 쉽다.
하지만 모든 일이 그렇게 단순하지는 않다.
정답이 명확하지 않은 시스템을 설계하거나, 추상화 계층이 깊은 문제를 다루거나, 자연 세계와 맞닿은 문제를 풀 때는 이야기가 달라진다. 이때는 AI가 코드를 많이 만들어준다고 해서 사람이 편해지기만 하는 것이 아니다.
오히려 사람이 이해해야 하는 코드와 설계의 양이 늘어난다.
AI가 여러 구현을 빠르게 만들어주면, 사람은 그중 무엇이 더 나은지 판단해야 한다. 이 판단을 하려면 결국 이해해야 한다. 코드는 AI가 쓸 수 있지만, 이해는 외주 줄 수 없다.
구현 비용이 낮아지면, 이해해야 할 세계는 커진다
AI는 구현의 복잡도를 줄여주지만, 이와 비례하게 다룰 수 있는 문제의 크기를 키운다.
예전에는 구현 비용이 너무 커서 하나의 아이디어를 실험하는 데도 많은 시간이 들었다. 그래서 충분히 좋은 설계인지 확신하지 못해도, 한 번 정한 방향으로 밀고 가야 하는 경우가 많았다.
하지만 이제는 다르다.
AI 덕분에 여러 설계를 빠르게 구현해보고 비교할 수 있다. 한 가지 방법만 겨우 시도하는 것이 아니라, 여러 가능성을 실제 코드로 확인할 수 있다.
그렇다면 인간의 역할은 “코드를 직접 짜는 것”에서 “여러 가능성 중 무엇이 더 옳은지 판단하는 것”으로 이동한다.
문제는 이 판단이 쉽지 않다는 것이다. 판단하려면 구조를 알아야 하고, 맥락을 알아야 하고, 디테일을 이해해야 한다. AI가 코드를 더 많이 만들어줄수록, 인간은 더 많은 결과물을 읽고 이해해야 한다.
그래서 AI 시대의 개발자는 덜 생각하는 사람이 아니라, 오히려 더 복잡한 것을 이해해야 하는 사람이 될 수도 있다.
이해력과 논리력
글에서 말하는 탐험가는 단순히 AI를 잘 쓰는 사람이 아니다.
탐험가는 아직 지도가 밝혀지지 않은 곳으로 가는 사람이다. 남들이 이미 많이 간 길을 더 빠르게 가는 사람이 아니라, 아직 정답이 없는 곳에서 방향을 정하는 사람이다.
그런 사람에게 필요한 것은 모델을 능가하는 이해력과 논리력이다.
AI가 그럴듯하지만 틀린 말을 할 때, 그것이 왜 틀렸는지 알아차릴 수 있어야 한다. AI가 만든 코드가 동작은 하지만 구조적으로 위험할 때, 그 위험을 설명할 수 있어야 한다. AI가 평균적인 답을 낼 때, 지금 문제에서는 왜 다른 방향이 필요한지 판단할 수 있어야 한다.
결국 AI를 잘 쓰려면, 역설적으로 AI보다 더 깊게 이해해야 하는 부분이 생긴다.
마치며
모델을 어디로 데려가야 하는지 알고, 그 결과물이 맞는지 판단할 수 있고, 평균 바깥의 방향을 상상할 수 있는 역할을 할 수 있는 역량에 대해 생각해보자.
특히 프론트엔드나 그래픽, 인터랙션처럼 취향과 구현 디테일이 함께 중요한 영역에서는 더 그런 것 같다. AI가 컴포넌트를 만들고, 애니메이션 코드를 짜고, 셰이더 예제를 만들어줄 수는 있다. 하지만 어떤 움직임이 좋은지, 어떤 인터랙션이 자연스러운지, 어떤 구조가 나중에 확장 가능한지는 결국 사람이 판단해야 한다.
결국 중요한 것은 이해하고, 의심하고, 더 멀리 끌고 갈 수 있는 능력이겠다.