주말을 이용해 아두이노 개발 환경을 변경하다.
지금까지 IoT 개발 하면서 Arduino IDE를 사용하다가, 이번에 PlatformIO(https://platformio.org/)로 개발 환경을 변경했다. 나는 왠만하면 공식 툴을 사용한다는 기조인데, 기존의 IDE는 너무 불편하기도 하였고, 이제 공식 지원이 종료된다고 하여 이참에 변경하기로 마음을 먹었다. 늘 그렇든 개발 환경 변화는 정말 귀찮으면서도 손이 많이 가는 작업이다. 일단 플랫폼이 변경 되면서 기존 코드는 재사용이 가능 했지만, 각종 환경은 호환이 되지 않아 컨버팅을 해야했다. 특히 아두이노 보드들은 이름이 비슷하여도 카피본이 많기 때문에 생산자에 따라 하드웨어 특성 및 펌웨어가 조금씩 다르다. 그렇기 때문에 환경 변화시 테스트 해야할 것들이 많다.
그렇다면 VS Code에서 제공하는 공식 Arduino 플러그인이 아닌 왜 PlatformIO를 선택하였는가? 처음에는 공식 아두이노 플러그인(Arduino Community Edition)을 설치해서 이것저것 해보았다. 그런데 아직 프리뷰인데다가, 보드 매니저, 라이브러리 연결등이 잘 되지 않았다. 물론 내가 잘 못해서 그럴수도 있지만, 아직은 무엇인가 많이 부족해 보였다. 그러다가 MIT 라이선스로 제공되면서도, 많은 커뮤니티 유저를 확보하고 있고, 여러가지 기능들이 잘 통합되어 있는 PlatformIO를 알게 되어, 해당 툴을 선택하였다. PlatfromIO는 기본적으로 풍부한 라이브러리를 제공하고 있었고, 자체 컴파일러도 보유하고 있었다. 그래서 조금더 사용자가 개발하기 편한 환경을 통합으로 제공해주는 느낌이 든다. 또한 기존 Arduino IDE에 사용하던 코드를 컨버팅해주는 기능도 있어 어렵지 않게 컨버팅할 수 있다. 물론 환경변수 세팅 및 상세한 설정은 손 노가다가 조금 필요하다.
기존 IDE에서 VS Code 플러그인 환경으로 전환하고 다음과 같은 장점을 얻었다.
1. 빌드 속도가 기존 IDE에 비하면 빛의 속도이다. 기존 IDE는 빌드 자체도 느려 코드 수정 후 빌드, 펌웨어 업로드까지 너무 많은 시간이 걸렸다.
2. 동일 코드를 여러 기기에 업로드할때, 빌드를 생략할 수 있다. 기존 IDE는 코드가 변경되지 않아도 펌웨어 업로드시 마다 빌드를 하기에 (가뜩이나 느린 빌드인데) 시간 낭비가 너무 많았다.
3. 코드 스니펫이나 코파일럿 등 AI와 함께 협업이 가능해져 툭치면 탁하고 결과물이 나온다. 그래서 기존에는 오류를 찾기 위해 일일이 코드를 매의 눈으로 봐야 했다면 지금은 그냥 헤이~ 코파일럿 도와줘~ 한다.
코드 생산성이 높아지니 이것저것 만들고 싶어지는데, 하드웨어는 손으로 한땀한땀 전선 연결과 납땜 해야해서 하드웨어도 개발 속도를 높일 수 있는 방법도 고민좀 해봐야 겠다.
그렇다면 VS Code에서 제공하는 공식 Arduino 플러그인이 아닌 왜 PlatformIO를 선택하였는가? 처음에는 공식 아두이노 플러그인(Arduino Community Edition)을 설치해서 이것저것 해보았다. 그런데 아직 프리뷰인데다가, 보드 매니저, 라이브러리 연결등이 잘 되지 않았다. 물론 내가 잘 못해서 그럴수도 있지만, 아직은 무엇인가 많이 부족해 보였다. 그러다가 MIT 라이선스로 제공되면서도, 많은 커뮤니티 유저를 확보하고 있고, 여러가지 기능들이 잘 통합되어 있는 PlatformIO를 알게 되어, 해당 툴을 선택하였다. PlatfromIO는 기본적으로 풍부한 라이브러리를 제공하고 있었고, 자체 컴파일러도 보유하고 있었다. 그래서 조금더 사용자가 개발하기 편한 환경을 통합으로 제공해주는 느낌이 든다. 또한 기존 Arduino IDE에 사용하던 코드를 컨버팅해주는 기능도 있어 어렵지 않게 컨버팅할 수 있다. 물론 환경변수 세팅 및 상세한 설정은 손 노가다가 조금 필요하다.
기존 IDE에서 VS Code 플러그인 환경으로 전환하고 다음과 같은 장점을 얻었다.
1. 빌드 속도가 기존 IDE에 비하면 빛의 속도이다. 기존 IDE는 빌드 자체도 느려 코드 수정 후 빌드, 펌웨어 업로드까지 너무 많은 시간이 걸렸다.
2. 동일 코드를 여러 기기에 업로드할때, 빌드를 생략할 수 있다. 기존 IDE는 코드가 변경되지 않아도 펌웨어 업로드시 마다 빌드를 하기에 (가뜩이나 느린 빌드인데) 시간 낭비가 너무 많았다.
3. 코드 스니펫이나 코파일럿 등 AI와 함께 협업이 가능해져 툭치면 탁하고 결과물이 나온다. 그래서 기존에는 오류를 찾기 위해 일일이 코드를 매의 눈으로 봐야 했다면 지금은 그냥 헤이~ 코파일럿 도와줘~ 한다.
코드 생산성이 높아지니 이것저것 만들고 싶어지는데, 하드웨어는 손으로 한땀한땀 전선 연결과 납땜 해야해서 하드웨어도 개발 속도를 높일 수 있는 방법도 고민좀 해봐야 겠다.