[전자책] 러스트로 갈아타기 - 레거시 코드는 살리고 성능은 높이는 단계별 리팩터링 전략
릴리 마라.조엘 홈즈 지음, 전봉규 옮김 / 한빛미디어 / 2026년 1월
평점 :
장바구니담기


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


C언어를 위주로 개발하는 임베디드 개발자 입장에서 20년 이상 진행해 오면서 느끼는 점을 개선할 방안으로 러스트 ( rust ) 언어로 보고 있었다. 그래서 조금씩 러스트 에 대해서 궁금함을 해결하고자 했다.


이번 한빛미디어에서 제공하는 전자책 (WEB 브라우저 기반) 을 토대로 내용을 검토하였다.




C언어의 단점 을 완벽하게 보안하면서 성능 유지가 가능하다는 것이 가장 큰 장점일 듯 하다.

​

여기서 이야기하는 갈아타기 ( Refactoring ) 는 단순하게 구현하는 프로그래밍 언어를 변경한다는 의미보다는 성능 향상을 시키고 유지관리를 용이하게 하는 등 다양한 관점에서 코드를 개선하는 작업을 의미한다.

이는 재작성 ( Rewriting ) 과 엄연히 다르다는 것을 먼저 상기 시켜야 할 듯 합니다. (저는 처음에 이 용어로 생각을 하고 해당 도서를 선택했습니다.)


단순하게 재작성을 하자는 게 아니라 코드의 일부를 조금씩 rust로 변경하면서 오류를 유발하는 코드를 신속히 감지하고 수정하면서 점진적으로 프로젝트 전체를 개선해 나가는 취지로 받아들여진다.

​

책에 앞부분에서 rust의 장점을 극단적으로 보여주는 내용이 있습니다.

csv 문자열에서 값의 합계를 구하는 내용 (파이썬 / 러스트 코드 를 제공)


단순하게 코드를 보아서는 큰 변화를 못 느끼지만, 취급하는 데이터양이 많아질 경우에 동작 시간과 메모리 사용량을 비교한 내용을 보여줍니다. (당연한 결과이겠지만)

​

100만 개의 줄과 100개의 열로 구성된 동일한 파일을 이용한 결과

나는 임베디드 시스템 개발자로 거의 대부분의 코드를 C언어를 이용하고 있는데, 대량의 코드를 작성하는 경우, 우연히 발생한 오류에 대한 문제점 파악 및 모호한 상황에서 해결책을 찾지 못하는 경우가 많다. 이 때는 프로그래밍언어의 결함(?) 특히 메모리에 무결성을 보장하지 못한다는 단점 때문에 항상 고민을 하게 된다.

​

러스트가 이런 메모리 안전성을 러스트 컴파일러에 맡기기 때문에 개발자에게는 해당 문제에 대한 부담을 덜어줄 수 있다고 한다.

나는 그래서 유지 보수성이 용이하다는 장점도 있지만 메모리 안전성에 대해서 큰 관심을 가지고 있다.

​

Rust 문법이 약했던 나에게는 2장에서 소개한 러스트 개요 부분이 Rust 문법을 이애하는 장이 되었으며, 중요 시 하는 부분이 코드의 수명을 파악하면서 어떤 코드가 좀 더 안전한 코드가 되는지를 소개하고 있다. 다만, Rust 를 처음 접하는 저에게는 해당 코드를 따라할 수 있는 환경 구축 내용이 없어서 많은 아쉬움이 남습니다.

(Rust 기초를 위한 별도 도서가 필요한 수준!)

​

후반으로 가면 HTTP 응용 예제에 대해서 python / javascript 등으로 구현한 코드를 러스트로 갈아타기 하는 내용을 다루고 있으며, 이는 WEB 개발자라는 좀 더 전문 분야에 해당하는 것으로 조금은 실습에 참여하기가 어려웠다.


책에 소스 코드

저자 github : GitHub - lily-mara/refactoring-to-rust: Code to accompany Refactoring to Rust


역자 github : GitHub - legend59/refactoring-to-rust: Code to accompany Refactoring to Rust(러스트로 갈아타기 소스 코드)



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
l 공유하기 l 북마크하기찜하기 lthankstoThanksTo