Claude Code를 활용해 아이들을 위한 하드웨어 프로젝트를 만들었습니다. 초보자가 겪은 두 가지 버그 해결기
I built a hardware project for my kids entirely in Claude Code, with zero prior wiring experience. Two bugs it caught still surprise me.
핵심 요약
Claude Code를 사용해 하드웨어 지식 없이도 아이들을 위한 영수증 출력 장난감을 성공적으로 제작한 사례입니다.
- 프로젝트 개요 — 라즈베리 파이 제로와 아케이드 버튼을 활용한 영수증 출력 장난감 제작함
- Claude Code 활용 — 하드웨어 지식 없이 SSH 접속과 코드 분석을 통해 모든 개발 과정을 수행함
- 기술적 난관 해결 — 커널 호환성 문제와 라이브러리 설정 오류를 실시간 디버깅으로 해결함
- 오픈 소스 공유 — 누구나 따라 할 수 있도록 코드와 하드웨어 구성 정보를 깃허브에 공개함
r/raspberry_pi에 올렸던 글인데, AI 관련 내용은 따로 정리하는 게 좋을 것 같아서 여기에도 올림.
우리 애들이 맨날 똑같은 역할놀이 6개(슈퍼마켓, 아이스크림 가게, 식당, 택시, 영화관, 예약석)만 주구장창 하거든. 근데 시중에 파는 장난감 계산기들은 기껏해야 하나 정도만 지원하고, 버튼 눌러도 아무 반응도 없더라고. 그래서 그냥 내가 직접 하나 만들었음. 아케이드 버튼 6개, 감열식 영수증 프린터, 그리고 Raspberry Pi Zero 조합으로. 버튼 누르면 랜덤으로 생성된 진짜 영수증이 출력됨.
이거 만들기 전까지 배선 같은 건 PC 조립할 때나 해봤지, 제대로 해본 적이 한 번도 없었음. 주변에 엔지니어 친구들이 널렸는데, 일부러 한 명한테도 안 물어보고 혼자 다 함. 영수증 생성기 6개, GPIO 배선, 온갖 버그들까지 전부 Claude Code 세션 돌리면서 해결했고, 대부분은 Pi에 직접 SSH로 접속해서 처리함.
특히 기억에 남는 버그가 두 개 있음.
첫 번째는 버튼이 아예 먹통이 되면서 "RuntimeError: Failed to add edge detection." 에러를 뿜어대던 거임. 알고 보니 모든 튜토리얼에서 표준으로 쓰는 RPi.GPIO의 인터럽트 기반 버튼 감지 방식이, 최신 커널에서는 sysfs 인터페이스 때문에 제대로 작동을 안 하더라고. 결국 인터럽트 다 걷어내고 그냥 20ms짜리 폴링 루프로 바꿨음. 좀 구식 방법이긴 한데, 어쨌든 잘 돌아감.
두 번째는 좀 골 때리는 놈이었음. 영수증이 갑자기 글자 크기가 두 배로 커져서 출력되더니 중간에 줄바꿈까지 이상하게 되는 거임. Claude Code가 Pi에 SSH로 접속할 수 있으니까, 추측성 질문 던지는 대신 기기에 설치된 python-escpos 소스 코드를 직접 읽게 시켰지. 그랬더니 원인이 바로 나오더라. 라이브러리의 set() 메서드가 '기본 크기로 복구' 명령을 보내려면 size 플래그에 True를 넘겨줘야 하는데, 그냥 "다 False로 설정하면 기본값으로 돌아오겠지"라고 짠 코드가 문제였음. False를 넘기면 아무 명령도 안 내린 걸로 처리되더라고. 그래서 모든 영수증이 헤더 출력 이후에 계속 두 배 크기 모드로 고정돼 있었던 거임. 다들 눈치를 못 챘던 게, 줄바꿈이 심하게 안 일어나면 티가 잘 안 났거든.
이런 문제들은 Stack Overflow 뒤져봐도 답 안 나왔을 거임. 근데 실제 하드웨어에서 돌아가는 코드를 직접 까보니까 문제 터진 당일에 바로 다 고쳤음.
결과적으로 아주 잘 돌아감. 애들은 서로 버튼 누르겠다고 싸우고, 버튼 두 개를 특정 조합으로 누르면 와이프 커피 주문서가 출력되는 이스터 에그도 넣어놨음. 오픈 소스로 다 공개해 놨으니까, 삽질한 내용 궁금하면 확인해 봐.
-
라이브 데모 (브라우저 전용, 하드웨어 필요 없음): https://nuenni.github.io/LePetitCafe/



