여러분들은 혹시 '하이브리드'라는 단어의 개념을 알고 계신가요?
사전적인 의미로는 서로 다른 것의 장점을 결합하거나 부가가치를 더해 새로운 것을 창조하는 통합의 개념으로 이해할 수 있는데요. 최근 개발자 사이에서 주목받는 하이브리드형 언어가 있습니다. 바로 오늘 여러분들에게 소개해 드릴 '러스트(Rust)'입니다!
《러스트 프로그래밍 공식 가이드》
러스트는 모질라(Mozilla)가 창안한 프로그래밍 언어로, 2012년 1월에 첫 번째 알파 버전인 0.1이 발표되었습니다. 원래는 C 및 C++ 등의 언어에서 발생하는 핵심 보안 결함인 메모리 관련 버그를 방지하는 것을 목적으로 개발되었습니다. 또한, 모질라는 러스트를 성능, 병렬화, 메모리 안전에 중점을 둔 새로운 프로그래밍 언어라고 정의했습니다.
저수준의 상세한 메모리 관리, 데이터 표현, 그리고 동시성 등을 고려해야 하는 ‘시스템 수준’의 작업을 생각해 볼까요? 전통적으로 이런 프로그래밍의 범위는 매우 어려우며, 그 악명 높은 어려움을 피해 가는 방법은 수년간 공부한 몇몇 소수만이 익힐 수 있는 것이었습니다. 또한, 아무리 주의 깊게 개발하는 것이 몸에 밴 사람이라도 그들이 작성한 코드는 여전히 잘못 실행되거나 충돌이 발생할 가능성이 있었죠.
러스트는 이러한 어려움을 제거하고 같은 작업을 수행할 수 있는, 더 친근하면서도 적절한 도구들을 제공함으로써 그 장벽을 허물고자 노력했습니다. 저수준의 제어를 해야 하는 프로그래머들은 통상적인 충돌이나 보안 허점의 위협 없이, 그리고 불안정한 도구들을 새롭게 배우지 않고도 러스트를 이용해 목적을 달성할 수 있습니다.
이미 저수준의 코드를 다루는 프로그래머라면 러스트를 시작할 수 있습니다. 예를 들어, 러스트의 병렬성은 그 위험도가 훨씬 낮은 작업입니다. 컴파일러가 대부분의 실수를 미리 감지해 주기 때문이죠. 또한, 실수로 충돌이나 자원의 부적절한 사용을 유발하지 않는다는 자신감을 바탕으로 더욱 공격적인 최적화를 수행할 수도 있습니다.
최근 마이크로소프트의 발표에 따르면 지금까지 윈도우 운영체제에서 발견된 버그의 70% 가량이 메모리 관련 버그이며, 이 문제를 해결하려는 방편의 목적으로 러스트의 사용을 심각하게 고려하고 있다고 합니다.
하지만 러스트는 단지 저수준 시스템 프로그래밍을 위한 언어가 아닙니다. 러스트는 표현이 풍부하며, CLI 앱, 웹 서버를 비롯해 다양한 종류의 코드를 즐겁게 작성할 수 있는 인간공학적인 언어입니다. 다만, 자바나 파이썬, C# 같은 고수준 언어를 주로 다루는 개발자들에게 러스트가 다소 생소하게 느껴질 수도 있습니다. 고수준 언어에서는 대부분의 개발자가 굳이 신경 쓰지 않아도 되는 많은 부분이 러스트 코드를 작성할 때는 상당히 중요한 부분이기 때문이죠. 또한, 깐깐한 러스트 컴파일러가 아무리 친절하게 에러 메시지를 출력해 준다고 해도 그 에러의 원인이 정확히 무엇인지 파악하기도 처음에는 쉽지 않을 수 있습니다.
하지만 그 생소함을 이 책을 통해 익숙함으로 바꾸면 러스트의 무궁무진한 장점을 느낄 수 있을 것입니다. 다른 프로그래밍 언어를 작성하면서 느낀 불안감이 줄어들 것입니다!
러스트는 이런 장점 때문에 지난 2016년부터 2019년까지 스택오버플로우에서 개발자를 대상으로 진행한 가장 인기 있는 프로그래밍 언어 설문 조사에서 1위를 차지했으며, 지금도 그 인기가 지속되고 있습니다. 개발자들은 이미 러스트 엔진을 사용하여 게임 엔진, 운영체제, 파일 시스템, 브라우저 구성 요소, 가상현실을 위한 시뮬레이션 엔진 등을 만들고 있으며, 무엇보다 그 무궁무진한 활용 가능성에 주목하고 있습니다.
무엇보다 이 책은 러스트 코어팀의 두 개발자인 스티브 클라브닉(Steve Klabnik)과 캐롤 니콜스(Carol Nichols)가 집필한 공식 가이드로서 저희 제이펍이 국내 독자분에게 처음 소개해 드리는 러스트 1호 도서입니다.
마지막으로, 저자 스티브 클라브닉이 강연한 동영상 자료를 게시하니 한번 시청해 보시길 추천합니다(영어 강의이지만 이해에 도움이 되는 이미지와 텍스트가 제공됩니다).
Rust in Production from Chariot Solutions on Vimeo.
■ 샘플 PDF
(차례, 옮긴이 머리말, 추천사, 감사의 말, 이 책에 대하여, 베타리더 후기, 1장 '시작하기' 전체, 3장 '일반 프로그래밍 개념' 일부, 5장 '구조체를 활용한 관련 데이터의 구조화' 일부, 7장 '패키지, 크레이트, 모듈로 프로젝트 관리하기' 일부)
■ 도서구매 사이트(가나다순)
■ 제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)
'출간 전 책 소식' 카테고리의 다른 글
걷는 마음으로, 부담 없이 시작하는 함수형 언어 입문! (0) | 2019.11.25 |
---|---|
빅데이터 시대, 텍스트 분석도 머신러닝으로?! (0) | 2019.11.20 |
포토샵 사용자라면 누구나 한 권쯤 소장해야 할 책 (2) | 2019.11.14 |
최신 버전으로 업데이트한 프로페셔널 안드로이드(제4판)를 만나세요! (0) | 2019.10.23 |
송쌤이 알려 주면 '스크래치'도 다릅니다! (0) | 2019.10.22 |