GPT로부터
코로나 시즌이 채 가시지 않은 시기, 나는 21년의 시작과 함께 큰 부상이 있었다. 움직임은 줄어들었고, 침상 위에 있는 시간은 압도적이었다. 원래 계획은 Graphic, UX/UI 디자이너로 포트폴리오를 정리해서 전공을 갖고 디자이너가 되고자 했지만, 내 신체 상태와 환경적인 요소는 각각 레이턴시를 만들었다. 이르지 않은 나이. 전공을 버리던 살리던, 뭘 하던 당장 내 밥벌이를 곧 해야한다고 생각했다.
21년에는 아직 디자이너의 꿈을 버리지 않았다. 내 본연적 즐거움, 탐미주의적 성향과 비주얼리스틱한 것에 대한 끌림. UX/UI 디자인에서 웹의 언어를 보고, 마우스가 아닌 언어의 논리적 조합으로 그래픽이 탄생한다는 것은 엄청난 충격으로 다가왔다. 그때부터 22년까지 개발자와 디자이너 사이에서 고민했던 것 같다. 하지만 결국 개발자에 조금 더 무게가 실렸던 이유는 ‘Interactivity’ 였던 것 같다.
이미지는 아름답지만 정적이고, 공유하기도 쉽지 않다. 지인에게 공유하고자 하면 메신저를 이용하면 된다. 익명성을 이용한 공유를 하려면 결국 웹 공간에 업로드하고 확산시켜야 한다. 플랫폼 정책을 따라야 할 거고, 거기서 오는 한계도 작지 않다. 동영상은 이미지보다 동적이지만 역시나 한계가 있고, 심지어 무겁다.
그런 나에게 웹이라는 공간은 너무나 아름다웠다. 누구나 공유하고 감상할 수 있다. 창작에 있어 자격은 없지만, 존재하는 플랫폼만 이용할 게 아니고, 경험조차 정의하고 싶다면 기술이 필요했다. 그래서 나는 개발자의 길을 택하고 곧장 맥북 프로를 구입해서 비용을 만들었다. 그럼 그 비용이 아쉬워서라도 투자로 만들기 위해 열심히 노력할 것만 같았으니까.
개발이 조금은 익고, Tabnine AI로 첫 인공지능 도구를 접했다. 당시 Tabnine AI는 더 나은 인텔리센스처럼 기능했다. 코드를 써내려갈 때마다 내 마음을 읽는듯한 자동완성이 동작했다. ‘치팅인가?’ 싶다가도 어떤 구조와 알고리즘을 사용해야할지 판단해 코드를 작성하거나, 서비스 코드를 작성하는 시간을 효율적으로 다룰 수 있는 좋은 도구란 느낌이 보다 컸다. 좋은 코드보다는 제품, 기능, 방법론 등에 비중을 싣게 되는 시작이 이때부터 였을까? 물론 좋은 코드가 중요하지 않다는 건 아니다. 입사 첫 해는 스스로 좋은 코드를 작성하지 못하는 것이 아쉬웠고, 여전히 좋은 코드를 작성하는 기쁨이 있으며, AI에게 좋은 코드를 작성하게 할 방법을 궁리하고 있다.
아무튼 그 다음은 흔히 말하는 GPT 모먼트, ChatGPT의 등장이다. GPT 3.5 모델의 등장과 함께 ChatGPT라는 일반 사용자용 서비스의 등장. 지금의 AI 서비스들보다 레이턴시도 크고, 환각도 잦았다. 그럼에도 신기했다. 백엔드도 잘 모르고 데이터도 모을 줄 모르는 당시의 나에게, 사용자가 비정형 데이터를 가져와도 그럴듯한 서비스로 만들어줄 수 있다고 느꼈다. 나는 곧장 text-davinci-003 모델을 API로 이용해서 아이디어를 발산했다. 키워드 키반의 컬러 팔레트 아이데이션 서비스, 이력서, 자기소개서, 사이드 프로젝트 분석 및 평가 서비스를 만들었다. API 비용 효율은 지금보다 나빴지만 썩 부담은 아니었고, 프롬프트를 템플릿화하는 것도 그때 처음 알게된 것 같다.
당연히 ChatGPT로 GPT 3.5 (turbo) 모델도 사용해보고, 지금은 Gemini로 리브랜딩된 Google Bard도 사용해봤다. 그 때는 Bard가 GPT 3.5보다 마음에 들었는데 갑자기 사라진 건 조금 아쉽긴 했다. 그리고 당시는 편입 이전이라 GitHub Copilot을 결제할 돈이 아까워 베타로 출시된 Amazon Q Whisperer를 사용했었는데, Tabnine AI보다 더 강력한 자동완성, 꽤 마음에 드는 챗봇 기능으로 한동안 썼던 기억이 있다. 이후 학생 혜택을 이용한 GitHub Copilot도 써보고, 계속 좋아지는 ChatGPT, 리브랜딩된 Gemini, 새로이 등장한 Claude까지 많은 도구를 사용해봤다. 이후 사내 해커톤에서 처음으로 Cursor를 사용했는데, 기술 문서를 읽지 않고도 라이브러리와 프레임워크의 API가 매끄럽게 이어지고 기능이 완성되는 모습을 보며 적잖은 충격을 받았다. VS Code에 Cline과 Ollama로 연동한 Llama 3로도 코드를 작성했던 적이 있었고, 우선 예약을 통해 JetBrains의 Junie 에이전트도 써 본 기억이 있다.
그렇게 많은 걸 써봤지만 결국 Cursor를 꽤 장기간 사용했고, 25년 말 Google에서 Antigravity라고, 꽤 매력적인 Cursor의 대항마를 출시하면서 잠시 번걸아 사용했었다. 그러나 그것도 보름 정도, 이후 새로 채택한 Claude Code, Codex는 AI 개발 도구 시장을 뒤엎을 정도로 강력했다. 현재까지도 많은 업무를 위임할 정도로 정말 압도적인 생산성을 느끼고 있다. 나는 요즘 꽤 파워풀해졌고, 그럴듯한 걸 무척 빠르게 만들어 냈고, 내가 동경했던 개발자들에 가까워지고 있다고 느꼈’었‘다.
찰스 배비지는 두 차례 연산 기계를 만들고자 했으나, 두 시도 모두 결국 실패로 돌아갔다. 여러 방면의 지식에 능통하고 재력 지원도 많았으며, 아이디어는 넘쳤다. 그런 그가 실패했던 이유는 여럿 중에서도 디테일이었다. 축과 크랭크 등 수많은 부품들의 위치, 각도, 결합 강도까지 미세한 조정이 있어야 했고, 심지어 설계와 디테일은 계속해서 바꾸어 버렸다. 당시의 가공, 연마, 제련 기술도 적절히 뒷받침되지 않았겠지만, 하나를 끝까지 붙잡고 끝내는 것이야 말로 정말 지루하고 재미없는 일이었을 것이다.
AI 도구들로 만들어내는 각종 IT 서비스들, 그럴듯한 서비스가 아니라 정말 프로다운 제품을 만들고자 한다면 그런 디테일이 꼭 필요하다. 언어와 프레임워크가 그렇게 많을 이유는 뭐고, 우아한 예외 처리는 왜 고집하며, C와 Assembly로 모든 걸 좋은 성능으로 만들 수 있음에도 그렇지 않은 이유는 무엇인가? 좋은 기술이 꼭 좋은 비즈니스를 만드는 것도 아니다.
개발자들에게 중요한 건, 개발자들이 중요했던 건, 커다란 비전과 아이디어가 현실로 랜딩할 수 있도록 디테일을 잡는 능력을 키워왔기 때문이다. 각종 인재상과 구인 공고에 내걸려있는 문제 정의, 문제 해결, 트레이드 오프의 비교, 기업들이 외치는 비즈니스 사례들.
거품이 빠지면, 드러남은 적나라하다. 나는 겨우 극히 추상화된 도구를 쥐고 휘두른 것 같다. 이것이 마법이라면, 그건 요술봉이 부려줬을 뿐, 내가 마법을 부릴 줄 알아서 부린 게 아닌데. 내가 입사한지 얼마 되지 않았을 때, 게임사 출신의 전 팀장님은 소프트웨어로 더이상 못 깎을 때에야 하드웨어를 생각하고, 또 필요하다면 하드웨어의 영역까지 생각할 수 있어야 한다고 하셨다. 지금 생각해보면 아는 게 없는데 AI에게 어떤 해결을 요구할 수 있겠는가? 당장 IT의 축을 이루는 근원적 지식의 보충부터, HCI적 사고의 확장까지 향해야 함이 느껴지지 않을 수 없다.
내가 패션디자인부터 프론트엔드, 최근에는 에이전트 개발까지, 돌이켜보면 나는 경험과 생각을 어떻게 표현해서 공유할 지에 대한 고민으로 흘러왔고, 여전히 그 사고로 관통하고 있다고 생각한다. 경험은 하루 아침에 매개도 없이 나오는 것이 아니고, 그 전제에는 ‘인간의’ 경험이라는 접두어가 내포되어 있다.
나는 얼리어답터적 기질에 도취해 지적 유희를 채워줄 그럴듯한 서비스를 찍어내는 것보다, 프로답게 라스트마일까지 책임지며 사람을 위한 제품을 만들고 싶다.