| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- 네트워크
- 혼공네트
- 머신러닝
- 리뷰리뷰
- 한빛미디어
- 혼공컴운
- 책리뷰
- vulkan
- 혼공S
- 혼공학습단
- 혼공
- 파이썬
- 혼자공부하는C언어
- 제이펍
- 벌칸
- OpenGL
- 에세이
- 혼공C
- 자바스크립트
- 혼공얄코
- 혼자공부하는네트워크
- C++
- 혼공단5기
- 딥러닝
- 나는리뷰어다
- 혼만파
- 혼공단
- 혼공스
- 혼공머신
- 컴퓨터그래픽스
- Today
- Total
Scientia Conditorium
[책리뷰] 러스트로 갈아타기 본문
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다."
[책리뷰] 러스트로 갈아타기 - 레거시 코드는 살리고 성능은 높이는 단계별 리팩터링 전략

전반적인 소감 및 마음에 드는 부분
소위 RIIR(Rewrite It In Rust) 이라는 밈이 있다. 말 그대로 모든 것을 러스트로 다시 재작성하라는 얘기다. 러스트가 메모리 안전성면에서 뛰어나니 다시 재작성하고 싶기는 한데, 러스트 기본 문법을 모르니 어떻게 시작해야할지 막막했다. 그런 와중에 이 책이 엄청나게 도움됐다. 저자 말대로 이 책은 기존 시스템을 분해하고 다시 작성하는 데 초점을 맞춘 언어를 활용해, 그런 상황에서 유용한 여러 패턴을 제공하는 것이다. 따라서 RIIR에 관심있는 프로그래머에게 딱 어울리는 책이다. 다른 언어와 비교하여 설명해야 하기 때문에 처음에 러스트 문법에 대해 다루기는 하지만 기본적으로 이미 러스트 언어를 조금 알고 있다고 가정하고 진행된다. 애시당초 어떤 언어로 작성된 프로젝트를 러스트로 전환하려는 시도를 하려는 것부터 초보가 아니기 때문에 당연한 가정이다.
대상 독자 및 책 난이도
이 책은 러스트가 아닌 다른 언어로 애플리케이션을 다년간 개발한 경험이 있고 애플리케이션의 성능, 안전성, 유지 보수성을 개선할 방법을 찾고 있는 프로그래머를 대상으로 한다. 다른 언어라고는 했지만 주로 C/C++과 파이썬 언어를 중심으로 다룬다. 따라서 각 언어에 대한 기본적인 문법 설명은 없다고 보면 된다. 구조체(struct), 변수 선언이 어떻고, 함수는 어떻게 해야되는지 등등에 대한 설명이 없다는 의미다. 숙련된 프로그래머라면 대략적인 구조만 보고 문법이 비슷하니 대강 파악할 수 있을 것이다. 따라서 단순히 러스트를 익히고 싶은 주니어급 보단 어느 정도 개발 경험이 있는 시니어급 프로그래머가 대상 독자다.

위 이미지는 책에서 알려준 러스트의 소유권 개념을 시각화한 이미지다. 코드로 설명하는 것보다 훨씬 더 이해하기 쉽다. 이를 확실하게 이해하기 위해선 러스트 기본 문법을 하나도 몰라도 오른쪽에 적힌 코드가 대충 어떤 일을 하는지 알 수는 있어야 한다.
다루는 내용과 범위
크게 3파트로 나뉜다. 러스트에 대한 설명으로 1~2장을 시작하지만 이 부분은 건너뛴다.
3~4장에서 C/C++과 같은 정적 타입 언어를, 6~8장에서 파이썬과 같은 동적 타입 언어를, 9~10장에서 웹어셈블리를 통한 고급 러스트 활용법을 다룬다. 러스트 언어가 주력으로 밀고있는 특징은 메모리 안전성과 성능이다. 따라서 C/C++보다 메모리 안전성이 뛰어나니 이를 변환하는 방법, 파이썬보다 성능이 뛰어나니 이를 변환하는 방법으로 나뉜 것이다. 이를 위해 FFI와 PyO3를 사용한다.
러스트 코드를 기존 애플리케이션에 통합되는 두 가지 주요 기술을 소개한다.
- 프로그램에서 러스트 함수를 직접 호출하기(C FFI / PyO3 크레이트 활용)
- 네트워크를 통한 러스트 서비스 통신
실습 환경은 리눅스 운영체제를 구동하는 컴퓨터 또는 가상머신으로 진행되는데, 윈도우나 맥에서 진행해도 상관없다.
게다가 전체적인 구조도 역시 그림으로 설명해주기 때문에 이해하기 편하다.

결론
RIIR 생각이 있지만 러스트에 대해 아는 것이 없다면 이 책을 적극 추천한다. 단순히 러스트 기본 서적을 보고 다시 작성하는 것보다 이 책을 통해 러스트 기본 개념을 익히고 어떻게 리팩토링 하면 되는지 알면 훨씬 더 수월하다. 다만 아쉬운 점은 C/C++에서 러스트로 갈아타는 이유가 메모리 안전성 때문이라고 하지만 이에 대한 내용이 조금 부족하다. 예를 들어 C/C++에서는 이런 코드를 작성하면 메모리 누수가 날 수 있지만 이걸 러스트로 바꾸면 바로 알 수 있다! 하는 부분은 없다. 단순히 C/C++ 코드를 러스트로 갈아탈 때 어떤 점을 주의해야 하는지에 초점을 맞추고 있다. 책에서 중점적으로 다루는 내용은 러스트로 전환하는 방법이기 때문에 이 이상 깊게 들어갈 필요는 없긴 하다. 어쨌든 정리하자면 러스트로 전환을 고민하는 프로그래머들보다는 러스트로 전환을 결정한 프로그래머들에게 꼭 필요한 책이다.
'서평 > IT-책' 카테고리의 다른 글
| [책리뷰] 유니티와 OpenAI API로 만드는 인공지능 NPC (0) | 2026.02.01 |
|---|---|
| [책리뷰] 그림으로 이해하는 챗GPT 구조와 기술 (0) | 2026.01.01 |
| [책리뷰] 개발자답게 코드로 익히는 강화학습 (0) | 2025.09.19 |
| [책리뷰] Do it! 알고리즘 코딩 테스트 C++편 (0) | 2025.08.27 |
| [혼만파] 혼공학습단 14기_혼자 만들면서 공부하는 파이썬 6주차 (0) | 2025.08.15 |