아들과 함께 만들어보는 인공지능(LLM) 로봇 만들기 프로젝트 — EP 0. 12살 아들과 AI 로봇 프로젝트를 시작한 이유

아들과 함께 만들어보는 인공지능(LLM) 로봇 만들기 프로젝트 — EP 0. 12살 아들과 AI 로봇 프로젝트를 시작한 이유

연재 안내: 이 시리즈는 약 4개월에 걸쳐 진행된 프로젝트를 EP 0~EP 9 총 10편으로 한 번에 정리해 발행하는 기록이다. 각 편은 실제 진행 순서를 따르고 있고, 발행일은 동일하다.

이 시리즈는 완성된 프로젝트 소개가 아니다. EP 0를 쓰는 시점은 프로젝트를 막 시작했을 때고, 아들 방 책상 위에는 반쯤 조립된 아크릴 샤시가 올려져 있었으며, 한쪽 바퀴가 반대로 도는 걸 아직 못 고쳤다. 이런 상태에서 시작하는 글이다.

나랑 비슷한 상황, 그러니까 아이랑 뭔가 기술 관련 프로젝트를 같이 해보고 싶은데 어디서 시작해야 할지 모르는 분이 있다면, 그냥 옆에서 누군가 진행하는 걸 보는 느낌으로 읽어줬으면 한다.


아들과 나는 만들기를 좋아한다

우리 아들은 레고를 좋아한다. 프라모델도 좋아한다. 테크닉 시리즈를 혼자 끙끙대면서 조립하고, 설명서를 옆에 펼쳐놓고 한 칸 한 칸 맞춰나가는 집중력이 있다. 조립이 끝나고 나서 작동하는 걸 보면 스스로 꽤 뿌듯해하는 편이다. 기어 맞추는 건 굳이 설명 안 해줘도 직접 돌려보면서 "아 이쪽이 더 세네" 하고 넘어간다. 손이 먼저 아는 아이다.

나도 어릴 때 만들기를 좋아했다. 프라모델, 라디오 키트, 그런 것들. 아들을 보면 그때 기억이 조금씩 올라온다. 그러다 몇 년 전부터 함께 레고를 조립하기 시작했는데, 처음에는 아이가 하는 걸 옆에서 구경하다가 어느 순간부터 내가 더 집중하고 있더라.

평소에 아두이노를 가지고 논 지도 꽤 됐다. LED 깜박이는 것부터 시작해서 온도 센서, 거리 센서, 작은 OLED 디스플레이. 큰 뭔가를 만든다기보다, 퇴근 후에 브레드보드 앞에 앉아 점퍼선 꽂는 게 나름 힐링이었다. 언젠가 아들에게도 코딩을 가르쳐봐야겠다는 생각을 막연히 해왔는데, "언젠가"가 계속 뒤로 밀렸다.

그러다 올봄에 마음이 바뀌었다.


코딩을 가르치는 방식에 대한 고민

아두이노를 아들에게 보여줬을 때가 있었다. LED 켜지는 거 보고 "오, 신기하다" 하고 끝이었다. 당연한 거다. LED 켜지는 게 뭐가 재밌어.

파이썬 문법부터 시작하는 것도 생각해봤는데, 솔직히 나라도 재미없을 것 같았다. 변수, 반복문, 조건문. 이걸 왜 배우는지 맥락이 없으면 12살짜리가 집중하기 어렵다.

일하면서 계속 느끼는 게 있었다. AI 도구를 잘 쓰는 사람과 그렇지 않은 사람의 차이가 생각보다 크다는 것. 모델이 뭔지 아느냐보다, 자기가 원하는 걸 어떻게 설명해서 원하는 결과를 얻는지 아느냐. 코드를 한 줄 한 줄 짜는 능력보다 그 감각이 중요해지고 있다는 걸 매일 느낀다.

그러면 12살에게 뭘 먼저 가르쳐야 할까. 고민을 좀 했다. 결국 내가 가르치고 싶은 건 파이썬 문법이 아니었다. 만들고 싶은 게 생겼을 때, AI와 함께 그걸 만들어내는 방식을 아는 것. 그게 앞으로 더 중요해질 거라고 생각했다.

그리고 그걸 배우는 데 로봇만큼 좋은 소재가 없다. 코드를 짜면 눈앞에서 바로 움직이니까. 화면 속 숫자가 아니라 물리 세계에서 반응이 온다.


"로봇!" — 아들의 반응

아들한테 물어봤다. "아빠랑 로봇 만들어볼래? 카메라 달고, 센서 달고, AI가 뭘 볼지 판단하는 로봇."

2초 정도 생각하더니 바로 "할게!" 였다.

그날 저녁에 유튜브에서 로봇 관련 영상을 혼자 찾아보더라. 바퀴 달린 거, 팔 달린 거, 레고 테크닉으로 만든 거. 아무 말 안 했는데 알아서 조사를 시작했다. 다음날 "내가 로봇 몸통 담당할게." 했다.

그때 역할이 정해졌다.


전체 구조

프로젝트의 큰 그림은 세 레이어다.

[로봇 본체 (엣지)]
  ├── 카메라 (영상 캡처)
  ├── 초음파 거리 센서 (거리/장애물 감지)
  ├── 모터 + 드라이버 (이동)
  └── Arduino → Raspberry Pi 전환 예정

         ↕  WiFi (집 안 LAN)

[LLM 서버]
  ├── 카메라 프레임 + 센서 데이터 수신
  ├── 로컬 LLM이 상황 판단 + 명령 생성
  └── 명령을 로봇에 전달

클라우드 API(ChatGPT, Claude API)를 안 쓰는 이유는 간단하다. 로봇이 실시간으로 판단할 때마다 인터넷을 거치면 지연이 생긴다. 집 안 LAN에서 로컬 LLM 서버와 통신하면 그 지연이 거의 없다.

LLM 서버는 집에 있는 Mac 3대를 쓴다.

기기 메모리 예정 역할
Mac mini M1 16GB 비교 벤치마크
Mac mini M4 24GB 상시 켜두는 홈서버 후보
MacBook Pro M4 Pro 14" 24GB 메인 서버

Apple Silicon은 통합 메모리 구조라 로컬 LLM 추론에 생각보다 잘 맞는다. M4 mini랑 M4 Pro가 같은 24GB인데 메모리 대역폭이 2배 넘게 차이 난다. 이게 실제 토큰 생성 속도에 얼마나 영향 주는지는 나중 편에서 비교한다.


역할 분담과 하네스 이야기

역할은 이렇게 나뉜다.

  • 아들: 하드웨어 담당. 조립, 결선, 센서 연결, 로봇 본체.
  • 아빠: 소프트웨어 담당. LLM 서버, 에이전트 하네스 설계, 통신 레이어.
  • 함께: 에이전트를 지휘하는 바이브 코딩.

"에이전트 하네스"라는 말이 낯설 수 있는데, 내가 이전에 따로 글을 썼으니 참고하면 된다(하네스 엔지니어링이란 무엇인가). 간단히 설명하면, 모델 바깥의 모든 것 — CLAUDE.md 파일, 도구 정의, 훅, 메모리, 피드백 루프 전체가 하네스다. Agent = Model + Harness 공식으로 쓰기도 한다.

이 로봇 프로젝트에서 하네스는 구체적으로 이런 걸 담는다:

  • 초음파 거리 센서 스펙시트, 핀맵, 허용 전압 범위
  • 아두이노 또는 Pi에서 쓸 수 있는 라이브러리 목록
  • ROS2 노드 구조, 토픽 명명 규칙
  • LLM 서버 통신 프로토콜
  • 로봇 동작 제약 조건 (예: "장애물 20cm 이내면 정지")

이걸 CLAUDE.md 형태로 정리해두면, AI 코딩 에이전트(Claude Code)가 이 프로젝트를 이해한 상태에서 코드를 짠다. 아두이노 라이브러리를 모른다거나, 핀맵을 잘못 쓴다거나 하는 실수를 하네스가 잡아준다.

그리고 아들은 이 에이전트를 바이브 코딩으로 지휘하는 방식을 배운다. "IR 센서 값이 20cm 이하면 멈추게 해줘"라고 말하면 에이전트가 코드를 짜고, 아들은 그 코드를 로봇에 올려서 테스트하고, 이상하면 다시 에이전트에게 설명한다. 문법을 외우는 게 아니라, 원하는 동작을 설명하는 능력을 키우는 것.

이게 내가 "하네스를 이용한 바이브 코딩"이라고 부르는 방식이다. 12살한테는 이 접근이 더 맞다고 생각했다.


지금 가지고 있는 것들

  • Arduino Uno
  • HC-SR04 초음파 거리 센서
  • 웹캠 (USB)
  • L298N 모터 드라이버 + DC 모터 2개
  • 점퍼선, 브레드보드
  • 아크릴 로봇 샤시 (바퀴 포함)

아두이노에서 먼저 기본 동작 확인하고, 안정화된 다음에 Raspberry Pi로 전환할 계획이다. Pi 4냐 Pi 5냐 Banana Pi냐 하는 선택은 나중 편에서 비교한다. Pi 5는 솔직히 지금 살 계획이 없고, 블로그 수익이 생기면 사겠다는 생각인데 이게 현실이 될지는 모르겠다.

다음 버전 이야기도 이미 나왔다. 아들이 레고를 워낙 좋아하다 보니, 언젠가 레고 테크닉으로 로봇 본체를 직접 설계해서 만들어보자는 얘기가 나왔다. 아들은 벌써부터 어떤 기어비를 쓸지 생각하고 있다. 일단 지금 버전 먼저.


참고한 프로젝트들

혼자 다 설계한 건 아니다. 사전에 찾아본 프로젝트들:

  • ROS-LLM: ROS와 LLM을 연동하는 오픈소스. 전체 아키텍처 방향 참고.
  • huawei-noah/HEBO: 에이전트 학습 프레임워크. 에이전트 구조 아이디어.
  • ROSClaw: ROS 기반 로봇 제어 프로젝트. 통신 레이어 설계 참고.

셋 다 "그대로 가져다 쓴다"가 아니라 "이 방향이 맞는 것 같다"를 확인하는 용도였다. 실제 구현은 우리 환경(Mac LLM 서버, Pi 엣지, 한국어 모델)에 맞게 처음부터 짤 예정이다.

참고로 나는 ROS2를 이전에 잠깐 봤던 수준이다. 이번에 제대로 쓰게 될 것 같아서 다시 공부 중이다. 모르면서 시작하는 프로젝트다.


이 시리즈에서 다룰 것들

총 10편으로 계획하고 있다.

# 주제 하드웨어 필요
EP 0 12살 아들과 AI 로봇 프로젝트를 시작한 이유 (지금 이 글)
EP 1 Claude Code로 AI 로봇 코딩 하네스 만들기
EP 2 AI가 로봇 코드를 짜다, 첫 번째 시도
EP 3 Mac M1 M4 M4 Pro로 AI 로봇 LLM 속도 비교
EP 4 AI 로봇에 맞는 로컬 LLM 고르기
EP 5 12살이 AI로 로봇 코딩한 첫날
EP 6 AI 로봇과 로컬 LLM 서버 연결하기
EP 7 AI 로봇 두뇌 교체, 아두이노에서 라즈베리파이로
EP 8 아들이 AI 로봇에게 첫 명령을 내렸다
EP 9 AI 로봇 프로젝트 4개월 회고, 다음은 레고

EP 6까지는 로봇 실물 진척이 없어도 진행할 수 있게 계획해뒀다. 하드웨어에서 뭔가 나와도 Claude에게 물어보면서 풀어가면 되니까, 시리즈는 멈추지 않는다.


이런 일지를 공개하는 게 처음이라 좀 어색하다. 잘 만들어진 완성품을 보여주는 게 아니라, 어떤 대화를 했고 어떻게 풀어갔는지를 그대로 올리는 거니까. 근데 그게 더 쓸모 있을 수도 있다고 생각했다. 완성된 프로젝트 포스팅은 많지만, 시작부터 같이 진행하는 건 보기 어려우니까.

다음 편은 에이전트 하네스 설계다. AI 코딩 에이전트에게 이 로봇 프로젝트를 어떻게 가르치는지, CLAUDE.md를 어떻게 짜야 에이전트가 핀맵도 알고 ROS2 노드 규칙도 지키면서 코드를 짜는지. 그리고 거기에 12살이 어떻게 자연스럽게 진입할 수 있는지부터 시작한다.

댓글

이 블로그의 인기 게시물

개발자는 코드를 쓰는 사람이 아니다 — AI 시대에 남는 자리는 '책임'에 있다

Harness Engineering in Practice — How Anthropic Designs AI Agents

What Is Harness Engineering — Designing the Reins for AI Agents