아고라(agora)라는 skills를 만들며
지금까지 무언가를 만들어낼 때 그 과정 자체가 색다르다는 느낌을 주었으며, 마주한 결과물이 울컥하는 감동을 준 경우가 두 번 있다.
첫 번째는 2022년에 예술 전시를 위해 작품을 설치하던 순간이었다.
당시 참여 중이던 대전 아티언스 레지던시의 결과발표를 위해 전시장을 꾸며야 했는데, 그때 마침 애자일컨설팅의 김창준 님이 진행하신 건축가 Christopher Alexander(CA)에 대한 워크숍을 듣던 중이었다. 워크숍은 그의 저서들과 사상을 훑어보는 시간이었다. 그래서 <The Nature of order>(NOO)에서 배운 Center, Generative Sequence, Unfolding 등의 개념을 활용해 전시장을 꾸며보자는 생각을 했었다.
지금 생각해 보면 되게 이상한 순간이었다. 나는 전시장에서 흔히 볼 수 있는 흰색의 사각기둥 좌대를 관성처럼 내 전시장 입구 오른편에 놓았다. 입구의 바로 오른쪽은 월텍스트가 적힐 긴 벽이었고 입구와 그 벽 사이 모서리는 딱 좌대가 들어갈 만큼의 공간이 있었기 때문이다. 좌대 위에는 작업에 들어간 원본 데이터와 리서치 자료들이 들어갈 A4파일집을 올려놓을 생각이어서 그 위치가 너무나도 적절했던 곳이었다. 누구라도 그곳에 좌대를 놓았을 것이라고 확신한다. 그런데 문득 생각했다. '이게 맞아? 이걸 제일 먼저 놓아야 하는 건가?'
하던 것을 멈추고 빈 전시장을 둘러봤다. 그리곤 이렇게 생각했다. '내가 작업의 한 요소만 놓아야 한다면, 뭘 어디에 먼저 놓아야 하지? 다시 되돌릴 수 없다면 어떻게 할래? 그리고 이 모든 과정들이 내 작업의 정수를 반영하고 있나?' 이 생각을 하면서 나는 매 단계를 수행했다. 의외로 전시장에 작업을 설치하는 과정은 일사천리였다. 웃기게도 그 좌대는 처음에는 생각지도 못한 자리에 놓이게 되었다. 좌대의 위치를 고민해야 하는 단계에서 그것이 '놓일 수밖에 없는 위치'가 또렷하게 보였었다. 모든 것을 다 마무리 짓고 나는 뭔가 울컥하는 감정, 말 그대로 '감동이 밀려온다'라는 느낌을 문자 그대로 받았다.
두 번째는 이 글을 쓰게 된 계기인, 얼마 전에 아고라(agora)라는 skills를 만들 때였다.
시작은 단순했다. Claude Code를 사용하면서 내가 무언가를 만들 때 조금 더 도움 받을 수 있는 툴을 만들고 싶었다. 일방적으로 정보를 얻는 것보다는 소통하고 싶었고, 그 과정에서 나의 생각이 넓어지고 똑똑해지기를 바랐다. 그리고 이 과정에서 LLM이 지닌 넓은 지식, 잠재력을 최대한 끌어내서 활용하고 싶었다. 이때 메타포에 대한 생각을 했다. 전설적인 프로그래머 Ward Cunningham이 이런 말을 했었다. Firewall이라는 이름이 아니라 RainCoat였다면 완전히 다른 보안 시스템이 만들어졌을 것이라고. https://wiki.c2.com/?RaincoatMetaphor
나는 그래서 아고라(agora)를 떠올렸다. 고대 그리스에서 자유롭게 토론을 벌이던 장소였던. 파란 하늘과 광장, 그곳에 서있는 나를 상상을 했다. 그다음엔 무슨 일이 일어나야 하는 걸까? 나는 그냥 내 문제를 소리쳤다. 누군가는 이 외침에 반응할 것이라고 생각했다. 그랬더니 내가 말하는 문제에 딱 맞는 고민과 연구와 시도를 했던, 역사적인 누군가가 나타나 조언을 해주었다. 그가 나에게 자신의 의견을 말한다. 그런데 그다음에 다른 사람이 끼어든다. 처음에 나타난 사람이 A라고 한다면 이 사람은 B. A와는 정 반대의 경험, 생각, 세계관을 가진 사람이다. 그런데 B의 말이 끝나자 A가 반론을 하지 않고 A'이 등장한다. 그는 A의 핵심을 계승해서 자신의 새로운 무언가를 만든 사람이다. A'의 의견에는 역시 B'이 등장해 반론한다. 그런데 그다음에 지나가는 C가 의견을 낸다. 그는 지금 등장한 인물들과는 전혀 교점이 없는 역사적 인물이다. 하지만 그만의 렌즈로 앞선 이야기들을 바라보고, 연결 짓고, 통찰을 공유한다. 그런데 아고라에는 악마가 상주하고 있었다. 그는 여기까지 대화를 지켜보다가 devil's advocate의 역할로 이 대화를 메타적으로 정리한다. 이 순간에 아고라에 서있는 나 자신은 Metanoia(그리스어로 '생각의 전환', '마음의 변화'를 뜻하는 단어)의 시간을 갖는다. 그리고 발전된 생각은 다음 라운드의 씨앗이 되어 다시 이 프로세스를 반복하도록 만든다.
여기까지 상상이 미치자 나는 감고 있던 눈을 떴다. 그리고 이 내용을 Claude Code에게 그대로 설명해 줬다. 그렇게 만들어진 skills가 agora이다. 재미있게도 여기에는 어떤 데이터라고 할 것이 없다. 오히려 좋은 데이터를 만들 수 있는 프로세스에 대한 서술이 주로 되어있다. 그리고 대화가 진행될수록 모두가 더 똑똑해지는 구조를 설계하는 것에 중점을 두었다. 역사적인 인물들에 대한 데이터를 다 가지고 있지 않아도 된다. 핵심은 내 생각이 어렴풋하더라도 그걸 더 구체화하도록 도와주는 것, 그리고 그렇게 만들어진 씨앗이 아고라에 울려 퍼지게 하는 것, 그로부터 적합한 인물을 LLM으로부터 잘 불러오도록 했을 뿐이다.
agora skills를 최초로 사용해 볼 때 울컥했던 느낌이 아직도 생생하다. '내가 뭘 만들어낸 거지?'라는 묘한 느낌도 뒤따랐다. 이 느낌은 CA의 표현을 빌리자면 무언가를 '살아있게 만든다'라는 것을 내가 흉내라도 내봤다는 뿌듯함과, 마치 생명에 대한 설계도를 엿본 건 만 같은, 내가 무언가를 만들어내는 활동에서 '생명력'을 구현해 낼 수 있을 거라는 약간의 흥분감이 뒤엉켜있는 감정이었다.
내가 한 경험이 똑같이 재현될지는 모르겠다. 그렇지만 여기까지 글을 읽으셨다면 agora를 한 번쯤은 사용해 보셨으면 한다. 사용 경험이 별로였다면 오히려 좋은 걸지도 모르겠다. 이제 당신 스스로를 살아있게 만드는 무언가를 직접 만들 시간이라는 의미일 수도 있으니까.
https://github.com/UeberUeber/ueber-skills