약 한 달 전 마이크로소프트 최고(distinguished) 엔지니어 게일런 헌트가 링크드인에 채용 공고를 올리면서 다음과 같은 내용을 덧붙여 화제가 됐습니다.

제 목표는 2030년까지 마이크로소프트에서 C·C++를 전부 없애는 것입니다.(출처: https://www.linkedin.com/posts/galenh_principal-software-engineer-coreai-microsoft-activity-7407863239289729024-WTzf)

헌트의 전략은 인공 지능과 알고리즘을 결합해 마이크로소프트의 거대한 코드 기반을 재작성하는 것이었고 팀에 합류하는 엔지니어는 마이크로소프트에서 가장 큰 C·C++ 코드 기반을 러스트로 번역하는 인프라를 강화하는 연구를 하게 된다고 밝혔습니다.
이 글은 헌트의 의도와는 다르게 ‘마이크로소프트가 윈도를 러스트로 재작성한다.’고 확대 해석되었고, 결국 헌트는 윈도를 인공 지능을 활용해 러스트로 재작성하는 것은 아니며, 자신의 팀 프로젝트는 연구 프로젝트일 뿐이라고 해명해야 했습니다.[여담으로 개발자라고 해서 코드로만 말하는 게 아니라 글로도 자신의 의사를 잘 전달할 줄 알아야 한다는 교훈을 주는 사건인 것 같습니다. 아전인수 격이지만 필화(筆禍)에 휘말리지 않을(?) 좋은 글을 쓰고 싶다면 《와인버그에게 배우는 차곡차곡 글쓰기》를 읽어 보세요.]
마이크로소프트에서는 해프닝으로 끝났지만 비슷한 시기 리눅스 커널 개발자 연례 회의에서 러스트가 실험 단계를 통과하고 리눅스 커널 개발 언어로 정식 채택되었습니다. 어쩌면 한두 언어로 모든 분야를 아우르던 시대가 저물고, 분야마다 서로 다른 언어가 강자로 자리 잡는 시대가 오는지도 모르겠습니다. 그렇다면 백악관 권고대로 메모리 안전성이 중요하고 기존 C·C++ 개발자들이 노령화하는 현장에서 별다른 대안이 없을 경우 러스트가 대세가 될지도 모르겠습니다.
그런데 이 러스트란 언어는 배우기가 쉽지 않습니다. 러스트에 관심이 있는 개발자들이라면 대부분 ‘공식 책’으로 공부할 텐데, 막상 다 읽고 나서는 막막한 부분이 많은 게 사실입니다. 러스트는 단순히 문법만 익히는 것만으로는 부족하고 겉으로 보이는 문법 너머에 있는 많은 개념을 습득해야 비로소 손에 붙는 언어인데 입문서에서는 그러한 부분을 충족하기가 쉽지 않습니다.
이번에 소개할 책은 바로 그 간극을 메우려는 의도로 집필된 《기본기부터 다시 새기는 러스트 특강》입니다. 이 책은 러스트의 메모리 안전성 같은 특징의 토대를 이루는 개념(메모리, 타입 등)부터 하나씩 다시 살펴보면서 그 개념들이 실제 코드에는 어떤 식으로 반영되는지, 그 개념들을 어떤 식으로 적용할 수 있는지 설명하고 러스트의 관용적인 표현과 러스트를 사용할 때 유용한 멘탈 모델을 차근차근 익힐 수 있게 안내합니다. 그 이후에는 실제 프로젝트 시 알아 두어야 할 인터페이스 작성, 에러 처리, 프로젝트 구조, 테스트 등을 설명하고 후반부에는 언어의 중고급 기능(매크로, 비동기, unsafe, 동시성, FFI 등)과 다양한 참고 자료를 소개합니다.
코드 자동 생성 시대에 예전처럼 사람이 코드를 많이 빨리 짜는 것은 그다지 중요하지 않을지도 모릅니다. 그보다는 코드를 보는 안목과 좋은 취향이 중요하겠죠. 이 책의 추천사를 쓴 러스트 라이브러리 팀 개발자 데이비드 톨네이는 ‘취향은 언어의 기반에 완전히 익숙해졌을 때 나타난다.’고 말합니다. 이 책이 좋은 취향을 갖춘 러스트 개발자로 성장하고 싶은 독자들에게 도움이 되기를 바랍니다.
다음 서점에서 구매하실 수 있습니다. 교보문고 | 알라딘 | 예스24