본문 바로가기
[Review]/Book

[도서 리뷰] 이지 러스트

by 해피빈이 2025. 3. 28.

** 한빛미디어 서평단 <나는 리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다.

 

한동안 러스트에 관심을 갖고 보던 때가 있었다.

iOS와 Android, 그리고 게임엔진 등에서도 같이 동작시킬 수 있는 코드를 만들기 위해 고민을 하던 때였다.

C++로 작성하면 모두 커버가 되는 것은 맞지만, 한가지 문제가 있었다.

바로 난이도였다.

타 언어와는 다르게 C++은 난이도가 다소 높다. 물론 계속 C++로만 개발해온 사람이라면 모르겠지만, Java와 Kotlin, Obj-C와 Swift 등을 이용해서 개발해온 개발자의 입장에서라면 C++을 능숙하게 다루기 위해서는 고려해야할 것이 많다.

이런 상황에서 Native와 같은 성능을 제공하며, 다른 언어나 프레임워크 간 상호 호환성도 담보되는 다른 것을 찾기는 쉽지 않았다. 그러던 중 Rust가 눈에 띄었다. 안정성과 속도, 그리고 다른 언어간의 호환성까지 함께 책임질 수 있는 언어로 보였다.

 

결론부터 말하면, 그 당시 실질적인 조사는 어느정도 이루어졌으나 변화의 시기와 맞물리지 않아 아쉽게도 적용하지는 못했다.

그리고 실제 적용했다고 하더라도 나름 이 언어의 특성을 제대로 파악하기에는 여전히 어려운 용어들과 개념들이 존재했기에 그 장벽을 넘지 못해서 쉽지 않았을 것이라고 생각한다.(물론 C++만큼만은 아니지만, 새로운 개념에 대한 어려움은 어디든 존재하기에 그정도의 느낌이었다.)

 

책 정보

일단 책은 상당히 쉽게 보이려 애쓴 흔적이 느껴졌다. 표지부터 이 책은 둥글둥글하니 두려움을 내려놓으세요. 라고 말하는 것만 같았다. 그래서 이 책은 경계심을 풀어주는데 일단 성공했다고 본다. 어느 대상이든(사람 혹은 사물, 현상 등) 경계심을 갖게 되면 친해지는데 시간이 걸린다. 그런 측면에서 이 책은 표지 선택부터 성공했다. 사실 제목도 마찬가지이다. 실습하며 배우는 빠르고 안전한 코드작성의 비결이라니. 러스트를 모르던 사람이라 하더라도 혹하지 않을 수 없다.

 

- 정가: 38,000원

- 분량: 592쪽

- 저자 및 옮긴이: 데이브 매클라우드 / 이지호

 

인상받은 부분

이 책을 구성할 때 각 단위별로 얼마나 짧은지 오른쪽 내용을 보면 실감할 수 있다.

그리고 자연스러운 흐름을 구성했다는 차원에서 2장의 도입부도 머리의 생각에 와 닿았다.

 

하나는 다소 어려운 개념이다. 클로저. 하지만 이터레이터는 자바에서도 쉽게 사용하는 부분이기에 이곳에서 어떻게 설명하고 있는지 관심을 갖고 지켜보았다.

그리고 HTTP 통신한 부분이 인상적이었는데, 매우 간편하게 구현할 수 있었다는 사실에 관심이 가게 되었다. 물론 각종 옵션 설정과 비동기처리까지 한다고 하면 이 코드보다는 더 많은 코드가 필요하겠지만, 기본적인 코드 입장에서는 아주 간단하게 client와 send 함수 호출만으로도 충분히 통신할 수 있는 코드가 된다는 사실은 매력적이다.

 

그리고 챕터의 마지막 부분과 부록 부분도 크게 감동이었다.

사실 도서관리 프로그램은 역자가 별도로 추가한 부분이다. 그런데 이 페이지를 추가하면서 간단하게 완성된 프로젝트는 이렇게 하면 된다는 느낌으로 적어두지 않았고, 실제 프로젝트 간단하게 진행하기에 부족함이 없을 정도로 치밀하고 순차적으로 친절하게 설명을 해 두었다. 그래서 큰 도움이 되었다. 단순히 언어만 배우는 것이 아닌 프로젝트를 경험하면서, 폴더 구조는 어떻게 하는 것이 모범사례인지 궁금했던 나에게 이것을 해소시켜 주었다.

또한 러스트 설치하기도 화면 캡처를 곁들여서 어렵지 않게 설치하도록 도와준다. 이 외에도 Node.js, PostgreSQL, 비주얼 스튜디오 코드, 포드맨 설치 및 연관된 것들을 이어서 구동하는데까지 이르도록 하였다. 이렇게나 친절하게 알려주니 오히려 모르는 척하기가 더 어렵다.

 

이 책을 추천하고 싶은 독자

일단 러스트라는 언어를 생소하게 받아들이는 개발자라도 환영이다. 다만 기본적인 호기심은 필요하겠다. 그정도면 충분하다.

그리고, 웹 개발자와 애플리케이션 개발자도 환영이다. 사실 러스트의 활용가치는 다양하기 때문에 제한을 두고 싶지는 않다. 단지 이것은 도구일 뿐이기 때문에 이러한 도구를 잘 익혀두면 언젠가는 적시적소에 사용할 수 있다. 그래서 기본적으로 5년 이상 하나의 언어나 프레임워크에 집중해 온 개발자라면 환기 차원에서라도 이 책을 통해 러스트를 배웠으면 좋겠다.

 

총평

다른 언어에 대한 경험은 있지만(Python, Java, C#, C++ 등) Rust를 처음 접하는 개발자에게, Rust만의 독특한 개념(소유권, 수명 등)에 대한 두려움이 있다면 좋은 출발점이 될 수 있다고 생각한다. 다만 완전히 개발 자체를 입문하는 사람에게는 추천하고 싶지는 않은데, 이 언어만의 특징을 다른 잘 알려진 언어들과 비교하면서 보기도 어려울 뿐 아니라, 당장에 활용하기에도 잘 알려진 프로젝트와 플랫폼이 많지 않아서 어려움을 겪을 수 있기 때문이다. 그리고 Rust를 몇 번이나 배우려고 노력했으나 실패한 사람에게도 유용하게 느껴질 것이다. 책의 구성을 포함하여 어렵지 않게 읽히기 때문에, 한장씩 넘기다보면 어느순간 익숙해지게 될 것이기 때문이다.

이 책은 1) 핵심 개념의 쉬운 설명으로 어렵지 않은 문체와 명료한 코드 예제로 어떻게 동작하는지 차근히 설명하고 있다. 덕분에 나 역시 막막했던 소유권 규칙을 직원과 관련한 예제 이야기 덕에 직관적으로 이해할 수 있었다. 2) 간단하고 명확한 예제 코드는 지루하지 않고 초점을 벗어나지 않도록 도와준다. 각 예제가 길지 않으며, 또한 메인 함수로 설명하고 있다. 즉, 각 예제는 바로 실행해서 확인하기 좋다는 뜻이다. 3) 점진적인 학습 곡선으로 구성되었다. 가파르지 않은 계단을 오르는 느낌이 들었다. 그래서 물 흐르듯 한장씩 넘기다보니 크게 막히는 느낌이 들지 않았다. 4) 매끄러운 번역도 마음에 든다. 이 책을 처음에는 한국에서 저자가 직접 집필한 줄 알았다. 그러고나서 부록을 보니 역자가 별도로 제공한 내용도 있다고 적혀있는 것을 보고서 이 책이 번역서라는 것을 알게 되었다. 그만큼 자연스러웠다.

Rust를 배우고 싶은 사람이라면 이 책부터 시작하는 것을 권하고 싶다.

 

쉽게 러스트를 배울 수 있지만, 쉽지 않은 개념까지 모두 챙길 수 있는 책

 

반응형

댓글