처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.07.27 25

음악 하나 듣겠다고 PCB 설계와 C까지 배운 개발자 — 화면 없는 뮤직 플레이어 이야기

Hacker News 원문 보기
음악 하나 듣겠다고 PCB 설계와 C까지 배운 개발자 — 화면 없는 뮤직 플레이어 이야기

네 살 아이에게 스마트폰을 쥐여주기 싫었던 아빠

평범한 소프트웨어 개발자가 18개월 동안 PCB 설계, 3D 프린팅, C 언어를 배워서 만든 게 다름 아닌 '아이용 뮤직 플레이어'라면 믿으시겠어요? 사연이 재밌는데요. 이 개발자의 네 살짜리 딸이 음악을 정말 좋아하는데, 집에서 음악을 트는 방법이 전부 '빛나는 네모 화면'을 거쳐야 했다는 거예요. 네 살 아이에게 스마트폰을 쥐여주는 것도 마음에 걸리고, 스포티파이 UI는 추천이 끝없이 이어지는 '카지노' 같아서 아이가 쓸 물건이 아니었다고 하고요. 그래서 LP 플레이어처럼 '물건을 골라 올려놓으면 음악이 나오는' 경험을 직접 만들기로 합니다. 그렇게 나온 게 Pentaton LP라는 오픈소스 하드웨어 뮤직 플레이어예요. 화면도, 앱도, 구독도 없어요. 앨범 아트가 인쇄된 카드를 나무 상자 위에 올리면 그 앨범이 재생되는 방식이거든요.

어떻게 동작하냐면요

핵심은 ESP32-S3라는 저렴한 마이크로컨트롤러예요. 앨범마다 NFC 카드를 하나씩 만드는데, 닌텐도 아미보에 들어가는 것과 같은 NTAG215 칩을 써요. 카드를 올리면 기기가 고유 ID를 읽고, 내장된 SQLite 데이터베이스에서 어떤 앨범인지 찾은 다음, 집에 있는 NAS에서 와이파이로 음악을 스트리밍해요. 네트워크가 끊기면 microSD에 담긴 로컬 사본으로 자동 전환되고요. 소리는 I2S(디지털 오디오 전송 규격)로 내보내 MAX98357A라는 클래스 D 앰프를 거쳐 3인치 스피커로 나와요. 스피커 인클로저는 FreeCAD로 직접 설계해 PETG로 3D 프린팅하고, 장인어른과 함께 호두나무 무늬목 상자를 씌웠다고 해요.

재밌는 건 처음엔 MicroPython으로 시작했다가 C로 전부 다시 썼다는 부분이에요. 왜냐하면 곡 사이가 끊기지 않는 '갭리스 재생'을 하려면 I2S의 DMA 버퍼를 아주 빡빡한 마감시간 안에 계속 채워줘야 하거든요. 그런데 파이썬의 가비지 컬렉션(안 쓰는 메모리를 자동으로 청소하는 기능)이 몇 분에 한 번씩 멈칫하면서 소리가 뚝뚝 끊겼던 거죠. 결국 저녁 시간 3개월을 갈아 넣어 ESP-IDF 위에서 C로 오디오 파이프라인을 다시 만들었고, 지금은 44.1kHz/16비트 FLAC을 갭리스로 디코딩하면서도 코어 하나에 40% 여유가 남는대요. 나머지 코어는 NFC 인식, 웹 UI, OTA 업데이트를 맡고요. 웹 UI도 재밌는데, 180KB짜리 단일 페이지가 ESP32 자체에서 서빙되고 거기서 앨범을 카드에 드래그해서 배정해요.

소프트웨어 개발자가 하드웨어에서 배운 것들

하드웨어 입문 소감이 꽤 값진데요. PCB 설계는 생각보다 할 만했다고 해요. 무료 설계 툴인 KiCad가 요즘 정말 좋아졌고, JLCPCB에 맡기면 리비전 한 번에 5장 기준 12유로 정도라 부담이 적었대요. 물론 시행착오도 있었어요. 첫 보드에서 I2S 신호선을 와이파이 안테나 밑으로 지나가게 그렸다가 와이파이가 동작할 때마다 재생이 죽는 문제를 겪었고, 두 번째 리비전에서 선을 옮기고 그라운드 면을 깔아 해결했거든요. 총 네 번의 리비전을 거쳤고 부품 원가는 대당 약 23유로예요. 9시간 걸리는 인클로저 출력 때문에 3D 프린팅 양산은 포기하고, 키트를 사면 인클로저는 구매자가 직접 뽑는 방식을 택한 것도 현실적인 판단이고요.

'지연 시간 예산'이라는 개념도 인상적이에요. 네 살 아이는 카드를 올리고 첫 음이 나올 때까지 1초 정도만 기다려준다는 거죠. 최종적으로 700ms까지 줄였는데, NFC 읽기 150ms + DB 조회와 네트워크 200ms + 디코딩 버퍼 채우기 350ms로 쪼개서 관리했다고 해요. 그리고 최고의 QA는 딸이었대요. 카드 위에 카드 올리기, 노래 중간에 카드 빼기, 뒤집어서 올리기 같은 온갖 예외 상황을 아이가 전부 찾아냈고, 다음 리비전은 그걸 다 처리한다는 거예요.

업계 맥락: Tonies와 Yoto, 그리고 DIY

사실 이런 제품 자체는 새롭지 않아요. 독일 Tonies는 피규어를, 영국 Yoto는 카드를 올려 재생하는 아이용 플레이어로 이미 성공했거든요. 문제는 둘 다 자사 스토어와 DRM에 묶여 있어서 콘텐츠를 그 회사에서만 사야 한다는 점이에요. Pentaton LP는 정확히 그 반대편에 있어요. 내 FLAC 라이브러리, 클라우드 없는 로컬 동작, 그리고 펌웨어·PCB·인클로저까지 전부 깃허브에 공개된 오픈소스죠. 납땜이 싫은 사람을 위한 키트도 팔지만, 만든 사람 스스로 '스타트업이 아니라 피지컬 미디어에 보내는 러브레터'라고 못 박았어요.

한국 개발자에게 주는 시사점

이 프로젝트가 보여주는 건 임베디드 하드웨어의 진입장벽이 정말 낮아졌다는 사실이에요. ESP32 보드는 몇천 원이면 사고, KiCad는 무료이고, PCB 제작은 커피 몇 잔 값이거든요. 웹이나 앱만 하던 개발자도 저녁 시간 투자로 '물건'을 만들 수 있는 시대라는 거죠. GC 없는 언어가 실시간 오디오에 왜 필요한지, 지연 시간을 밀리초 단위로 쪼개 관리하는 방식 같은 건 임베디드가 아니어도 성능 최적화 감각을 키우는 데 좋은 교재고요.

한줄 정리: 스마트폰 없이 음악을 듣고 싶다는 소박한 동기가 오픈소스 하드웨어 제품까지 이어진 여정, 기술적 디테일이 알찬 기록이에요. 여러분이라면 아이나 부모님을 위해 어떤 '화면 없는' 기기를 만들어보고 싶으세요? 임베디드에 도전해본 경험이 있다면 들려주세요!


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.