You can make anything
by writing

C.S.Lewis

AI를 활용한 비유법과 프로그래밍

코드 한 줄 못 읽는 디자이너가, 비유법으로 공부해 앱을 만들기까지.

by 진하린 Mar 02. 2025

1. GPT와의 음성대화로 습득한 정보를 내 것으로 만드는 법


우리 두뇌는 놀라운 정보 처리 기관이지만, GPT와의 음성대화처럼 빠르게 주고받는 방대한 정보들을 모두 기억하진 못한다. 대부분의 정보는 스쳐 지나가고, 소수만이 우리의 지식으로 남는다. 그렇다면 어떻게 더 많은 정보를 의미 있는 지식으로 전환할 수 있을까?


나는 이 문제를 해결하기 위한 두 가지 핵심 도구를 애용한다.
AI를 활용한 '비유법'과 '글쓰기'다.


'비유법'은 새로운 정보를 이미 익숙한 개념에 연결하는 방법이다. 스스로를 '물음표 살인마'라고 할 정도로 세상 거의 모든 것에 대해 호기심을 갖고 있는 내가, 다양한 분야의 지식을 비교적 빠르게 흡수하는 비결이 바로 이것이다. 낯선 개념을 일상적 경험이나 이미 알고 있는 지식에 비유하면, 추상적인 아이디어도 구체적으로 이해할 수 있다. 뇌는 이런 연결을 통해 새 정보를 기존 신경망에 더 쉽게 통합한다. 마치 음식물을 섭취하고 다양한 소화과정을 통해 영양분으로 분해하고, 몸을 보강하듯 말이다.


'글쓰기'는 이렇게 형성된 초기 이해를 강화하고 체계화한다. 새로운 무언가를 공부하고 난 뒤, 남들에게 설명하려고 하면 갑자기 혼란스럽고 설명하기 어렵다고 느낀 기억들이 있을 것이다. 분명 아는 내용인데도 불구하고 설명을 듣던 사람이 관련된 질문이라도 하면 당황스럽기까지 하다. 설명하기 힘들다는 것은 결국 그 지식이 아직 완전히 내 몸에 체화되지 않았다는 뜻이다.

그렇기 때문에 글로 쓰면서 내가 어디까지 이 개념을 익혔는지 검증해볼 필요가 있다. 글을 쓸 때는 막연했던 생각이 명확해지고, 논리적 일관성이 검증된다. 인류가 문자를 발명한 이래, 글쓰기는 지식 정착의 가장 강력한 도구였다.


이 두 도구를 함께 사용하면, 지식 체화의 효율이 극대화된다. 비유법으로 빠르게 이해하고, 글쓰기로 깊게 내재화하는 것이다. 오늘은 특히 '비유법'이 어떻게 복잡한 개념도 쉽게 접근할 수 있게 해주는지 실제 사례를 통해 살펴보고자 한다.







2. 비유법을 이용한 프로그래밍 언어의 이해와 크롬확장프로그램 제작.


지난 화에서도 소개했지만, 나는 비유법을 적극적으로 활용한다.

사람이 만들어낸 학문과 지식은 겉으로 보이는 형태만 다를 뿐, 근본적인 원리는 유사한 경우가 많다고 생각한다. 워낙 다양한 분야에 대해 호기심을 갖고 관찰한 결과 내가 완전히 새로 접하는 지식에서도 기시감을 느낄 때가 있었다. 조금 의아할 수도 있겠지만, 스포츠, 미술, 과학 등 어떤 분야든 간에 근본적으로는 인간이 다듬어낸 학문이라는 것을 생각해보면 왜 그런지 단번에 이해할 수 있다.

인간의 사고방식과 행동양식을 토대로 각 분야를 학문적인 카테고리로 분류하고 다듬어나가는 과정에서 유사성이 생길 수 밖에 없는 것이다. 그렇기 때문에 ‘비유법’을 잘만 활용하면 아주 빠르게 새로운 분야의 지식을 익힐 수가 있다. 기존에야 해당 분야의 전문가가 타 분야에 대한 이해도 함께 갖추고 있어야 제대로 된 비유를 할 수 있었고, 그런 사람들이 스타 강사가 될 수 있었지만, 이제는 AI가 그 역할을 어느정도 대신 해줄 수 있다.

할루시네이션 때문에 정확도는 부족할지 몰라도 거의 모든 분야의 지식을 알고 있다는 AI만의 장점이 여기서 극대화된다.




비유법의 실전 적용: 크롬 확장프로그램 프로젝트


현재 나는 크롬 확장프로그램을 개발하는 프로젝트를 진행 중이다.

이 프로젝트는 지도앱의 고전적인 UI를 AI로 강화하여 더 다양한 기능을 제공하는 것이 목표다. 하지만 나는 코드 한 줄 읽기 힘든 완벽한 문외한이고, 심지어 프로젝트를 시작할 때는 프로젝트를 구성하는 파일들의 역할과 구조가 어떻게 되는지도 몰랐다.

초기에는 GPT에 의존해 당장에 필요한 코드를 작성하며 문제를 해결해왔다. 그러나 프로젝트 규모가 커지면서 점점 한계에 부딪혔다. AI가 필요 없는 파일을 생성하거나, 잘 작동하던 기능을 훼손하는 경우가 빈번해졌다.

마치 누수가 생긴 배관의 나사를 조였더니 다른 쪽에서 물이 터져나오는 것처럼, 한 문제를 해결하면 다른 문제가 생기는 악순환에 빠졌다.


한쪽을 고치면, 한 쪽이 고장나는... 그야말로 환장하는 상황이었다


더 큰 문제는 파일 수가 늘어나면서 프로젝트 전체가 점점 누더기처럼 변해갔다는 점이다. AI는 즉각적인 문제 해결에는 유능했지만, 전체 구조를 조망하는 능력은 부족했다. 전체 그림을 보지 못한 채로 나온 답변은 ‘물이 새니까 일단은 테이프로 막읍시다’와도 같은 임시방편적 해결책에 불과했다. 이러다가는 점점 걷잡을 수없는 규모로 문제가 커질 예정이었다.



비유를 통한 프로젝트 구조 이해하기

무슨 역할을 하는지도 모르는 코드덩어리여도 '식당'에 비유하니 순식간에 이해가 되었다.


해결책은 프로젝트의 전체 구조를 하나하나 뜯어보며 내가 직접 이해하는 것이었다. 

프로젝트 전체의 최초 기획은 내가 했지만서도, 그 기획을 듣고나서 GPT가 만들어준 파일들인 server.js가 무엇을 의미하는지, mapsearch.js가 무슨 기능을 하는지 거의 모르는 상태였다. 물론 내 기획서를 받아든 GPT가 직접 어느정도 각 파일을 만든 이유에 대해 설명을 하긴 했었지만, 프로그래밍 언어에 숙달되지 않은 내가 그 텍스트를 의미 그대로 이해하기가 어려웠다.


난 이 상황을 타개하고 기존의 프로젝트를 이해하기 위해, 현재까지 만든 모든 코드를 내가 이해할 수 있는 눈높이로 직접 설명해달라고 요청을 했다. 나 같은 문외한이 이해할 수 있도록 가장 적합한 비유를 찾고, 그 비유를 통해서 전체 파일들의 유기적인 구조를 분석하는 것이었다.

그 덕분에 어떤 파일은 궁여지책으로 생긴 녀석이라는 사실과 어떤 요소들은 따로 관리하는 것이 좋다는 사실, 또 프로그래밍에서 각각의 파일들은 특정한 '이름(클래스명)'을 지칭함으로써 다른 파일에서 불러와 사용할 수 있다는 사실을 깨달았다.


지속적인 비유를 통해 구조가 머릿속에 그려진 다음에는, 스스로 상황을 만들어 검증받는 수준까지 다다를 수 있었다.


내 프로젝트의 구조와 형태를 토대로 만들어진 맞춤 비유들 덕분에 복잡했던 시스템이 머릿속에서 점차 형태를 갖추기 시작했다.

어느정도 개념이 머릿속에 들어오고 나니 내가 이해한 바가 정말 맞는지를 확인하기 위해 단순한 시나리오를 설정해서 물어보기도 했다. 어차피 한국어든 영어든, 프로그래밍 언어든 결국 사람이 만든 언어가 아니었던가? 프로그램의 작동 원리를 식당으로 바꿔서 이해하든, 카페로 바꿔서 이해하든, 작동 방식에 대한 근본적인 이해만 있다면, 그저 논리적으로 분석해서 문제점이 무엇인지 파악하는 것은 어려운 일이 아니었다. 





체계화를 통한 프로젝트 재구성


비유를 통해 얻은 이해를 바탕으로 나는 프로젝트 파일들을 체계적으로 정리하기 시작했다. 이전에는 AI가 그때, 그때 임시방편으로 덧붙인 코드들 사이에서 방향을 잃고 있었지만, 이제는 전체 구조가 보이기 시작했다.

전체 구조를 한 눈에 조망할 수 있게 되자, 파일들을 올바른 역할로 재배치하는 것은 어렵지 않게 진행되었다.


점점 커지고 복잡해져가는 프로젝트를 큰그림으로 이해하기 위해 유통부터 서빙까지의 과정에 비유해보았다.


특히 중요했던 것은 모듈화 작업이었다. 이 과정은 마치 일반 칼날을 커터칼로 바꾸는 것과 같았다. 무뎌지면 칼 전체를 갈아야 하는 일반 칼과 달리, 커터칼은 끝부분만 교체하면 새것처럼 쓸 수 있다. 이렇게 분리된 시스템을 구축한 것이다.   


일부 코드는 한 번 설정하면 다시 건드릴 필요가 없다. 이런 코드는 기초 설정 파일로 분리해 놓고 필요할 때만 참조하게 했다.

자주 수정해야 하는 코드는 별도 파일로 분리했다. 이렇게 하면 AI에게 수정을 요청할 때도 전체 프로젝트가 아닌 특정 파일만 건드리면 되어 오류 위험이 크게 줄어들었다.


결과적으로 모듈화된 시스템이 완성되었고, 유지보수가 훨씬 수월해졌다. 

그 전까지는 AI에게 코드를 질문하면서 대체 이 수백 줄짜리 코드 중에서 무얼 건드려야 할지, 이걸 건드리면 다른 부분에서 고장나진 않을지 걱정하면서 물어보곤 했었다.

하지만 이제는 고칠것만 고쳐도 되니 프로젝트의 목표를 향해 훨씬 더 빠르게 나아갈 수 있게 되었다.









3. AI의 도움으로 창작의 경계를 허물고, 다빈치형 인간에 도전해보다.



프로그래밍 프로젝트를 하면서 나는 정말 여러가지 놀라운 경험들을 할 수 있었다.

이전에도 짤막하게 설명했듯이 난 게임개발을 해봤지만, ‘디자이너’라는 포지션이었기 때문에 내가 만든 이미지 리소스들을 프로그래머들에게 전달해줄 뿐, 그것들을 어떤 원리로 게임상에 표현하고 작동시키는지에 대한 매커니즘은 알 수 없었다. 게다가 그들에게 작동원리를 설명해달라고 부탁해도, 그들 또한 내 영역을 몰랐기에, 내게 설명할만한 알맞은 비유를 찾지 못했다.

프로그래밍에 대한 흥미는 게임개발자로 일하면서부터 계속 있었지만, 디자이너라는 본업과의 연관성이 낮고 배우는 데 오랜 시간이 필요하다는 현실적 장벽에 막혀 엄두를 내지 못했다. 그런 내가 지금은 직접 프로그램을 만들고 있다. 비록 거창한 것이 아닌 단순한 크롬 확장프로그램이지만, 내 머릿속 구상이 실제로 작동하는 모습을 볼 때마다 경이로움을 느낀다.



과거에는 독립영화 감독이나, 1인 게임 개발자를 동경만 할 뿐 내가 그들처럼 할 수는 없다고 생각했다. 내가 아는 한에서는 창작의 과정은 오직 각 분야 전문가들의 분업을 통해서만 가능했기 때문이다. 기획자는 기획만, 디자이너는 디자인만, 개발자는 개발만 할 수 있다는 틀에 갇혀 있었던 것이다. 그래서 '이번 생에는 프로그래밍을 직접 해볼 일은 없겠지'라고 단정 짓고 내 영역 밖의 일이라 여겼다. 시간과 나이로 핑계를 대면서 말이다.


이러한 한계 인식은 단지 전문성의 벽 때문만은 아니었다. 시간이라는 더 근본적인 제약도 큰 역할을 했다. 나 같이 호기심 많은 사람들은 세상의 모든 분야가 궁금하고 배우고 싶은데, 다 경험하기에는 인생이 터무니없이 짧게 느껴진다. 한 분야의 전문가가 되려면 수십 년의 시간이 필요하고, 그저 맛보기 수준으로 체험하려 해도 몇 년은 기본으로 투자해야 한다. 이런 시간과 전문성의 이중 장벽이 다양한 분야를 탐험하고자 하는 열망을 좌절시켰던 것이다.


그런데 요즘은 AI의 도움으로 인해 미처 꿈도 꿔보지 못했던 많은 일들을 시도하고 있다. 시간적, 비용적인 이유로 못하던 일들이 하나 하나 실행되어가는 것을 보며 꽤 많은 성취감을 느끼고 있다. AI는 지식의 진입 장벽을 낮추고 학습 곡선을 가파르게 만들어, 전문가들의 영역이라 여겼던 분야도 빠르게 이해하고 활용할 수 있게 해주었다.


예전에는 혼자서 이 분야, 저 분야 모두 체험해보는 '다빈치형 인간'들을 보며, “저 사람들은 도대체 뭐가 그리 욕심이 나서 하나에 정착하지 못하고 여러 일들을 해보는 걸까, 그리고 도대체 저 많은 것을 어떻게 한 번에 공부해낼 수 있었을까?”하며 궁금했던 적이 있었다. 일반적인 사람이나, 그들이나 모두 똑같이 70~80년을 살아가는데, 인생의 밀도가 높은 사람들이 누리는 삶은 얼마나 풍성할까 싶어 부럽기도 했다.

비록 내가 그들처럼 천재적인 두뇌를 타고나지 않았고, 그만큼의 성취를 이루지도 못했지만, AI덕분에 이루지 못할 거라 생각했던 자아실현의 여정을 걷고 있다는 사실이 신기하다. 그리고 '다빈치형 인간'들이 대체 어떻게 전혀 다른 분야를 금방 배웠는지에 대한 매커니즘도 어느정도는 이해할 수 있게 되었고 말이다.






아직은 허접한 단계지만, 기존 지도앱의 필터가 할 수 없는 애매모호한 요청을 처리할 수 있게 만들어보는 것이 목표이다.

이번화에서는 지난화에서 잠깐 소개한 구글맵 확장프로그램 프로젝트와 관련된 예시가 좀 많이 들어갔다. 지금 이 확장프로그램을 만드는 건 올해의 목표로 꾸준히 진행중이다.

디자이너가 왜 프로그래밍을 하냐고 할 수도 있겠지만, 고전적인 UX를 AI와 결합해 개선시키는 것도, 내 원래 직업이던 UX디자이너의 역할과 맞닿아있다고 생각한다. 어차피 난 스타트업으로 커리어를 시작했고, 규격화 된 작업 프로세스와는 거리가 있는 사람이다보니, 직업의 경계를 엄격하게 나누지는 않는다.



이전 04화 일상 속 짜투리시간, 의미있게 만들기

브런치 로그인

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari