본문 바로가기

Books

러스트 서버, 서비스, 앱 만들기

 

 

러스트에 관심이 생겨 공식 사이트에서 튜토리얼을 따라가며 학습하던 중 제이펍에서 출간하는 "러스트 서버, 서비스 앱 개발" 도서의 서평 이벤트에 당첨되어 책을 읽고 리뷰를 작성합니다.

이 책을 읽기 전에 공식 홈페이지나 다양한 매체를 통해 러스트 문법 정도를 살펴보고 읽으면 더 도움이 될 것 같습니다.

러스트는 성능과 동시성, 그리고 메모리 안정성 등 여러 장점을 가진 언어로 Go와 함께 주목받는 언어입니다.

많은 강점을 가진 러스트를 비교적 많은 개발자들이 접해봤을 웹 프로젝트를 만들어가며 학습할 수 있도록 안내하고 있습니다.

크게 3부로 나뉘는데 1부에서는 분산 아키텍처와 웹 애플리케이션과 같은 개념들을 소개하며 러스트의 강점등을 설명합니다.

그리고 간단한 TCP Echo C/S 및 HTTP 서버, 컴포넌트를 작성하며 러스트 언어를 학습합니다.

Actix라는 러스트 웹 프레임워크를 통해 비교적 손쉽게 RESTful API를 구현하며 sqlx를 통해 손쉽게 데이터베이스 연결 및 관리 할 수 있습니다.

그리고 웹 서비스 시 발생할 수 있는 여러 에러들을 제어할 수 있는 에러 핸들링 접근 방법을 학습하고, 커스텀 에러 핸들링도 구현합니다.

그리고 1부의 마지막으로 러스트의 언어 기능들을 적용해가며 점진적으로 프로젝트를 개선해 나갑니다.

2부에서는 Tera 템플릿 엔진으로 동적 웹페이지를 작성하거나, 제어 흐름을 관리하는 방법, 사용자 인증이나 라우팅 등도 함께 소개합니다.

3부에서는 웹 애플리케이션이 아닌 보다 고급 주제로 러스트를 소개하고 있습니다.

- 비동기 프로그래밍 및 러스트가 비동기 프로그래밍 패러다임을 지원하는 방법
- libp2p를 이용한 P2P 애플리케이션 개발에서 러스트가 제공하는 강력함
- 도커 컨테이너 위에서 패키징하고 배포하는 방법

Java, PHP 등과 같은 언어와 이를 지원하는 스프링, 라라벨 등과 같은 웹 프레임워크를 통해 웹 애플리케이션 개발 경험이 있는 사람이라면 책 내용을 어렵지 않게 이해할 수 있습니다.

책 내용이 많이 어려운 것은 아니지만, 공식 사이트를 통해 미리 문법을 학습한 뒤 이 책을 읽으면 더 수월할 것 같습니다.

이제 Rust 개발을 위한 첫 걸음마를 했다고 생각하고 러스트 동시성 프로그래밍 관련해서 조금 더 공부해 볼 생각이고, 최근 읽은 웹 퍼포먼스 튜닝 관련 도서에서 사용된 부하 테스트기나 퍼포먼스 측정기가 Go 언어로 작성되어 있었는데 Rust로 바꿔보는 것도 재미있을 것 같습니다.

웹 개발을 경험해 본 개발자라면 이 책으로 익숙한 웹 개발 패러다임을 통해 러스트 언어를 쉽게 배울 수 있을 거라 생각합니다.