내 녹슨 세계로의 여정 - 1부
오늘은 평소 링크드인 게시물보다 조금 더 개인적인 이야기를 나누고자 합니다. Rust-o-Verse의 중심부로 향하는 제 지속적인 여정과 탐구를 상세히 다룬 3부작 시리즈를 소개합니다. 한동안 더 실무 중심의 개발자 역할로 돌아가고 싶은 갈망이 있었습니다. 열정적인 기술자로서 점점 더 많은 소프트웨어가 처음부터 Rust로 작성되거나 Rust로 전환되는 추세를 목격해 왔습니다. 새해와 함께 찾아온 야망과 목표를 안고, 저는 "얼마나 어려울까?"라는 생각과 함께 오픈소스 소프트웨어 정의 차량(SDV) 프로젝트를 선택해 기여하기로 결심했습니다. 결국 다가오는 EclipseCon 행사에서 모두가 탐내는 "Eclipse 커미터" 기념품을 얻어내겠다는 목표도 함께요!
러스트로 작성된 오픈소스 자동차 프로젝트의 중요성을 아직 모르시는 분들께서는 이 흥미로운 '뉴스'인 '새로운' 언어를 사용하는 Eclipse SDV 및 COVESA의 프로젝트들을 살펴보시길 권합니다. 몇 가지 예시를 소개합니다:
여러분도 보시다시피, 제가 오늘날 선택해 작업할 수 있는 수많은 SDV 프로젝트들에서 Rust 프로그래밍을 배우려는 내적 동기가 분명히 드러납니다. 그리고 앞으로 더 많은 프로젝트가 생길 것이라 확신합니다. FOSSbassador로서의 일상 업무에서 저는 이 프로젝트들이 서로 얼마나 호환될 수 있는지, 그리고 Rust를 사용함으로써 얻는 이점을 목격할 때마다 매우 기쁩니다. 이는 결국 Rust로 구축된 번성하고 건강한 커뮤니티를 만드는 데 있어 핵심 경로라고 생각하기 때문입니다.
이러한 점을 고려하여 저는 함대 관리 청사진에 집중하기로 결정했습니다. 이 프로젝트는 여러 이니셔티브(COVESA, Eclipse, AUTOSAR)의 다양한 노력을 통합하려는 시도이기 때문입니다. 또한 이 프로젝트가 자체적으로 오픈소스 플랫폼으로 유기적으로 성장해 가는 모습을 보게 되어 매우 기쁩니다. 다른 기업들의 기여가 더해지면서 커뮤니티가 더욱 다양해지고 있기 때문입니다.
기술 전문가의 관점에서 또 다른 동기는, 예를 들어 <MQTT를 Zenoh로 교체하는 작업>이나 <Curve 로깅을 활용한 함대 관리 데이터 다운샘플링 알고리즘 구현>에 어떤 과정이 포함되는지 특히 궁금하며, 그 과정에서 Rust에 대해 무엇을 배울 수 있을지 살펴보고 싶기 때문입니다.
이 청사진의 배경에 대해 자세히 보기를 원하는 분들을 위해, 제 동료 카이가 이클립스콘에서 훌륭한 기술 세션을 진행하며 프로젝트의 기원을 설명하고, 이 청사진이 해결하는 주요 과제들의 사례를 제시했습니다.
Loading the video requires your consent. If you agree by clicking on the Play icon, the video will load and data will be transmitted to Google as well as information will be accessed and stored by Google on your device. Google may be able to link these data or information with existing data.
이제 본론으로 돌아가자면, 평소 개발 도구와 환경을 다시 익히는 '녹슨' 경험이었지만 이번엔 반전이 있었다. 한때 익숙했던 복잡한 CMake나 파이썬의 마법 같은 가상 환경은 이제 새로운 것으로 대체되었는데, 여러 차례에 걸쳐 과거 임베디드 MISRA C 개발자로서의 경험과 파이썬이나 자바스크립트 같은 '상위 수준' 언어 코딩 세계로의 아주 짧은 여정을 동시에 떠올리게 합니다.
이제 곧 Cargo와 crates.io를 무대에 올릴 시간이 다가왔습니다... 하지만 먼저 리눅스 환경에 Rust와 다른 종속성들을 설치해야 하는데, 여기서 예상치 못한 모험이 시작되었습니다.
온라인 Rust 책의 훌륭한 시작 가이드를 훑어본 후 놀랍게도, 새로 사귄 절친인 cargo CMD를 아주 순진하게 사용하다 첫 난관에 부딪혔습니다. 그래서 머리를 긁적이며, 갓 내린 에스프레소 한 잔과 잠시 정신을 가다듬는 게 지금의 난관을 해결하는 최선의 방법일지도 모른다고 결심했습니다:
화물 적재가 계속 실패한 이유는 무엇인가요?
이제야 비로소 반나절 동안 온갖 방법을 시도해 보다가 결국 레딧과 스택 오버플로의 임시 버퍼를 모두 소진하게 된 시작점이었습니다. 그런데 우분투 OS에서 이 러스트 프로젝트를 실행하려면 선택한 프로젝트를 빌드하고 실행하기 위한 몇 가지 비밀 요령이 필요하다는 사실을 전혀 몰랐던 것이죠....
지금까지 이 블로그를 즐겨주셨기를 바라며, 앞으로도 함께 여정을 이어가며 제가 'Hello World'의 장애물을 어떻게 극복했는지, 그리고 프로젝트에 뛰어들면서 무엇을 배웠는지 알아가길 바랍니다. 또한 페리스라는 이름의 이 작은 러스터션이 자동차 산업에 왜 그토록 유망한지, 그리고 SDV와 앞으로의 제 일상에 핵심이 될 것인지에 대해 여러분과 함께 더 깊이 탐구할 수 있기를 기대합니다!
1부를 읽어주셔서 감사합니다!
다가오는 BCW 행사나 오픈소스 커뮤니티 콜 중 하나에서 만나요 – 그럼 이만!
문의하기
궁금하신 사항은 언제든지 문의해 주시기 바랍니다.