
웹개발쟁이한테 Arduino IDE, STM32Cube 등의 MCU 전용 IDE는 너무 불편했다
부트캠프에서 IoT 프로젝트를 진행하고 있다. 막상 코드를 작성하다 보니 Arduino IDE가 너무 불편하다는 걸 느꼈다.
예전에 사용했던 STM32Cube가 오히려 선녀였을 정도로...!! 정말정말 불편했다.
Arduino IDE가 불편했던 점은 세 가지였다:
1. Git 연동이 안 된다.
2. 자동완성이나 함수로 바로가기 기능이 거의 없다.
3. 여러 파일을 나눠서 관리하기가 정말 불편하다.
나는 웹 프로그래밍 위주의 편한 IDE로 공부해왔던 터라, 이런 비직관적인 환경이 더 답답하게 느껴졌다.
학생이라 비싼 상용 IDE를 쓰기도 부담스러워서, 결국 VSCode의 PlatformIO IDE 확장 프로그램으로 갈아탔다.
설치는 간단하다.
VSCode에서 PlatformIO IDE 확장 프로그램을 설치한 뒤, 보드와 프레임워크만 선택해주면 된다.

보드도 Arduino, STM32 보드를 포함해 총 1500건 이상의 보드가 세팅되어 있다.
집 컴퓨터에 확장 프로그램을 설치하고 프로젝트를 만들어 보니까 렉이 꽤 걸렸다. 혹시 문제가 생길까 불안했는데 아니나다를까 프로젝트에서 Arduino.h 가 인식이 안 됐다. 내가 해온 시도들을 정리해 봤다:
pio --version
정상 설치가 된 경우, pio 명령어가 자동으로 사용이 되어야 한다. 인식을 못하면 설치가 잘못된 것이다.
pip install -U platformio
일단 여기까지면 셋팅은 완료된다!
Git 연동 완벽 지원
VSCode 기반이라 Git 연동이 당연히 된다.
코드 버전 관리, 커밋, 브랜치 전환 모두 가능하다!
자동완성과 바로가기가 직관적
함수, 변수 이름 자동완성은 물론이고
Ctrl+클릭으로 선언부로 바로 이동도 된다.
여러 파일 관리가 편하다
이게 진짜 최고 장점이다.
Arduino IDE는 .ino 파일 하나에 전부 코드를 몰아넣기 때문에, 규모가 조금만 커져도 정리하기가 힘들다. 한 창에서 여러 파일을 한꺼번에 보기 어려운 것도 단점이었다.
PlatformIO는 폴더 구조 자체가 프로젝트 단위로 잡혀 있어서 src/, lib/, include/ 디렉터리로 깔끔하게 나뉜다.
다만 한 가지 차이점이 있다.
Arduino IDE는 자주 쓰는 기본 라이브러리(Servo.h, Wire.h, SPI.h 등)가 이미 포함되어 있어서 따로 추가할 필요가 없다.
하지만 PlatformIO는 직접 의존성을 명시해야 한다.
예를 들어, Servo 라이브러리를 쓰고 싶다면
platformio.ini 파일에 이렇게 적어줘야 한다.
[env:uno]
platform = atmelavr
board = uno
framework = arduino
lib_deps =
arduino-libraries/Servo
이렇게만 설정하면 PlatformIO가 자동으로 설치해준다.
나 같은 경우엔, 중간에 PlatformIO IDE 자체가 잘못 설치 됐어서 그런 건지, 위 방법으로 Servo 라이브러리를 추가해도 include가 안 됐다.
pio lib list
pio lib install " {라이브러리 이름} "
pio lib install "arduino-libraries/Servo@1.2.1"
pio run --target clean
처음엔 단순히 “IDE가 불편해서” 갈아탔지만, 막상 써보니까 PlatformIO는 단순한 대체품이 아니라 진짜 개발 환경이었다. Git 연동, 자동완성, 폴더 구조까지 전부 만족한다
라이브러리 추가 정도의 불편함은 감수할 만한 리스크다. 스프링 생각하면 크게 낯설지도 않다!
PlatformIO IDE 공식 문서 - Quick start
PlatformIO IDE 공식 문서 - pio lib 명령어