Chapter 16. [캡스톤] 바이브 코딩으로 나만의 작품 완성하기
지금까지 Chapter 1~13을 통해 LED, 스위치, 부저, 초음파·PIR 센서, 가변저항·서보모터, 온습도 센서, Neopixel, I2C LCD, Wi-Fi·BLE·IR 통신, MQTT 클라우드, OLED·RTC까지 Pico 2 W로 만들 수 있는 거의 모든 핵심 부품을 직접 다뤄봤습니다. 이번 마지막 챕터에서는 그동안 배운 부품과 코드를 재료 삼아, AI와 함께 대화하듯 코드를 짜는 "바이브 코딩(Vibe Coding)" 방식으로 여러분만의 아이디어를 실제 작품으로 완성해 봅시다.
💡 바이브 코딩(Vibe Coding)이란?
바이브 코딩은 문법을 한 줄 한 줄 외워서 짜는 대신, "이런 동작을 하는 작품을 만들고 싶어"라고 AI(Claude, ChatGPT 등)에게 자연어로 설명하고, AI가 초안 코드를 만들어주면 실제 보드에 올려 테스트 → 문제점을 다시 AI에게 설명 → 수정, 이 과정을 반복하며 완성해가는 개발 방식입니다. 여러분은 이제 "무엇을 만들고 싶은지"와 "지금 어떤 부품·핀을 쓰는지"를 정확히 설명할 수 있는 지식을 갖추었으므로, AI를 강력한 코딩 파트너로 활용할 준비가 되었습니다.
16.1 나만의 작품 아이디어 구상하기
완성작을 만들기 전, 아래 표의 질문에 스스로 답하며 아이디어를 구체화해 보세요. 막연히 "재미있는 걸 만들고 싶다"보다 "누가, 언제, 어떤 문제를 해결하려고 쓰는 물건인가"를 먼저 정하면 설계가 훨씬 쉬워집니다.
| 기획 질문 | 예시 답변 |
|---|---|
| 누구를 위한 작품인가요? | 반려동물을 혼자 두고 외출하는 우리 가족 |
| 어떤 문제를 해결하나요? | 사료가 줄어드는지, 물그릇 근처에 왔는지 알 수 없어 불안하다 |
| 입력(센서)은 무엇인가요? | PIR 모션 센서(접근 감지), 초음파 센서(사료량 측정) |
| 출력(반응)은 무엇인가요? | LCD/OLED에 상태 표시, 부저 알림, Wi-Fi로 스마트폰에 알림 |
| 어떤 챕터의 코드를 재활용하나요? | Ch5(PIR·초음파), Ch9(I2C LCD), Ch11(MQTT 알림) |
🎲 막막할 때 참고할 아이디어 예시
토양 습도(ADC) + 조도 + LCD 상태 표시 + 부족하면 부저/LED 경고
PIR + 초음파로 방문자 감지, OLED에 환영 문구, Neopixel 색상 연출
RTC 기반 정시 알람 + 서보모터로 커튼 열기 + 부저 멜로디
DHT11 + MQTT로 Adafruit IO 전송, 웹 브라우저로 실시간 확인
16.2 AI와 함께하는 바이브 코딩 4단계
[1단계] 요구사항을 구체적으로 설명하기
AI에게 막연하게 "코드 짜줘"라고 하지 말고, 아래처럼 사용 부품, 핀 번호, 원하는 동작 순서를 구체적으로 알려주세요. 지금까지 배운 챕터 지식이 여기서 정확한 요청서 역할을 합니다.
GPIO 14번에 PIR 센서, GPIO 15/16번에 HC-SR04 초음파 센서(trig/echo),
I2C0(GPIO 0=SDA, GPIO1=SCL)에 I2C LCD1602가 연결돼 있어.
PIR이 움직임을 감지하면 초음파로 거리를 재고, 50cm 이내면
LCD에 '방문자 감지!'를 출력하고 부저(GPIO 13)를 0.5초 울리는
코드를 작성해줘. 5초마다 반복 감지하도록 while True 구조로 짜줘."
[2단계] AI가 만든 초안 코드를 실제 보드에 업로드해서 테스트
Thonny(또는 VS Code + MicroPico)로 AI가 준 코드를 Pico에 업로드하고 실행합니다. 처음부터 완벽하게 동작하는 경우는 드뭅니다 — 이것이 정상입니다.
[3단계] 에러/이상 동작을 정확하게 다시 설명하기
Thonny 하단 [쉘] 창에 뜨는 에러 메시지 전체를 그대로 복사해서 AI에게 붙여넣고, "이 에러가 났어, 고쳐줘"라고 요청하세요. 에러 메시지가 없어도 동작이 이상하다면 "LED가 안 꺼져요", "거리 값이 이상하게 나와요"처럼 관찰한 현상을 최대한 자세히 설명해야 AI가 원인을 정확히 짚어줍니다.
⚠️ 좋은 질문 vs 나쁜 질문
- ❌ "안 돼요, 고쳐주세요" (정보 부족)
- ✅ "Traceback에
OSError: [Errno 5] EIO가 나왔어요. I2C 주소는 0x27로 설정했고, LCD1602 모듈이에요."
[4단계] 반복 개선(iteration)으로 완성도 높이기
동작이 확인되면 "여기에 Neopixel로 상태 색상도 추가해줘", "5초 감지 주기를 조절 가능하게 변수로 빼줘"처럼 기능을 하나씩 추가하며 완성도를 높여갑니다. 한 번에 모든 기능을 요청하기보다, 작은 단위로 나눠서 테스트→개선을 반복하는 것이 바이브 코딩의 핵심입니다.
16.3 Wokwi로 최종 작품 사전 검증하기
부품을 아직 다 준비하지 못했거나, AI가 만들어준 코드의 로직만 먼저 확인하고 싶다면 Wokwi에서 먼저 시뮬레이션해 보세요. Chapter 1의 1.8절에서 배운 방법대로 wokwi-pi-pico 프로젝트를 새로 만들고, 여러분의 작품에 필요한 부품들(PIR, 초음파, LCD, 서보, Neopixel 등)을 diagram.json에 조합하면 됩니다.
💡 Wokwi 검증 체크리스트
- 여러 센서를 동시에 diagram.json에 배치하고 핀 번호가 실제 배선 계획과 일치하는지 확인
- Wi-Fi/BLE/실제 클라우드 통신이 필요한 부분은 시뮬레이션 대상에서 제외하고, 로컬 센서·LCD·모터 로직만 우선 검증
- 시뮬레이션에서 로직이 정상 동작하면, 실제 보드에서는 배선 오류·전원 문제만 집중적으로 점검하면 되므로 디버깅 시간이 크게 줄어듭니다
16.4 완성 작품 발표 체크리스트
작품이 완성되면 아래 항목을 스스로 점검하고, 발표 자료를 준비해 보세요.
최종 점검 체크리스트
- ☐ 작품이 해결하려는 문제와 사용자가 명확히 정의되어 있는가?
- ☐ main.py로 저장하여 전원만 연결해도 자동 실행되는가? (Ch3 참고)
- ☐ 사용한 센서/부품 목록과 GPIO 핀 배치도를 정리했는가?
- ☐ 예외 상황(센서 미연결, 값 이상 등)에도 프로그램이 멈추지 않는가?
- ☐ AI와 주고받은 핵심 프롬프트를 기록해 개발 과정을 설명할 수 있는가?
- ☐ 회로도(사진 또는 diagram.json) 와 완성 코드를 함께 제출할 준비가 되었는가?
최종 과제. 나만의 캡스톤 작품 완성하기
16.1절에서 구상한 아이디어를 바탕으로, 최소 센서 1개 + 출력 장치 2개 이상을 조합한 나만의 작품을 완성하세요. 16.2절의 4단계 바이브 코딩 절차를 따라 개발하고, 아래 형식으로 결과물을 정리해 제출합니다.
🎉 수고하셨습니다!
Chapter 1의 하드웨어 기초부터 이 캡스톤 챕터까지, 여러분은 이제 아이디어를 떠올리고, AI의 도움을 받아 코드를 작성하고, 실제 하드웨어로 구현해내는 메이커(Maker)의 전체 사이클을 경험했습니다. 여기서 멈추지 말고, 새로운 센서나 액추에이터를 하나씩 추가해가며 여러분만의 IoT 작품을 계속 발전시켜 보세요!