AI는 시스템을 설계하지 않는다
올해 2월부터 팀장님과 새로운 프로젝트를 개발을 시작했습니다. 유저 행동 기반 마케팅 툴인데요, 사내에서 새로운 마케팅을 런칭할때 서비스 코드를 수정할 필요 없이 유저의 행동에 조건을 걸고 알림이나 웹훅을 발송할 수 있는 서비스입니다. 제가 경험한 프로젝트 중에선 가장 요구사항이 복잡하고 구현하기 까다로웠던 것 같습니다.
마침 AI 코딩이 빠르게 확산되던 시기였기 때문에 저와 팀장님 모두 이번 프로젝트에선 적극적으로 AI 를 사용했습니다. 요구사항부터 모듈별 구현 계획 문서, 실제 구체화 코딩까지 모두 AI 모델의 도움을 받고 만들었습니다.
코드를 기준으로 말씀드리면 초기 코드의 80%는 AI가 문서를 보고 만들었구요, 나머지 20%는 인간이 코드를 따라가면서 부족한 부분을 AI의 도움을 받으며 채웠습니다. 인간의 개입이 제로는 아니었지만 거의 모든 코드를 AI가 작성 했다고 봐도 무방할 것 같네요.
AI 코딩 도입 전후 생산성의 차이가 별로 없다는 연구 결과가 있지만 제 생각은 다릅니다. 예전 같으면 4개월 정도 소요될 일을 2개월 정도만에 완료했으니 거의 절반 가까이 줄었고 야근까지(?) 불사하지는 않아도 됐을 정도니 실제 업무 효율은 그것보다 높아 졌다고 볼 수 있을 것 같습니다. 게다가 실수가 잦을 만한 부분들에 대해서는 초집중 모드를 하지 않아도 됐으니 체력 측면에서도 꽤 이득을 많이 봤다고 할 수 있겠네요.
이번 프로젝트의 경우 아키텍처 설계는 팀장님이 잡아주셨는데요, 설계하시는 동안 저도 제 나름대로 AI의 도움을 받아 설계를 하면서 결과물을 만들어봤습니다. 그런데 팀장님의 코드를 보니 분명한 차이를 느낄 수 있었습니다. 둘다 동작하는 코드였지만 팀장님이 만든 코드가 가용성, 안정성, 확장성 측면에서는 완성도가 높았지요. 똑같은 AI를 사용했지만 사용자에 따라서 결과물은 달랐습니다.
이번 기회에 AI를 많이 써보면서 조심스럽게 현재 AI의 역할과 한계점에 대해 나름대로 정의를 해보게 됐습니다. 지금 AI는 코딩을 매우 잘하는 부하 직원에 가깝습니다. 무슨 일을 시키느냐에 따라서 퀄리티가 천차 만별 달라지죠. 직장 언어로 표현하면 상사가 누구냐에 따라서 달라진다는 말로 할 수 있을 것 같습니다.
언젠가는 AGI에 도달해 완벽한 아키텍처까지 짠하고 만들어 줄 수 있을 겁니다. 하지만 현재로선 여전히 한계가 있는 것 같습니다. AI는 코드를 대신 써주지만 좋은 시스템을 대신 설계해주지는 않습니다. AI가 폭풍처럼 산업계에 밀고 들어오고 있습니다만 여전히 소프트웨어를 만드는 건 사람이라고 말 할 수 있을 것 같네요.
돌아가는 코드와 사용할 수 있는 코드는 다릅니다. 업계에 계신 분들이라면 무슨 말인지 직감하실 겁니다. 똑같은 인공지능 모델을 사용하더라도 누가, 어떻게 지시를 하느냐에 따라서 완성도 있는 결과물이 나옵니다.
Quality in Qulity out 은 여전히 유효합니다. 만족스러운 결과물을 구현하기 위해선 여전히 배움이 필요한 것 같습니다. 결코 딸깍은 없었습니다. 빠르게 변화하는 업무 환경 속에서 AI에게 '어떻게 일을 시킬 것인지'를 생각해보게 되는 1분기 였습니다.