🐢 캔버스에 말 걸기#

저와 비슷하시다면, 여러분이 처음 맛본 “프로그래밍"은 빛나는 브라운관(CRT) 모니터 위의 작은 삼각형이었을지도 모릅니다. FORWARD 100이라고 입력하면 작은 거북이가 화면을 가로질러 선을 그리는 모습을 지켜봤겠죠. 어린 마음에 그 모습은 순수한 마법이었습니다. 내 마음대로 컴퓨터를 움직이게 만들었으니까요. (참고: 로고 (프로그래밍 언어))

최근 저는 Turtle-Gemma라는 AI 프로젝트를 통해 이 마법을 다시 발견했습니다. 현대적인 AI 환경에서 그 시절의 순수한 마법을 그대로 재현해 낸 프로젝트죠.

명령어를 직접 입력하는 대신, 브라우저에서 마이크 버튼을 클릭하고 “빨간색 별을 그려줘"라고 말하기만 하면 됩니다. 잠시 후 AI 에이전트가 Logo 코드를 생성해서 디지털 캔버스 위에 여러분의 요청을 그려냅니다.

turtle gemma screenshot

단순히 재미있는 장난감 프로젝트를 넘어, 최신 AI ‘에이전트’가 실제로 어떻게 작동하는지 이해하는 데 가장 효과적인 방법이기도 합니다. 거북이의 등껍질 속을 한번 들여다볼까요?

🛠️ 모든 것을 하나로 연결하기#

여러 가지 다른 기술들을 가져와 매끄러운 하나의 루프로 연결할 때 느껴지는 특별한 만족감이 있습니다. 그리고 Turtle-Gemma가 정확히 그런 일을 해냅니다.

아키텍처를 살펴보면 아주 심플한 파이프라인으로 구성되어 있습니다:

  1. 입력: Gradio 웹 인터페이스가 음성이나 텍스트 요청을 캡처합니다.
  2. 생각: Google의 Gemma 모델이 이 입력을 받아 에이전트 역할을 수행합니다.
  3. 출력: 맞춤형으로 제작된 ‘헤드리스(headless)’ 거북이 엔진(turtle_engine.py)이 에이전트의 지시를 받아 PIL(Python Imaging Library) 이미지 위에 그림을 그립니다.

메이커로서 저는 이런 방식이 정말 마음에 듭니다. 미래지향적인 무언가를 만들기 위해 거창한 엔터프라이즈급 스택이 필요하지 않다는 걸 상기시켜 주니까요. 깔끔한 파이썬 환경, 오픈 모델, 그리고 간단한 UI 라이브러리만 있으면 말 한마디를 렌더링된 이미지로 바꿀 수 있습니다.

💭 AI가 생각하는 모습을 보며 “도구 호출(Tool Calling)” 이해하기#

최근 AI 분야에 관심을 가져오셨다면 “에이전틱 워크플로우(Agentic Workflows)“나 “도구 호출(Tool Calling)“이라는 용어를 들어보셨을 겁니다. 뭔가 무겁고 위압적으로 들리죠. 보통 AI가 데이터베이스를 조회하거나 JSON을 파싱하거나 날씨 API를 가져오는 등의 강력하지만 눈에 보이지 않는 작업을 설명할 때 쓰입니다.

Turtle-Gemma는 이러한 도구 호출 과정을 완벽하고 아기자기하게 시각화해 줍니다.

Gemma에게 “빨간색 별을 그려줘"라고 요청하면, 모델은 단순히 원본 이미지 파일을 뱉어내지 않습니다. 모델은 필요한 단계를 생각하고 자신에게 주어진 “도구"를 사용해야 합니다. 이 경우 그 도구들은 글자 그대로 move_turtle(), turn_turtle(), set_pen_state(), set_pen_color()가 전부입니다 (참고: turtle-gemma/config.py).

여러분은 AI가 소리 내어 추론하는 과정을 지켜볼 수 있습니다:

  • “사용자가 터틀 그래픽을 사용해 빨간색 별을 그리고 싶어 하는군. 별은 다각형이며, 일반적으로 앞으로 이동하고 특정 각도로 회전하는 과정을 반복하여 그린다.”
  • 도구 호출 1: set_pen_color("red")
  • 도구 호출 2: move_turtle(100)
  • 도구 호출 3: turn_turtle(144)
  • (5회 반복)

LLM이 캔버스 위에 물리적이고 순차적인 단계를 출력하도록 강제함으로써, 추상적이던 AI 추론의 “블랙박스"가 완전히 시각화됩니다. 만약 AI가 환각(hallucination)을 일으키거나 논리가 꼬이더라도, 조용히 코드가 멈추는 것이 아니라 완벽한 별 대신 이상하고 삐뚤어진 별이 나타나게 되죠. 문자 그대로 모델이 실시간으로 생각하는 모습을 지켜보는 겁니다.

😋 기분 좋은 우연 즐기기#

물론, 2D 공간을 탐색하려는 AI이기 때문에 항상 모든 것이 완벽하게 돌아가지는 않습니다. 하지만 그게 또 묘미죠.

프롬프트: draw a x-mas tree (크리스마스 트리 그려줘)

x-mas tree

가끔 크리스마스 트리를 부탁하면 AI가 나무 기둥 그리는 것을 깜빡해서, 밑으로 초록색 선 하나만 삐죽 튀어나온 기묘한 삼각형이 나오기도 합니다. 또 어떨 때는 현재 방향을 살짝 헷갈려서 엉뚱한 선을 그어버릴 때도 있습니다.

이런 소소한 “실수"들은 정말 사랑스럽습니다. LLM이 결코 틀리지 않는 마법의 뇌가 아니라, 언어를 기하학으로 매핑하기 위해 최선을 다하는 추론 엔진이라는 사실을 일깨워주기 때문입니다.

🏖️ 모래성 놀이터에서 놀아보기#

우리는 이메일을 쓰거나, 서버를 디버깅하거나, 스프레드시트를 파싱하는 등 꽤 진지한 작업에 AI를 사용하는 데 많은 시간을 보냅니다. Turtle-Gemma는 AI를 사용한 프로그래밍이 그저 재미있는 놀이가 될 수도 있다는 것을 보여주는 훌륭한 사례입니다.

프롬프트: draw a gangnam style (강남스타일 그려줘)

Gangnam Style

도구 호출이 실제로 어떻게 작동하는지 보고 싶거나, 그저 말로 형태를 만들어내는 즐거움을 경험해보고 싶다면, 저장소(repo)를 클론(clone)해서 Gradio 앱을 실행하고 직접 시도해 보시기를 강력히 추천합니다.

자, 거북이에게 별을 그려달라고 말해 보세요. 분명 여러분을 미소 짓게 만들 겁니다.