달리는 기차의 엔진을 멈추지 않고 교체하는 법
실무자를 위한 러스트 기반 마이그레이션 가이드
많은 개발 팀이 딜레마에 빠져 있습니다. C/C++ 프로젝트는 메모리 오류로 인한 버그가 끊이질 않고, 파이썬으로 작성한 서버는 트래픽이 몰릴 때마다 성능이 한계에 달합니다. 하지만 수년 넘게 쌓아 거대해진 레거시 코드를 한순간에 버리고 처음부터 다시 개발하는 ‘빅뱅’ 방식은 현실적으로 리스크가 너무 큽니다.
이 책은 바로 그 고민에서 시작합니다. 기존 시스템을 완전히 허물지 않고도, 가장 아픈 부분만을 도려내 러스트로 교체하는 ‘점진적 리팩터링’ 기술을 소개합니다. 달리는 기차의 부품을 하나씩 고성능 부품으로 교체하듯, 여러분의 서비스는 중단 없이 계속 운영되면서도 속도는 더 빨라지고 구조는 더 단단해질 것입니다.
안전하지 않은 C 포인터를 소유권 모델로 감싸고, 느린 파이썬 연산 로직을 러스트 라이브러리로 대체하여 20배 이상의 성능 개선을 꾀하며, 웹 어셈블리(Wasm)를 통해 자바스크립트의 한계를 넘어서는 방법까지, 실무에 적용 가능한 ‘생존 전략’을 만나 보세요.
주요 내용

CHAPTER 01 러스트로 리팩터링하는 이유
_1.1 리팩터링이란 무엇인가?
_1.2 러스트란 무엇인가?
_1.3 왜 러스트인가?
_1.4 러스트로 리팩터링하는 이유는 무엇인가?
_1.5 러스트로 리팩터링하지 않는 경우는 언제인가?
_1.6 어떻게 작동하나?
_1.7 이 책에서 무엇을 배울까?
_1.8 누구를 위한 책인가?
_1.9 시작하려면 어떤 도구가 필요한가?
CHAPTER 02 러스트 개요
_2.1 소유권과 대여
_2.2 다른 언어에서의 메모리 관리
_2.3 수명
_2.4 러스트의 문자열 타입
_2.5 열거형과 오류 처리
정리
CHAPTER 03 C FFI와 unsafe 러스트 소개
_3.1 unsafe 러스트
_3.2 C FFI
정리
CHAPTER 04 고급 FFI
_4.1 NGINX 소스코드 다운로드
_4.2 NGINX 모듈 생성하기
_4.3 C를 러스트로 링크하기
_4.4 NGINX 요청 읽기
_4.5 calculator 라이브러리 사용하기
_4.6 HTTP 응답 작성하기
정리
CHAPTER 05 러스트 라이브러리 구조화
_5.1 모듈
_5.2 경로
_5.3 상향 가시성
정리
CHAPTER 06 동적 언어와 통합하기
_6.1 파이썬에서의 데이터를 처리하기
_6.2 이동 계획 세우기
_6.3 JSON 파싱하기
_6.4 러스트로 파이썬 확장 모듈을 작성하기
_6.5 러스트에서의 벤치마킹
_6.6 빌드 최적화
정리
CHAPTER 07 러스트 통합 테스트
_7.1 러스트로 테스트를 작성하기
_7.2 파이썬을 사용하여 러스트 코드를 테스트하기
정리
CHAPTER 08 러스트를 사용한 비동기 파이썬
_8.1 파이썬으로 망델브로 집합 생성하기
_8.2 스케일링
_8.3 Asyncio
_8.4 스레드
_8.5 GIL
_8.6 PyO3
정리
CHAPTER 09 자바스크립트 리팩터링을 위한 웹 어셈블리
_9.1 웹 어셈블리란 무엇인가?
_9.2 자바스크립트에서 러스트로 이동하기
_9.3 브라우저 내의 러스트
_9.4 리액트 컴포넌트 만들기
_9.5 완전히 러스트로 작성된 웹 컴포넌트
_9.6 자바스크립트 리팩터링을 개정하기
정리
CHAPTER 10 리팩터링을 위한 웹 어셈블리 인터페이스
_10.1 WASI 유니버설 런타임
_10.2 브라우저에서 머신으로
_10.3 Wasm 라이브러리
_10.4 Wasm 사용하기
_10.5 Wasm에 대해 더 알아보기
_10.6 Wasm 메모리
_10.7 단지 시작일 뿐
정리
마이크로소프트, "2030년까지 모든 C/C++ 코드를 러스트로 교체하겠다."
무모한 '재작성'이 아닌, 현명한 '점진적 리팩터링' 전략
최근 마이크로소프트(MS)는 과감한 선언을 내놓았습니다. "1명의 엔지니어가 1달에 100만 줄의 코드를 변환"한다는 목표 아래, AI와 알고리즘을 결합하여 C/C++로 작성한 거대한 코드베이스를 러스트로 현대화하겠다는 야심 찬 계획을 밝혔습니다. 러스트는 단순한 유행을 넘어 리눅스 커널 채택, MS의 전면 도입 등 시스템 프로그래밍의 새로운 표준으로 자리 잡고 있습니다. 메모리 안전성과 C/C++에 버금가는 성능을 동시에 제공하는 러스트의 강점은 명확합니다. 하지만 현업 개발자에게는 현실적인 고민이 남습니다. ‘이미 파이썬, C, 자바스크립트로 짜인 수만 줄의 레거시 코드는 어떻게 할 것인가?’
이러한 난제 앞에서 이 책은 시스템 전체를 폐기하는 무모한 재작성 대신, 점진적 리팩터링이라는 현명한 해법을 제안합니다. C/C++, 파이썬 등 다양한 언어로 작성된 기존 시스템의 기능을 유지하면서 성능이나 안정성이 중요한 부분부터 러스트로 대체해 나가는 전략을 소개합니다. 러스트가 메모리 관리와 병렬 처리를 하는 방법을 실습을 통해 배워 보세요.
대상 독자