Skip to content
Published on

하드웨어 해커톤의 부활 — 소프트웨어가 시시해진 시대의 만들기

Authors

들어가며 — 소프트웨어 데모가 시시해진 날

2026년 6월, "RIP software hackathons, long live the hardware hackathon"이라는 제목의 블로그 글이 Hacker News와 GeekNews에서 화제가 됐습니다. 논지는 도발적이지만 부정하기 어렵습니다. AI 코딩 에이전트 덕분에 그럴듯한 웹앱 데모는 이제 주말은커녕 점심시간이면 누구나 만들 수 있게 됐고, 그 결과 소프트웨어 해커톤의 데모 무대는 비슷비슷한 CRUD 앱과 챗봇 래퍼의 행렬이 되어버렸다는 것입니다.

글쓴이가 대안으로 제시한 장면이 인상적입니다. 낡은 회전식 다이얼 전화기에 Raspberry Pi를 심어 새로운 기능을 불어넣은 데모. 수화기를 들면 스피커에서 소리가 나오고, 다이얼을 돌리면 실제로 무언가가 동작하는 물건 앞에서 심사위원과 관객이 보인 반응은, 화면 속 또 하나의 웹앱이 결코 얻을 수 없는 종류의 것이었습니다.

프롬프트 한 줄로 소프트웨어가 쏟아지는 시대에, 물리 세계에서 움직이는 무언가를 만드는 일은 역설적으로 가장 희소한 기술이 됐습니다. 이 글에서는 이 부활의 맥락을 짚고, 소프트웨어 엔지니어가 하드웨어 해커톤에 뛰어들기 위한 실전 가이드 — 보드 선택, 회로 기초, MicroPython 코드, 프로젝트 아이디어, 48시간 전략 — 를 정리합니다.

왜 하드웨어인가 — 세 가지 이유

물리적 제약의 재미

소프트웨어의 실패는 스택 트레이스지만, 하드웨어의 실패는 타는 냄새입니다. 납땜이 차갑게 식은 부위, 전압 강하, 풀업 저항 누락 같은 물리 세계의 제약은 짜증스럽지만, 동시에 문제 해결의 감각을 완전히 다른 차원으로 끌어올립니다. 추상화 계층 아래에 실제 전자가 흐르고 있다는 사실을 몸으로 배우는 경험은 디버깅을 탐정 놀이로 바꿔 놓습니다.

AI가 대신 못 하는 영역

코딩 에이전트는 코드를 쓰지만, 점퍼 와이어를 꽂고 납땜하고 센서를 케이스에 고정하는 일은 사람이 해야 합니다. 2026년의 AI는 회로 설계 조언과 펌웨어 코드 생성에는 탁월하지만, 물리적 조립과 현장의 미세 조정은 여전히 손의 영역입니다. 해커톤 참가자 입장에서 이것은 차별화 그 자체입니다. 모두가 같은 AI를 쓸 수 있다면, 차이는 AI가 못 하는 일에서 생깁니다.

데모 임팩트

해커톤의 화폐는 데모의 임팩트입니다. 심사위원이 하루 종일 화면 속 웹앱을 보다가, 눈앞에서 모터가 돌고 LED가 깜빡이고 전화기가 울리는 물건을 만나면 기억에 남는 쪽은 정해져 있습니다. 만질 수 있는 데모는 공유되고, 사진 찍히고, 회자됩니다.

해커톤 데모 임팩트의 구조

  소프트웨어 데모            하드웨어 데모
  ----------------          ----------------
  화면 공유로 시연            관객이 직접 만져봄
  "AI로 만들었겠지"           "어떻게 만들었지?"
  수십 개 중 하나             그 자리의 유일한 물건
  데모 실패: 새로고침          데모 실패: 그것조차 드라마

사례 해부 — 회전식 전화기에 Pi를 심으면

화제가 된 회전식 전화기 데모의 구조를 해부해 보면, 하드웨어 해킹의 전형적인 패턴이 보입니다. 오래된 물건의 기계적 인터페이스를 GPIO 신호로 번역하는 것입니다.

회전식 다이얼은 사실 단순한 펄스 발생기입니다. 숫자 3을 돌리면 회로가 3번 끊겼다 이어지고, 이 펄스를 세면 어떤 숫자를 돌렸는지 알 수 있습니다. 수화기 거치대(훅 스위치)도 그냥 스위치입니다.

# Raspberry Pi: 회전식 다이얼의 펄스를 세어 숫자 읽기
import RPi.GPIO as GPIO
import time

DIAL_PIN = 17   # 다이얼 펄스 접점
HOOK_PIN = 27   # 수화기 훅 스위치

GPIO.setmode(GPIO.BCM)
GPIO.setup(DIAL_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(HOOK_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def read_digit(timeout=3.0):
    """펄스가 멈출 때까지 세고, 돌린 숫자를 반환"""
    pulses = 0
    last = GPIO.input(DIAL_PIN)
    deadline = time.time() + timeout
    while time.time() < deadline:
        cur = GPIO.input(DIAL_PIN)
        if last == 1 and cur == 0:      # 하강 에지 = 펄스 1회
            pulses += 1
            deadline = time.time() + 0.3  # 펄스 간격만큼 연장
        last = cur
        time.sleep(0.005)               # 디바운스 겸 폴링 주기
    return 10 if pulses == 10 else pulses  # 0은 펄스 10회

print("수화기를 들고 다이얼을 돌리세요")
while True:
    if GPIO.input(HOOK_PIN) == 0:       # 수화기 들림
        digit = read_digit()
        if digit:
            print("돌린 숫자:", digit)
            # 여기서 숫자별 기능 분기:
            # 1번 = 오늘 날씨 TTS, 2번 = 음악 재생, ...
    time.sleep(0.05)

여기에 스피커(수화기에 연결)와 TTS 라이브러리를 더하면 "다이얼을 돌려 기능을 고르는 음성 인터페이스"가 완성됩니다. 핵심 통찰은 이것입니다. 낡은 기계 장치의 대부분은 결국 스위치와 펄스의 조합이고, GPIO는 그것을 읽는 만능 귀입니다. 중고 시장의 모든 빈티지 기기가 잠재적 데모 소재가 되는 이유입니다.

입문 하드웨어 스택 — 무엇으로 시작할까

처음 만나는 선택지는 보드입니다. 3대 입문 보드를 비교합니다.

기준Raspberry Pi 4/5ESP32Arduino Uno
정체리눅스 컴퓨터WiFi 내장 MCU교육용 MCU
OSLinux 풀스택없음(펌웨어)없음(펌웨어)
언어Python 등 전부MicroPython, CC 계열(스케치)
WiFi/BT내장내장기본 없음
GPIO40핀30여 핀14+6핀
소비 전력수 와트매우 낮음낮음
가격대중간~높음매우 저렴저렴
강점카메라, AI, 웹서버무선+배터리 프로젝트단순 제어, 입문
약점부팅 시간, 전력메모리 제약네트워크 부재

실용적인 선택 기준은 다음과 같습니다.

  • 카메라, 음성 인식, 웹 대시보드, AI 모델까지 돌리고 싶다면 Raspberry Pi
  • 배터리로 동작하는 무선 센서/IoT 장치라면 ESP32 — 해커톤 가성비의 왕입니다
  • 모터/LED 단순 제어를 가장 쉽게 시작하려면 Arduino
  • 조합도 정석입니다: Pi가 두뇌(네트워크, 로직), ESP32나 Arduino가 말단(센서, 액추에이터)

여기에 Raspberry Pi Pico(ESP32와 같은 MCU 계열, MicroPython 공식 지원)도 훌륭한 선택지입니다.

기본 회로와 GPIO — 무서워할 것 없다

소프트웨어 엔지니어가 하드웨어를 겁내는 이유의 8할은 회로입니다. 하지만 해커톤 수준에서 필요한 개념은 놀랄 만큼 적습니다.

최소한의 회로 개념 지도

  전압(V) --- 수압        : 전자를 미는 힘 (보드는 3.3V/5V)
  전류(A) --- 수량        : 실제 흐르는 양 (핀당 한계 있음)
  저항(R) --- 밸브        : 흐름을 제한 (LED에는 반드시 저항)
  GND     --- 배수구      : 모든 회로는 GND로 돌아온다

  LED 켜기 (가장 흔한 첫 회로)

  GPIO핀 ----[330옴 저항]----[LED +]----[LED -]---- GND

  버튼 읽기 (풀다운 저항 사용)

  3.3V ----[버튼]----+---- GPIO핀
                     |
                  [10k옴]
                     |
                    GND

규칙 세 가지만 기억하면 보드를 태워 먹는 일은 거의 없습니다.

  1. LED 같은 부품 앞에는 전류 제한 저항을 넣는다
  2. 3.3V 보드 핀에 5V 신호를 직접 연결하지 않는다
  3. 모터처럼 전류를 많이 먹는 부품은 GPIO로 직접 구동하지 않고 트랜지스터/드라이버를 거친다

코드 예제 — MicroPython으로 시작하기

MicroPython은 Python 3 문법을 MCU에서 돌릴 수 있게 한 구현으로, ESP32와 Raspberry Pi Pico에서 공식 지원됩니다. 펌웨어를 굽고 나면 REPL에 접속해 대화형으로 하드웨어를 다룰 수 있습니다. Python을 아는 사람에게는 진입 장벽이 거의 없습니다.

LED 깜빡이기 — 하드웨어의 Hello World

# ESP32 / Raspberry Pi Pico 공통 (핀 번호만 조정)
from machine import Pin
import time

led = Pin(2, Pin.OUT)   # ESP32 내장 LED는 보통 GPIO2

while True:
    led.value(1)
    time.sleep(0.5)
    led.value(0)
    time.sleep(0.5)

온습도 센서 읽기 — DHT22

from machine import Pin
import dht
import time

sensor = dht.DHT22(Pin(4))   # 데이터 핀을 GPIO4에 연결

while True:
    sensor.measure()
    temp = sensor.temperature()   # 섭씨
    hum = sensor.humidity()       # 퍼센트
    print("temp:", temp, "C  humidity:", hum, "%")
    time.sleep(2)

WiFi 연결과 웹 전송 — 센서 데이터를 클라우드로

import network
import urequests
import time
from machine import Pin
import dht

# WiFi 연결
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("HACKATHON_WIFI", "password123")
while not wlan.isconnected():
    time.sleep(0.5)
print("connected:", wlan.ifconfig())

sensor = dht.DHT22(Pin(4))

# 2초마다 측정해 HTTP POST로 전송
while True:
    sensor.measure()
    payload = {
        "device": "esp32-demo-01",
        "temp": sensor.temperature(),
        "humidity": sensor.humidity(),
    }
    try:
        resp = urequests.post(
            "https://example.com/api/telemetry",
            json=payload,
        )
        print("sent:", resp.status_code)
        resp.close()
    except OSError as e:
        print("send failed:", e)
    time.sleep(2)

보드를 웹서버로 — 브라우저에서 LED 제어

import network
import socket
from machine import Pin

led = Pin(2, Pin.OUT)

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("HACKATHON_WIFI", "password123")
while not wlan.isconnected():
    pass
print("open http://" + wlan.ifconfig()[0])

html = """HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n
<html><body>
<h1>ESP32 LED</h1>
<p><a href="/on">ON</a> | <a href="/off">OFF</a></p>
</body></html>
"""

s = socket.socket()
s.bind(("0.0.0.0", 80))
s.listen(1)

while True:
    conn, addr = s.accept()
    req = conn.recv(1024).decode()
    if "GET /on" in req:
        led.value(1)
    elif "GET /off" in req:
        led.value(0)
    conn.send(html)
    conn.close()

40줄짜리 코드로 "폰 브라우저에서 불을 켜는 데모"가 완성됩니다. 해커톤에서 이 정도 피드백 루프면 충분히 시작점이 됩니다.

첫 프로젝트 아이디어 10선 — 난이도별

데모 임팩트와 난이도의 균형을 고려한 목록입니다.

번호프로젝트난이도핵심 부품데모 포인트
1회의실 공기질 신호등ESP32, CO2 센서, LED숫자 대신 색으로
2출입문 열림 알림ESP32, 자석 스위치폰으로 알림 도착
3식물 자동 급수기중하토양 수분 센서, 펌프물 주는 순간의 환호
4미팅 중 표시등중하Pi, 캘린더 API, LED일상 문제 해결
5회전 전화기 음성 비서Pi, 구형 전화기, 마이크레트로 반전 매력
6책상 자세 경고기Pi, 카메라, 부저관객 즉석 체험
7야구 스윙 분석기ESP32, IMU 센서스포츠 + 데이터
8냉장고 재고 카메라중상Pi, 카메라, 비전 모델AI + 실물 결합
9손 제스처 드론 조종Pi, 카메라, 드론 SDK무대 장악력 최고
10자작 스마트 인형뽑기모터 3축, 조이스틱줄 서는 부스 보장

선택 요령은 하나입니다. 데모 순간을 먼저 상상하고 거꾸로 설계하세요. "관객이 버튼을 누르면 3초 안에 물리적 반응이 보인다"가 황금 공식입니다.

해커톤 전략 — 48시간 타임박스

하드웨어 해커톤은 소프트웨어와 시간 배분이 다릅니다. 부품이 죽고, 배선이 틀리고, 납땜이 떨어지는 시간을 계획에 넣어야 합니다.

48시간 하드웨어 해커톤 타임라인 (권장)

  0~2h    아이디어 확정 + 데모 시나리오 1문장으로 정의
          "관객이 X 하면 Y가 움직인다"
  2~6h    핵심 경로(critical path) 검증
          — 가장 불확실한 부품/연동을 최우선으로 동작 확인
  6~12h   최소 데모 완성 (끝까지 한 번 도는 상태)
  12~24h  안정화 + 두 번째 기능
  24~36h  외관(케이스, 배선 정리) — 보이는 것이 절반이다
  36~44h  데모 리허설 5회 이상 + 실패 모드 대비
  44~48h  발표 준비, 배터리 만충, 예비 부품 체크

  철칙
  - 데모에 안 나오는 기능은 만들지 않는다
  - 부품은 전부 2개씩 (죽는다, 반드시)
  - 전원은 가장 흔한 실패 지점 — 보조배터리/케이블 여분
  - 무대 WiFi는 믿지 않는다 — 오프라인 폴백 또는 핫스팟

소프트웨어 해커톤과 가장 다른 점은 통합 시점입니다. 소프트웨어는 마지막에 합쳐도 어떻게든 되지만, 하드웨어는 센서-보드-액추에이터-전원의 통합이 곧 프로젝트 그 자체이므로, 6시간 안에 끝까지 한 번 도는 추한 버전을 만들고 나머지 시간 전부를 개선에 쓰는 것이 정석입니다.

한국과 일본의 메이커 커뮤니티

하드웨어는 혼자 배우기 어렵습니다. 커뮤니티와 행사를 활용하세요.

한국에서는 다음을 참고할 수 있습니다.

  • Maker Faire Seoul: 국내 최대 메이커 행사로, 개인 제작자들의 출품작을 직접 만져볼 수 있습니다
  • 세운상가/용산 전자상가: 부품 조달과 더불어, 세운상가 일대는 도시 재생과 함께 제작 문화의 거점으로 재조명되어 왔습니다
  • 디바이스마트, 엘레파츠 등 온라인 부품상: 해커톤 전날 밤의 구원자입니다
  • 전국 무한상상실/메이커스페이스: 3D 프린터와 레이저 커터를 무료 또는 저가로 쓸 수 있는 공공 공간이 전국에 있습니다

일본은 메이커 문화의 전통이 깊습니다.

  • Maker Faire Tokyo: 아시아 최대급 메이커 행사로, 취미 전자공작의 저변을 실감할 수 있습니다
  • 아키하바라: 부품 상가의 성지로, 라디오회관과 센고쿠덴쇼, 아키즈키덴시 같은 전문 부품점이 밀집해 있습니다
  • M5Stack 커뮤니티: 일본에서 특히 인기 있는 ESP32 기반 모듈형 디바이스로, 케이스/화면/배터리가 통합되어 해커톤에서 조립 시간을 크게 줄여 줍니다
  • NT(니코니코 기술부) 계열 전시회: 쓸데없지만 굉장한 것을 만드는 문화의 본산입니다

두 나라 모두에서 공통된 트렌드는, AI 시대에 오히려 오프라인 제작 모임의 인기가 올라가고 있다는 점입니다. 화면 밖에서 손을 움직이는 경험 자체가 차별화된 여가이자 학습이 된 것입니다.

기업 채용 관점의 변화도 흥미롭습니다. AI가 코딩 테스트의 변별력을 떨어뜨리자, 일부 회사들은 하드웨어 해커톤 수상 경력이나 메이커 포트폴리오를 "도구가 대신 못 하는 문제 해결력"의 증거로 주목하기 시작했습니다. 물건을 끝까지 만들어 본 경험은 통합, 디버깅, 트레이드오프 판단의 종합 증명서이기 때문입니다.

소프트웨어 엔지니어가 하드웨어에서 배우는 것

하드웨어 해커톤의 효용은 트로피만이 아닙니다. 본업으로 가져올 수 있는 교훈이 분명히 있습니다.

  • 리소스 감각의 회복: 메모리 수백 KB, 전력 수 mA의 세계에서는 모든 바이트와 모든 폴링 주기가 비용입니다. 무한 자원에 길들여진 감각이 교정됩니다
  • 실패 모드 설계: 하드웨어는 부분 실패가 기본값입니다. 센서가 가끔 이상값을 뱉고, 전원이 출렁이는 환경은 분산 시스템의 결함 허용 설계와 정확히 같은 사고방식을 요구합니다
  • 디버깅의 겸손함: printf 디버깅조차 사치인 환경(시리얼 콘솔이 죽는 순간)에서, 가설-검증의 기본기가 단련됩니다
  • 추상화 비용에 대한 직관: HTTP 요청 한 번이 배터리 수명에서 무엇을 의미하는지 몸으로 알게 되면, 클라우드 비용 최적화 감각도 달라집니다

시작 체크리스트

이번 달에 시작하고 싶다면, 다음 순서를 권합니다.

하드웨어 입문 체크리스트

  쇼핑 (총 5만원 안팎이면 충분)
  [ ] ESP32 개발 보드 또는 Raspberry Pi Pico W (2개씩)
  [ ] 브레드보드 + 점퍼 와이어 세트
  [ ] LED/저항/버튼 기본 키트
  [ ] DHT22 온습도 센서 (또는 아무 I2C 센서)
  [ ] USB 케이블 (데이터 지원 여부 확인 — 충전 전용 함정 주의)

  소프트웨어 준비
  [ ] MicroPython 펌웨어 굽기 (esptool 또는 공식 UF2)
  [ ] Thonny IDE 또는 mpremote 설치
  [ ] REPL 접속 확인 — print 한 줄이 나오면 절반 온 것

  첫 주말 목표
  [ ] LED 깜빡이기 (하드웨어의 Hello World)
  [ ] 버튼 입력 읽기
  [ ] 센서 값 읽어 콘솔 출력
  [ ] WiFi 연결해 값 하나를 HTTP로 전송

  다음 단계
  [ ] 위 프로젝트 10선에서 난이도 하 1개 완성
  [ ] 지역 메이커스페이스 방문 또는 행사 참가 신청
  [ ] 하드웨어 해커톤 참가 (한 번이면 충분히 중독됩니다)

함정과 반론 — 균형을 위한 메모

하드웨어 해커톤 예찬에도 반론은 있습니다.

  • 진입 비용: 무료인 소프트웨어와 달리 부품 비용과 조달 시간이 들고, 이는 참가 장벽으로 작용합니다. 주최 측이 부품 키트를 제공하는 행사를 고르는 것이 좋은 시작입니다
  • 운의 비중: 부품 불량과 배송 지연 같은 외생 변수가 결과를 좌우할 수 있습니다. 예비 부품 원칙이 이를 일부 상쇄합니다
  • AI 위협의 과소평가: 회로 설계 보조, PCB 자동 배선, 펌웨어 생성까지 AI는 하드웨어 영역도 빠르게 잠식 중입니다. "AI가 못 하는 영역"이라는 우위는 영원하지 않을 수 있습니다. 다만 물리적 조립과 현장 디버깅의 마지막 구간은 가장 오래 사람의 몫으로 남을 것입니다
  • 데모 편향: 만질 수 있는 데모가 항상 더 가치 있는 제품을 의미하지는 않습니다. 심사 기준이 임팩트에 치우치면 실용성이 희생될 수 있다는 비판도 타당합니다

그럼에도 결론은 변하지 않습니다. 배움의 밀도와 재미의 총량에서, 하드웨어 해커톤은 2026년 현재 가장 수지맞는 주말 투자 중 하나입니다.

마치며

"RIP software hackathons"라는 제목은 과장이지만, 그 아래의 통찰은 진짜입니다. 생성 비용이 0으로 떨어진 것들은 더 이상 감동을 주지 못하고, 감동은 여전히 비싼 것들 — 물리 세계의 마찰을 뚫고 만들어진 것들 — 의 몫이 됐습니다.

다행히 그 비싼 것의 입장권은 생각보다 쌉니다. ESP32 보드 한 장, MicroPython 펌웨어, 그리고 LED 하나를 깜빡이게 만드는 첫 30분. 화면 밖에서 무언가가 당신의 코드로 움직이는 순간의 감각은, 첫 Hello World의 기억만큼 오래 남을 것입니다.

참고 자료