보드 선택 기준
ESP8266은 아직도 쓸만한가
결론부터 말하면 ESP8266은 아직도 쓸만합니다. 다만 “싸고 익숙하니까 아무 데나 쓰는 보드”가 아니라, Wi-Fi만 필요하고 일이 단순한 장치에 넣을 때 가치가 있습니다. 새 프로젝트의 기본 선택은 ESP32 쪽으로 옮겨갔지만, 작은 센서 노드나 릴레이 제어기처럼 역할이 분명한 장치에서는 ESP8266이 여전히 현실적인 선택입니다.
아직도 쓰이는 현실적인 이유
ESP8266이 오래된 보드인데도 계속 쓰이는 이유는 성능이 뛰어나서라기보다, 필요한 기능을 작고 단순하게 해결해 주기 때문입니다. Wi-Fi 연결, GPIO 몇 개, 센서값 읽기, HTTP나 MQTT 전송 정도가 목적이라면 더 복잡한 보드가 항상 이득은 아닙니다. 실제 제작에서는 최신 칩보다 “충분히 안정적으로 돌아가는가”, “자료가 많은가”, “고장 났을 때 빨리 교체할 수 있는가”가 더 중요할 때가 많습니다.
ESP8266은 Arduino IDE 예제와 라이브러리가 매우 많습니다. DHT22, DS18B20, BH1750, 릴레이 모듈, OLED, MQTT, 간단한 웹서버 예제를 찾기 쉽고, 문제를 겪었을 때 검색 결과도 많습니다. 처음 만드는 사람에게는 이 점이 큽니다. 보드가 좋아도 자료가 부족하면 작은 오류 하나에 시간이 많이 묶입니다.
또 하나의 이유는 부품 재활용입니다. 이미 [3편] 집 안 온습도, 감으로 보지 말고 숫자로 보자를 갖고 있거나, 예전에 만들어 둔 회로와 케이스가 ESP8266 기준이라면 굳이 전부 ESP32로 바꿀 필요가 없습니다. 센서 하나를 읽어 서버로 보내는 장치라면 보드를 바꿔도 사용자가 얻는 가치는 거의 달라지지 않습니다.
현실적으로 잘 맞는 용도
ESP8266이 가장 잘 맞는 영역은 “작은 Wi-Fi 장치”입니다. 장치가 하는 일이 명확하고, 동시에 처리해야 할 작업이 적고, BLE나 카메라 같은 기능이 필요 없을 때 적합합니다.
- 온습도 모니터링: DHT22, SHT 계열, DS18B20 같은 센서값을 1분 또는 5분 간격으로 서버에 보내는 장치.
- 문 열림 감지: 리드스위치나 자석 센서로 문 상태를 감지하고 MQTT로 open/close 이벤트를 보내는 장치.
- 릴레이 1~2채널 제어: 조명, 팬, 작은 펌프처럼 단순 on/off 제어가 필요한 장치. 단, AC 전원 제어는 절연과 안전 설계가 별도로 필요합니다.
- 상태 표시 장치: OLED나 작은 LED 매트릭스에 서버 상태, 온도, 간단한 알림을 보여주는 장치.
- HTTP API 호출 장치: 버튼을 누르면 특정 웹훅을 호출하거나, 서버에서 값을 읽어 표시하는 미니 컨트롤러.
- MQTT 단순 노드: 센서값 publish, 명령 subscribe, 상태 retain 정도만 필요한 장치.
이런 용도에서는 ESP8266의 한계가 크게 문제가 되지 않습니다. 오히려 보드가 작고 예제가 많아서 빠르게 만들 수 있습니다. 특히 집 안, 사무실, 장비실처럼 Wi-Fi가 이미 있는 공간에서는 별도 게이트웨이 없이 바로 서버와 통신할 수 있다는 장점이 있습니다.
ESP8266을 피하는 게 나은 용도
반대로 아래 조건이 들어가면 ESP8266을 고집하지 않는 편이 좋습니다. 가능은 해도 여유가 부족해서 나중에 유지보수가 힘들어지는 경우가 많습니다.
- BLE가 필요한 장치: 스마트폰 근거리 설정, BLE 센서 연동, BLE Beacon 스캔이 필요하면 ESP32 계열이 맞습니다.
- 카메라나 음성 처리: ESP8266에는 이런 작업을 감당할 여유가 없습니다.
- 복잡한 웹 UI: 설정 페이지, 차트, 인증, 여러 API를 동시에 처리하는 장치는 메모리 여유가 부족할 수 있습니다.
- TLS 연결이 잦은 장치: HTTPS, MQTTS를 안정적으로 많이 쓰려면 메모리와 인증서 관리가 부담이 됩니다.
- 센서와 주변장치가 많은 장치: GPIO 수와 인터럽트, 버스 충돌, 전원 설계가 복잡해질수록 ESP32가 편합니다.
- 상업용 장기 제품: 새로 설계하는 제품이라면 부품 수급, 보안 업데이트, 확장성을 고려해 ESP32 계열을 우선 검토하는 편이 안전합니다.
ESP32와 비교해서 보는 선택 기준
ESP32가 더 강한 보드인 것은 맞습니다. CPU 코어, RAM, GPIO, ADC, BLE, 보안 기능, 주변장치 확장성에서 ESP32가 유리합니다. 그래서 “새로 시작하는데 특별한 이유가 없다면 ESP32”라는 판단은 합리적입니다. 하지만 모든 장치가 ESP32의 기능을 쓰는 것은 아닙니다.
| 상황 | ESP8266 | ESP32 |
|---|---|---|
| Wi-Fi 센서 1~2개 | 충분함 | 가능하지만 기능이 남음 |
| BLE 필요 | 부적합 | 적합 |
| 릴레이 1~2개 | 충분함 | 충분함 |
| 복잡한 로컬 UI | 비추천 | 권장 |
| MQTT 단순 publish | 충분함 | 충분함 |
| 센서 다수 + 향후 확장 | 빠듯함 | 권장 |
실제 판단은 “지금 필요한 기능”과 “나중에 바뀔 가능성”을 같이 봐야 합니다. 오늘은 온도 하나만 보내지만 나중에 화면, 버튼, 설정 페이지, OTA, 보안 연결, 여러 센서를 붙일 가능성이 크다면 처음부터 ESP32로 가는 편이 낫습니다. 반대로 장치 역할이 앞으로도 바뀌지 않는다면 ESP8266으로 충분합니다.
전원과 안정성에서 자주 생기는 문제
ESP8266 문제의 상당수는 코드보다 전원에서 시작됩니다. USB에 꽂아 테스트할 때는 잘 되다가 현장에 설치하면 재부팅하거나 Wi-Fi가 끊기는 경우가 있습니다. Wi-Fi 송신 순간 전류가 튀는데, 저가 레귤레이터나 긴 배선, 약한 어댑터를 쓰면 전압이 흔들립니다.
특히 릴레이, 부저, LED 스트립, 모터처럼 전류를 크게 쓰는 부품과 같은 전원을 공유하면 문제가 더 잘 드러납니다. 센서값이 갑자기 튀거나 MQTT 연결이 끊기거나, 이유 없이 재부팅된다면 코드 수정 전에 3.3V 전압, GND 공통, 전원 어댑터 용량, 릴레이 코일 노이즈를 먼저 봐야 합니다.
- ESP8266 보드의 3.3V 레귤레이터가 충분한지 확인합니다.
- 릴레이나 모터는 가능하면 별도 전원과 보호 회로를 둡니다.
- 전원선이 길면 전압 강하와 노이즈를 의심합니다.
- 부팅 실패가 있으면 GPIO0, GPIO2, GPIO15 같은 부팅 관련 핀 연결을 확인합니다.
장기 구동을 위한 최소 코드 기준
ESP8266을 실사용 장치로 쓰려면 예제 코드 그대로 끝내면 안 됩니다. Wi-Fi가 끊겼을 때 재접속하고, MQTT publish 실패를 기록하고, 센서 읽기에 실패해도 장치가 멈추지 않게 해야 합니다. 작은 장치일수록 장애 원인을 볼 화면이 없기 때문에 상태 LED나 간단한 로그가 중요합니다.
- Wi-Fi 연결 실패 횟수를 세고 일정 횟수 이상이면 재부팅합니다.
- MQTT 연결 상태와 마지막 publish 성공 시각을 저장합니다.
- 센서값이 비정상 범위일 때 바로 서버로 보내지 않고 재측정합니다.
- watchdog을 막는 긴 delay를 줄이고, 루프가 계속 돌도록 만듭니다.
- OTA를 넣을 계획이면 플래시 용량과 펌웨어 크기를 초기에 확인합니다.
현장에서 쓰는 판단 기준
ESP8266은 “지금도 쓸 수 있는 보드”이지만, 모든 새 작업의 기본값으로 보기는 어렵습니다. 판단 기준은 명확합니다. Wi-Fi만 필요하고, 센서나 출력이 적고, 장치 역할이 명확하고, 나중에 기능이 크게 늘 가능성이 낮으면 ESP8266을 사용할 수 있습니다. BLE, 여유 메모리, 보안 연결, 확장성, 복잡한 UI가 조금이라도 중요하면 ESP32를 선택하는 편이 안전합니다.
즉 ESP8266의 가치는 최신성에 있지 않습니다. 단순한 일을 단순하게 끝내는 데 있습니다. 온습도 하나를 서버로 보내는 장치에 과한 보드를 쓰는 것보다, 전원과 케이스와 재접속 로직을 제대로 만든 ESP8266 장치가 현장에서는 더 오래 버틸 수 있습니다.
정리하면, ESP8266은 “새로운 기능을 넓게 실험하는 보드”라기보다 “작고 반복적인 Wi-Fi 노드를 빠르게 만드는 보드”입니다. 이 역할을 정확히 알고 쓰면 아직도 충분히 쓸만합니다.