어제 Codex가 공개되고 이번 주말에 이것저것 테스트해봤다.
처음엔 간단하지만 귀찮아서 계속 미뤄뒀던 로깅 작업부터 맡겼다. 무난하게 해냈다. 궁금해서 작업 방식을 물어보거나 베스트 프랙티스를 요청했는데, 이 역시 어렵지 않게 찾아냈다. '이 정도는 당연히 해야지' 하는 느낌.
이번에는 실제 지라 티켓에 있던, 좀 더 복잡한 프론트엔드와 백엔드 작업을 각각 넘겨줬다. 개발 환경과 테스트 방법만 간략히 알려줬을 뿐인데도, DB 마이그레이션은 물론 사람이 놓치기 쉬운 세부 사항까지 세심하게 챙겼다. 테스트를 돌리며 스스로 오류를 찾고 수정하고, 통과된 상태로 PR을 제출하는데, PR 내용이나 깃 커밋까지 능숙했다. 프론트엔드 역시 기대 이상이었다.
이쯤 되니 '이거 물건인데?' 하는 생각이 들었다. 마치 나만의 뛰어난 부사수를 얻은 듯했다. 과연 앞으로 Codex가 어디까지 갈 수 있을지 궁금해졌다.
이번에는 작업에서 나는 태스크를 던져주고 PR 리뷰만 진행했다. 물론 아직 리뷰에서 지적한 사항을 바로바로 고치는 수준은 아니지만 인상 깊었던 점은, 개발 환경만 잘 세팅해주면 스스로 컨테이너 환경에서 코드를 돌려보며 문제를 찾아냈고, 테스트 코드로 마치 TDD를 수행하는 듯한 능력을 보여줬다는 것이다.
몇 개월이나 1년 정도면 전통적인 시니어 개발자의 역할까지도 일부 가능하겠다는 생각이 문득 들었다. 그렇다면 지금 Codex를 신입 개발자로 봐야 할까? 신입을 대체할 수도 있을까? 사실 생각보다 답이 복잡하다.
전통적인 의미에서 신입 개발자라고 보기에는 Codex는 이미 그 수준을 훌쩍 넘어섰다. 그냥 뛰어난 신입 수준이 아니라 꽤 능숙한 시니어와 비교해도 부족함이 없다.
하지만 그렇다고 신입을 대체할 수 있느냐는 아직은 힘들다고 본다. Codex는 정의된 문제에 대한 솔루션 제공이나 문제 정의 과정에서 인간과 협력하는 수준이지, 스스로 문제를 정의하는 역량은 부족하다. 코드 내부 문제를 찾는 것은 가능하지만, 진짜 "문제"는 비즈니스 환경과 외부 요구사항에서 발생하는 것이기 때문에 코드 내부만 바라보는 것으로는 부족하다.
그렇다면 '시니어가 모든 문제를 정의해서 Codex에 넘기면 되지 않을까?'라는 생각도 가능하지만, 현실적으로 문제 정의는 기술적인 영역뿐 아니라 조직 내부와 외부의 다양한 사람과 소통해야 하는 영역이기도 하다. 이런 복합적이고 인간적인 부분까지 Codex가 맡기는 어려워 보인다.
한편으로는 '그러면 주니어는 뽑지 않고 시니어만 늘리면 되지 않나?' 생각할 수도 있지만, 현실은 그렇게 간단하지 않다. 회사의 자원은 항상 제한적이고, 결국 비용 대비 효율을 최대화하는 구조를 유지해야 한다. 스타트업이라면 이 고민이 훨씬 심각할 것이다.
미래는 어떨까? 가까운 미래는 생각보다 너무 빨리 올 것 같아 예측하기 어렵다. 좀 더 먼 미래를 생각하면, 개발이란 행위 자체가 어쩌면 취미의 영역으로 남을지도 모르겠다는 생각이 든다. DSLR 카메라가 이미 골동품 취급받는 시대에도, 여전히 필름으로 사진을 찍는 사람이 있는 것처럼 말이다.