일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터분석
- 컴퓨터그래픽스
- 자바스크립트
- 혼공C
- 혼공머신
- 불칸
- 혼공학습단
- vulkan
- tutorial
- 머신러닝
- 딥러닝
- 네트워크
- 나는리뷰어다
- C++
- 혼자공부하는네트워크
- 혼자공부하는C언어
- 혼공스
- 책리뷰
- 한빛미디어
- OpenGL
- 리뷰리뷰
- 혼공S
- 혼공단
- 제이펍
- 혼공
- 혼공네트
- 파이썬
- 벌칸
- 혼공컴운
- 혼공단5기
- Today
- Total
Scientia Conditorium
[책리뷰] 커맨드라인 러스트(Command-Line Rust) 본문
[책리뷰] 커맨드라인 러스트(Command-Line Rust)
A Porject-Based Primer for writing Rust CLIs
전반적인 소감 및 마음에 드는 부분
흔한 초보자용 프로그래밍 언어 책이 아니다. 애시당초 러스트라는 언어가 초보자를 대상으로 한 언어가 아니기 때문에 책 내용 역시 깊이가 있을수 밖에 없다고 생각한다. 지금까지 봐운 러스트 책들은 언어 자체에 초점을 맞춘 책들이였다. 즉, 러스트 언어를 통해 프로그래밍 하는 방법들이였다. 서론 부분에도 나오지만 이 책은 러스트를 다루는 참고서가 아니라 작은 프로그램을 많이 작성해보도록 이끌어주는 책이다. 단순히 문법 설명을 위한 예제 코드가 아닌 실제 도움이 되는 프로그램들을 직접 작성해보도록 도와주기 때문에 많은 도움이 되었다.
대상 독자 및 책 난이도
적어도 한 가지 이상의 프로그래밍 언어를 다를 줄 아는 개발자들을 대상으로 한다. 변수 생성, 반복문, 조건문, 함수 등을 다룰 줄 아는 사람이어야 한다. 러스트 언어의 특성상 컴퓨터 메모리에 대해 어느 정도 알고 있어야 하기 때문에 첫 번째 언어로 러스트를 삼기에는 무리가 있다. 따라서 이 책의 대상 독자 역시 기본적인 프로그래밍을 할줄 아는 상태에서 러스트라는 새로운 언어를 배우려는 사람들이다. 그러나 러스트 언어를 배우려는 목적으로 이 책을 삼기보다는 조금 더 깊게 들어가기 위한 전초 단계로 이 책을 선택하는 것이 좋아보인다. 저자가 말한대로 이 책은 현실적인 측면에 초점을 맞춰 일을 해내기 위해 알아야 할 사항을 제시하기 때문에 언어 자체의 핵심적인 내용은 <<프로그래밍 러스트(개정판)>>(제이펍, 2023), <<러스트 프로그래밍 공식 가이드(제2판)>>(제이펍, 2024)과 같은 책으로 공부하길 권장하고 있다.
러스트를 이용하여 테스트를 작성하고 실행하는 방법을 알고 싶은 경우에도 이 책을 추천한다. 개인적으로는 TDD를 별로 선호하지 않지만, 이 책은 테스트의 사용법과 더불어 TDD 사용법을 보여주고 있다. 러스트의 깐깐한 컴파일러와 테스트가 만나면 유지보수하기 쉬운 더 나은 프로그램으로 이어진다는 것이 저자의 주장이다.
한번이라도 리눅스나 macOS와 같은 유닉스 계열 운영체제를 경험해본 적이 있다면 무리없이 따라할 수 있다. 러스트라는 언어에 초점을 맞춘 책은 아니기 때문에 따라하는데 어려움은 없다. 또한 아주 생소한 명령줄을 사용하는 것도 아니고 이미 많은 사람들이 사용하고 있는 명령줄을 선별했기 때문에 실용적이기도 하다.
다루는 내용과 범위
많은 사람들이 사용하는 유닉스 명령줄을 선별하고 각 명령줄에 대응되는 러스트 프로그램을 만들어본다. 각 장을 시작할 때 무엇을 만드는지 이해하고 넘어갈 수 있도록 도구의 작동 방식을 먼저 설명해준다.
주요 내용으로는 아래와 같다.
- 러스트 표준 라이브러리 및 데이터 타이을 사용해 시스템 프로그램 만들기
- 러스트 프로그램 및 함수 작성과 테스트
- stdin, stdout, stderr을 포함한 파일 읽기 및 쓰기
- 명령줄 인수 문서화 및 유효성 검사
- 우아하게 실패하는 프로그램 작성하기
- 원시 텍스트 및 구분된 텍스트 구문 분석
- 무작위성의 활용 및 제어
결론
TDD를 별로 좋아하지 않지만 테스트가 더 나은 프로그램을 만든다는 점은 매우 동의한다. 러스트 모토처럼 '안정적이고 효율적인 소프트웨어 구축'을 위해서라면 테스트를 많이할수록 좋다는 점도 찬성한다. 마지막 장에서 저자가 말했듯이, 러스트와 같은 엄격한 언어에 테스트를 더하면 복잡한 프로그램을 자신 있게 개발하고 리팩터링할 수 있다는 사실이다. 개발자는 단순히 기능을 뚝딱뚝딱 만들어 내기만 하는 사람들이 아니다. 테스트도 직접 해봐야하며 테스트 코드, 프로그램 등도 만들고 성능 측정도 할 줄 알아야 한다고 생각한다. 이 책은 프로그램을 밑바닥부터 시작하는 법, 기능을 추가하는 법, 오류 메시지를 읽고 해결하는 법, 로직을 테스트하는 법을 자세히 보여준다. 이 책을 통해 배운 테스트 프로그램을 회사에서 활용해보고 싶은 마음이 강해졌다. Rust 언어를 통해 테스트 프로그램 작성 방법을 배우고 싶은 사람에게 적극 추천한다.
"제이펍 리뷰어 3기 활동을 위해 책을 제공받아 작성된 서평입니다."
'서평 > IT-책' 카테고리의 다른 글
[혼공단] 혼자 공부하는 네트워크 / 혼공단 12기 - 5주차 (0) | 2024.08.10 |
---|---|
[책리뷰] 파이썬 시계열 예측 분석 (1) | 2024.08.03 |
[혼공단] 혼자 공부하는 네트워크 / 혼공단 12기 - 4주차 (0) | 2024.07.26 |
[혼공단] 혼자 공부하는 네트워크 / 혼공단 12기 - 3주차 (0) | 2024.07.15 |
[혼공단] 혼자 공부하는 네트워크 / 혼공단 12기 - 2주차 (1) | 2024.07.14 |