러스트로 갈아타기 (레거시 코드는 살리고 성능은 높이는 단계별 리팩터링 전략)

러스트로 갈아타기 (레거시 코드는 살리고 성능은 높이는 단계별 리팩터링 전략)

$35.00
Description
달리는 기차의 엔진을 멈추지 않고 교체하는 법
실무자를 위한 러스트 기반 마이그레이션 가이드
많은 개발 팀이 딜레마에 빠져 있습니다. C/C++ 프로젝트는 메모리 오류로 인한 버그가 끊이질 않고, 파이썬으로 작성한 서버는 트래픽이 몰릴 때마다 성능이 한계에 달합니다. 하지만 수년 넘게 쌓아 거대해진 레거시 코드를 한순간에 버리고 처음부터 다시 개발하는 ‘빅뱅’ 방식은 현실적으로 리스크가 너무 큽니다.

이 책은 바로 그 고민에서 시작합니다. 기존 시스템을 완전히 허물지 않고도, 가장 아픈 부분만을 도려내 러스트로 교체하는 ‘점진적 리팩터링’ 기술을 소개합니다. 달리는 기차의 부품을 하나씩 고성능 부품으로 교체하듯, 여러분의 서비스는 중단 없이 계속 운영되면서도 속도는 더 빨라지고 구조는 더 단단해질 것입니다.
안전하지 않은 C 포인터를 소유권 모델로 감싸고, 느린 파이썬 연산 로직을 러스트 라이브러리로 대체하여 20배 이상의 성능 개선을 꾀하며, 웹 어셈블리(Wasm)를 통해 자바스크립트의 한계를 넘어서는 방법까지, 실무에 적용 가능한 ‘생존 전략’을 만나 보세요.

주요 내용
● FFI 완벽 가이드: C 라이브러리와 러스트의 안전한 연결
● PyO3 활용: 파이썬 병목 구간을 러스트로 해결하여 성능 개선
● 웹 어셈블리: 웹 브라우저에서 러스트 코드 실행
● 실전 전략: 무중단 마이그레이션을 위한 테스트 및 배포 노하우
저자

릴리마라

캘리포니아주샌프란시스코에거주하는소프트웨어개발자입니다.2015년부터러스트로고성능의확장가능한시스템을개발해왔으며,현재디스코드에서일하고있습니다.또한전세계에서러스트소프트웨어개발을주제로강연하며경험을공유하고있습니다.

목차

CHAPTER01러스트로리팩터링하는이유
_1.1리팩터링이란무엇인가?
_1.2러스트란무엇인가?
_1.3왜러스트인가?
_1.4러스트로리팩터링하는이유는무엇인가?
_1.5러스트로리팩터링하지않는경우는언제인가?
_1.6어떻게작동하나?
_1.7이책에서무엇을배울까?
_1.8누구를위한책인가?
_1.9시작하려면어떤도구가필요한가?

CHAPTER02러스트개요
_2.1소유권과대여
_2.2다른언어에서의메모리관리
_2.3수명
_2.4러스트의문자열타입
_2.5열거형과오류처리
정리

CHAPTER03CFFI와unsafe러스트소개
_3.1unsafe러스트
_3.2CFFI
정리

CHAPTER04고급FFI
_4.1NGINX소스코드다운로드
_4.2NGINX모듈생성하기
_4.3C를러스트로링크하기
_4.4NGINX요청읽기
_4.5calculator라이브러리사용하기
_4.6HTTP응답작성하기
정리

CHAPTER05러스트라이브러리구조화
_5.1모듈
_5.2경로
_5.3상향가시성
정리

CHAPTER06동적언어와통합하기
_6.1파이썬에서의데이터를처리하기
_6.2이동계획세우기
_6.3JSON파싱하기
_6.4러스트로파이썬확장모듈을작성하기
_6.5러스트에서의벤치마킹
_6.6빌드최적화
정리

CHAPTER07러스트통합테스트
_7.1러스트로테스트를작성하기
_7.2파이썬을사용하여러스트코드를테스트하기
정리

CHAPTER08러스트를사용한비동기파이썬
_8.1파이썬으로망델브로집합생성하기
_8.2스케일링
_8.3Asyncio
_8.4스레드
_8.5GIL
_8.6PyO3
정리

CHAPTER09자바스크립트리팩터링을위한웹어셈블리
_9.1웹어셈블리란무엇인가?
_9.2자바스크립트에서러스트로이동하기
_9.3브라우저내의러스트
_9.4리액트컴포넌트만들기
_9.5완전히러스트로작성된웹컴포넌트
_9.6자바스크립트리팩터링을개정하기
정리

CHAPTER10리팩터링을위한웹어셈블리인터페이스
_10.1WASI유니버설런타임
_10.2브라우저에서머신으로
_10.3Wasm라이브러리
_10.4Wasm사용하기
_10.5Wasm에대해더알아보기
_10.6Wasm메모리
_10.7단지시작일뿐
정리

출판사 서평

마이크로소프트,"2030년까지모든C/C++코드를러스트로교체하겠다."
무모한'재작성'이아닌,현명한'점진적리팩터링'전략
최근마이크로소프트(MS)는과감한선언을내놓았습니다."1명의엔지니어가1달에100만줄의코드를변환"한다는목표아래,AI와알고리즘을결합하여C/C++로작성한거대한코드베이스를러스트로현대화하겠다는야심찬계획을밝혔습니다.러스트는단순한유행을넘어리눅스커널채택,MS의전면도입등시스템프로그래밍의새로운표준으로자리잡고있습니다.메모리안전성과C/C++에버금가는성능을동시에제공하는러스트의강점은명확합니다.하지만현업개발자에게는현실적인고민이남습니다.‘이미파이썬,C,자바스크립트로짜인수만줄의레거시코드는어떻게할것인가?’
이러한난제앞에서이책은시스템전체를폐기하는무모한재작성대신,점진적리팩터링이라는현명한해법을제안합니다.C/C++,파이썬등다양한언어로작성된기존시스템의기능을유지하면서성능이나안정성이중요한부분부터러스트로대체해나가는전략을소개합니다.러스트가메모리관리와병렬처리를하는방법을실습을통해배워보세요.
대상독자
● 기존애플리케이션의성능,메모리안전성,유지보수성을개선할방법을찾고있는숙련된프로그래머
● 러스트를배우고싶거나,기존코드를러스트로전환하는실용적인예제와전략을익히고싶은개발자
● 다른언어로작성된기존애플리케이션에자신의러스트지식을적용하여성능이나안전성을향상하려는러스트프로그래머