이전

리뷰 (8)

한줄평
평점 분포
  • 리뷰 총점10 100%
  • 리뷰 총점8 0%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 10.0
  • 30대 10.0
  • 40대 0.0
  • 50대 10.0

포토/동영상 (6)

리뷰 총점 종이책
Rust Servers, Services, and Apps
"Rust Servers, Services, and Apps" 내용보기
Rust 관련 서적에 뜬금없이 Go언어부터 이야기하게 되어 Rust에게 미안하지만, Go언어에 관심을 갖게 되면서 Rust에도 관심을 가지게 되었다. 은근히 자주 Go와 Rust가 비교가 되는 것을 봐왔고, 왜인지는 모르겠지만 Go언어가 마음에 들어 Go를 공부하기로 했었기에 Rust는 뒷전이었다.그러다가 운좋게도 서평단으로서 이 책을 받게 되어 Rust를 새로이 공부하게 된 것이다.Rust는 대개
"Rust Servers, Services, and Apps" 내용보기

Rust 관련 서적에 뜬금없이 Go언어부터 이야기하게 되어 Rust에게 미안하지만, Go언어에 관심을 갖게 되면서 Rust에도 관심을 가지게 되었다. 은근히 자주 Go와 Rust가 비교가 되는 것을 봐왔고, 왜인지는 모르겠지만 Go언어가 마음에 들어 Go를 공부하기로 했었기에 Rust는 뒷전이었다.
그러다가 운좋게도 서평단으로서 이 책을 받게 되어 Rust를 새로이 공부하게 된 것이다.


ㅅㅡㅋㅡㄹㅣㄴㅅㅑㅅ 2024-06-06 ㅇㅗㅎㅜ 11 34 11

Rust는 대개 시스템 프로그래밍에서 사용하는 것으로 알고 있었으나, ‘Rust로 이렇게 웹 애플리케이션으로도 사용할 수 있어요!’ 라고 알려주는 듯 했다. 얼마 전 Go언어를 이용한 웹 애플리케이션 개발이라는 책을 공부했었는데, 그 책에서도 이런 비슷한 느낌을 받았던 것 같다.


전반적인 웹 애플리케이션 개발에 대해 나와있어 Rust로 하나의 애플리케이션을 구현하는 프로세스를 맛보고 싶은 개발자들에게 추천한다.
꼭 Rust를 익히려 함이 아니더라도 웹 애플리케이션의 기본적인 흐름에 대해 공부하고자 한다면 이 책을 참고로 해도 괜찮을 것 같다.
특히나 애플리케이션이 점진적으로 개선되는 방향으로 책이 진행되기에 개발 프로세스를 이해하기에 큰 도움이 된다.


도식화도 잘 되어있어 내가 무엇을 공부할 것인지 확인하기도 좋았다.
ㅅㅡㅋㅡㄹㅣㄴㅅㅑㅅ 2024-06-06 ㅇㅗㅎㅜ 11 34 48(위) 앞으로 어떤 것을 구현할 것인지 전체적으로 나타내는 그림


Rust라는 언어에 대해 이제 막 사용 방법 및 개념을 익힌 개발자라면 언어의 활용 측면에서 더욱 도움이 되리라고 생각한다.
왜냐하면 본 도서가 실습을 중심으로 구성되어 있고, 그대로 따라하면 멋진 Rust 애플리케이션을 만들어낼 수 있도록 기술되어있기 때문이다.
ㅅㅡㅋㅡㄹㅣㄴㅅㅑㅅ 2024-06-06 ㅇㅗㅎㅜ 11 35 18(위) 세세하게 설명되어 있는 코드


하지만 Rust의 개념들에 대해 제대로 이해하고있지 못한다면 단순한 타자연습밖에 안 될 것이다.
쉽다고 오해하면 낭패이다. 그만큼 여러가지 중요한 개념들을 꽤 다루고 있기 때문이다.


Rust의 문법이나 기초 지식을 모른다면 반드시 익히고 보는 편이 낫다.
Rust 활용 도서이기에 너무 당연한 말이지만.
혹여 이 책과 함께 Rust 기초를 공부하겠다고 생각한다면 완독 난이도가 더욱 높아질 것이라 생각한다.


책을 다 읽고 나서 ‘웹 애플리케이션을 만들 때 Rust를 사용할 것인가?’ 라고 자문한다면 그건 내가 조금 더 Rust의 매력을 느낀 다음의 일이 될 것 같다고 생각한다.
그래도 이 책을 읽고 나서 Rust에 꽤 흥미를 갖게 된 것은 사실이다.
책에서 느낀 Rust의 이점을 가지고 만들만한 다른 애플리케이션은 없을지 고민해보게 된다.
그것만으로도 이 책은 Rust에 관심을 가지고 있는 분들이라면 읽어볼만한 책이라고 생각한다.

l*****1 2024.06.06. 신고 공감 0 댓글 0
리뷰 총점 종이책
러스트의 중요성을 다시 일깨워주는 책
"러스트의 중요성을 다시 일깨워주는 책" 내용보기
C언어를 사용하는 사람들 사이에서는 예전부터 전승되어 내려오는 금언이 있습니다. " C로 다되 "사실 이 말은 맞기도 틀리기도 한 말입니다. 일단 C언어는 가장 기초적인 프로그래밍 언어로 받아들여지고 있었기 때문에 프로그래밍 언어를 교육하는 입장에서 프로그래밍 언어 교육 목적으로 C언어를 사용하는 경우가 많았었습니다. 프로그래밍 분야를 소개할 때도 대표적인 언어로 소개
"러스트의 중요성을 다시 일깨워주는 책" 내용보기

C언어를 사용하는 사람들 사이에서는 예전부터 전승되어 내려오는 금언이 있습니다. 

" C로 다되 "

사실 이 말은 맞기도 틀리기도 한 말입니다. 일단 C언어는 가장 기초적인 프로그래밍 언어로 받아들여지고 있었기 때문에 프로그래밍 언어를 교육하는 입장에서 프로그래밍 언어 교육 목적으로 C언어를 사용하는 경우가 많았었습니다. 프로그래밍 분야를 소개할 때도 대표적인 언어로 소개했었었습니다. 

마이크로소프트 윈도우도 초창기 코드는 C로 되어 있었죠. 웹 분야도 마찬가지입니다. CGI를 C로 구현하는 경우가 많았습니다. 제가 15년 전쯤 이직한 회사에서는 유튜브를 셋탑박스로 볼 수 있도록 애플리케이션을 만들어서 서비스하고 있었습니다. 이 회사는 'C can do everything'을 몸소 실천하는 개발자들이 있던 회사였죠. 


하지만, 프로그래밍 언어는 종교가 아니라 도구일 뿐입니다. C로 모든 걸 다 할 수 있지만, 그 모든 걸 각각 더 잘하는 프로그래밍 언어가 있다면 그걸 쓰는 게 이성적입니다.  우리는 걸어서 옆 동네도 강원도 산골도 부산도 유럽까지도 갈 수 있지만, 그걸 몸소 실천하는 모습을 보여주지는 않습니다. 상황에 맞는 교통수단이 있기 때문입니다. 만약, 모든 교통수단을 무시하고, 어디든 걸어 다니는 사람이 있다면, 그 사람은 일반적인 사회생활이 힘들겠죠. 


이런 저의 생각은 꽤 오랜 경험 속에서 잘 정리되어 왔습니다. 

그런데 문제가 발생합니다. Rust가 세상에 나온 거죠. 

요즘은 'Rust로 다되'를 온 세상이 시전하는 것 같습니다. 윈도, 리눅스, 맥 진영에서 각기 커널에 Rust를 쓴다는 말이 심심치 않게 들려오고, 프런트엔드 분야에서 잘나가는 몇몇 도구들도 Rust로 구현했다는 이야기를 듣습니다. 웹 어셈블리도 Rust로 코딩하는 게 좋다고 하고요. 


심지어 이 책은 러스트로 웹서비스를 풀스택으로 구현할 수 있다고 말하고 있습니다. 


공공연하게 알려지던 진실, C언어가 절대 지존의 자리를 잃었다는 사실을 확인한 사건은 아마도 Go 언어의 출현이 아닐까 싶습니다. C언어의 모체가 되었던 B 언어를 만든 켄 톰슨이 참여한 또 다른 영향력 있는 프로그래밍 언어가 세상에 나와서 꽤 잘 쓰이고 있다는 것만큼 확실한 사건은 없는 것 같네요. 

게다가 비슷한 시기에 나온 Rust는 '그거 정말 맞아'라고 말하는 듯한 언어였습니다. 정확하게 C++로 할 수 있는 분야 전반을 접수할 만한 강력한 능력을 가지고 있었거든요.  이제 C 문법을 잊어버려도 될만한 시기가 된 것입니다. 


저는 당장 Go, Rust를 사용해야 하는 상황은 아니라서 관심만 갖고 책이 나오면 구해다 읽고 있습니다. Go에 비해 Rust에 대한 책은 한동안 서점에서 볼 수 없었는데요. 최근에는 Rust에 대한 책이 많이 나오고 있습니다. 아마 Rust라는 언어가 이제 성숙했고, 다양한 라이브러리와 두터운 사용자 층도 확보한 언어가 되었다고 볼 수 있을 것 같습니다. 


그걸 증명하듯, 이 책에서는 TCP 서버를 직접 러스트 코드로 작성하는 것을 보여주면서 이야기를 시작합니다. TCP 서버가 이렇게 간단한 코드로 만들어지는 거였나?라는 생각을 하기가 무섭게 3장에서는 Actix를 가지고 이야기를 이어나가는데요. 심지어 저자는 Rocket, Warp, Tide 같은 다른 라이브러리들과 비교해서 Actix를 선택하게 되었다고 말합니다. 러스트로 구축하는 서버가 이렇게 많았나?라는 생각을 하는데, 저자의 코드 전개 방식이 눈에 띄었습니다. 

테스트 코드를 먼저 작성하고 구현 코드를 작성하고 있는 것입니다. TDD의 실천 방식이죠. 심지어 Rust로 그걸 하는 건 너무 깔끔합니다. 


정신을 차려보니 서버 사이드 웹 애플리케이션을 설명하는 7장을 읽고 있었습니다. Tera 같은 라이브러리로, 뚝딱! 설명이 지나가고, 책의 후반부에는 비동기 처리 방식과 도커를 사용해서 마무리하는 설명이 이어지고 있습니다. 


마치, '러스트로 다되, 봐 웹 서비스도 만들 수 있어'를 저자가 간결하게 설명하는 것 같은 느낌을 받았습니다. 


"도메인 특화 언어"(DSL)라는 개념이 있습니다. 어떤 서비스를 구축하다보면, 서비스 코어 기능에 해당하는 부분을 구현하는 프로그래밍 언어와 사용자 인터페이스를 구현하는 언어를 다르게 사용하는 경우가 생기는데요. 이런 걸 DSL(도메인 특화 언어)라고 합니다. 과거 C언어는 이런 전반을 구현하는 프로그래밍 언어였습니다. 개발 팀이 코드 관습만 조금 맞추면 이런 전혀 다른 두 계층의 개발에도 쓸수 있었기 때문입니다. 

앞으로 러스트가 그런 언어로 자리매김 해나갈 것 같습니다. 이 책을 읽은 걸 계기로 사놓고 보지못했던 러스트 관련 책들을 다시 들춰봐야겠네요. 


h*****0 2024.06.06. 신고 공감 0 댓글 0
리뷰 총점 종이책
풀스택 웹 개발을 위한 러스트 프로그래밍, 《러스트 서버, 서비스, 앱 만들기》
"풀스택 웹 개발을 위한 러스트 프로그래밍, 《러스트 서버, 서비스, 앱 만들기》" 내용보기
《러스트 서버, 서비스, 앱 만들기》는 러스트를 사용하여 백엔드 서버, 서비스 및 프런트엔드를 빠르고, 안정적이며, 유지 보수가 가능하게 개발하는 방법을 소개합니다.러스트는 저수준 언어의 안정성과 뛰어난 성능을 가져 고성능 네트워크가 가능합니다. 이러한 러스트만의 장점을 살려, 단계적으로 웹 서비스와 애플리케이션을 만드는 방법을 소개합니다. 책의 구성은 3부로 나뉘며,
"풀스택 웹 개발을 위한 러스트 프로그래밍, 《러스트 서버, 서비스, 앱 만들기》" 내용보기
《러스트 서버, 서비스, 앱 만들기》는 러스트를 사용하여 백엔드 서버, 서비스 및 프런트엔드를 빠르고, 안정적이며, 유지 보수가 가능하게 개발하는 방법을 소개합니다.



러스트는 저수준 언어의 안정성과 뛰어난 성능을 가져 고성능 네트워크가 가능합니다. 이러한 러스트만의 장점을 살려, 단계적으로 웹 서비스와 애플리케이션을 만드는 방법을 소개합니다. 책의 구성은 3부로 나뉘며, 웹서버와 웹 서비스, 서버 사이드 웹 애플리케이션, 비동기 러스트입니다.



1부에서는 웹 애플리케이션을 만들기 위한 기본 개념을 소개합니다.  HTTP 서버, REST API 만들기, 데이터베이스 조작, 에러핸들링과 리팩터링에 대해 배울 수 있습니다.
2부에서는 1부에서 만든 서비스를 토대로 사용자와의 상호작용을 위한 UI, 템플릿 엔진에 대해 소개합니다. 웹 개발에 필요한 라우팅, 사용자 인증과 같은 심화된 주제도 학습합니다. 
3부에서는 퓨처를 통해 러스트 비동기 프로그래밍과 분산 시스템인 P2P 아키텍처, 컨테이너를 활용한 배포를 소개합니다. 

《러스트 서버, 서비스, 앱 만들기》에서 느꼈던 장점입니다. 

1. 분산 아키텍처, 동시성과 같이 복잡한 개념을 그림을 통해 명확하게 설명합니다.
2. 러스트만으로 각종 서버(웹, REST API, 분산, 비동기)를 만드는 방법을 배울 수 있습니다. 
3. 클라이언트/서버 아키텍처 뿐만 아니라 P2P 네트워크를 다루고 있습니다.
4. 소유권, 트레이트를 비롯한 러스트의 고급 기능을 소개합니다.
5. 상세한 주석이 포함되어 있어, 코드의 각 부분이 어떤 역할을 하는지 이해할 수 있었습니다.



책은 러스트를 처음 접하는 독자라면 어려울 거라 생각합니다. 러스트의 기본 이상을 알고 있는 초급자 이상이면서 서버 개발에 익숙한 백엔드 엔지니어에게 잘 맞는 책입니다. 그 외에도 분산 시스템에 알고싶거나, 실시간 시스템·저지연 서버에 관심이 있는 엔지니어에게도 유용할 것 같습니다.

러스트는 안정성, 동시성, 낮은 레이턴시 시간 및 하드웨어 리소스 풋프린트를 제공하기 때문에 분산 웹 애플리케이션 개발에 매우 적합한 언어이다.
《러스트 서버, 서비스, 앱 만들기》, 20p



책에서 인상 깊게 읽었던 부분은 비동기 프로그래밍이었습니다. 동시성, 병렬성, 멀티스레딩을 비롯한 비동기 프로그래밍의 핵심 개념을 다루고, 실습을 통해 러스트가 어떻게 강건하면서도 높은 동시성을 가져 효율적으로 작동하는지 알 수 있었습니다.

책은 TCP와 HTTP 서버를 만드는 것부터 시작하여, RESTful API 구현, 데이터베이스 연동, 비동기 프로그래밍, 그리고 분산 시스템인 P2P 애플리케이션 개발에 이르기까지 다양한 주제를 다루고 있습니다. 러스트의 다양한 기능과 특징에 대한 소개와 적용도 놓치지 않은 책으로 러스트의 뛰어난 성능과 안전성을 확인할 수 있습니다.

점진적으로 완성되는 프로젝트를 통해 웹 개발과 러스트를 동시에 이해할 수 있는 실용적인 책이었습니다. 러스트 웹 개발의 전반적인 프로세스를 이해하면서 자신만의 러스트 웹 개발 프로젝트를 시작하고 싶은 사람에게 추천하고 싶은 책입니다.


"해당 서평은 제이펍 출판사로부터 책을 제공받아 작성했습니다."


#러스트, #rust, #서버, #서비스, #앱, #웹개발, #백엔드, #프런트엔드, #풀스택, #RESTAPI, #분산네트워크, #P2P, #동시성, #리팩터링, #배포, #제이펍, #서평, #리뷰
n****8 2024.06.05. 신고 공감 0 댓글 0
리뷰 총점 종이책
제이펍 출판사 IT 전문서 리뷰어 3기 - 러스트 서버, 서비스, 앱 만들기
"제이펍 출판사 IT 전문서 리뷰어 3기 - 러스트 서버, 서비스, 앱 만들기" 내용보기
book reviews sponsored by publishers (Lang : KR)제이펍 출판사 IT 전문서 리뷰어 3기 선발이 되어 책을 받았다.꼭 개발자가 아니더라도 평소에 IT 마켓에 관심이 있었다면 몇년전부터 유명세를 타기 시작한 러스트 언어를 익히 들어봤을 것이다.그 러스트 언어로 서버, 서비스, 앱을 만드는 방법을 알려주는 책이다.백엔드 서버, 서비스, 프런트엔드를 전부 러스트 언어로 다룬다는 점
"제이펍 출판사 IT 전문서 리뷰어 3기 - 러스트 서버, 서비스, 앱 만들기" 내용보기
book reviews sponsored by publishers (Lang : KR)
제이펍 출판사 IT 전문서 리뷰어 3기 선발이 되어 책을 받았다.

꼭 개발자가 아니더라도 평소에 IT 마켓에 관심이 있었다면 몇년전부터 유명세를 타기 시작한 러스트 언어를 익히 들어봤을 것이다.

그 러스트 언어로 서버, 서비스, 앱을 만드는 방법을 알려주는 책이다.

백엔드 서버, 서비스, 프런트엔드를 전부 러스트 언어로 다룬다는 점에서 흥미가 느껴질 것이다. (개발자 or 해커라면)

이 책은 러스트 언어의 기초부터 가르쳐 주긴 하지만, 절대 입문서는 아니다.

이미 충분한 개발 실력을 가지고 있는 자에게 러스트 언어를 통한 새로운 프로젝트를 함으로서 언어력 확장을 위해서라면 딱이다.

기본적으로 필요한 사전 지식이 상당히 요구되는 책이다.
예를들어 -> 

0.) HTTP

1.) TCP/IP

2.) P2P

3.) 고급언어와 친숙해야 한다.

주로 이런 네트워크적 지식과 코드를 보며 이해할 수 있는 수준이어야 한다.

최소 직접 A - Z 까지 삽질을 하며 웹 서버 구축, 백엔드, 프론트엔드 까지 개발을 해봤거나 그런 대상으로 침투를 해보며 구조를 뜯어보며 학습을 해본적이 있어야 한다.

필자도 읽으면서 친숙하지 않은 부분들이 있기에 곤란한 부분들이 많았다.

GPT, 구글링, 지인찬스를 사용해 가며 시간이 좀 걸려도 해결이 되는 부분이 있는 반면 사전 지식이 부족하여 이해가 힘든 부분들을 해결해 갔다.

이 책은 읽으면서 '무작정 따라하기' 같은 요소가 아닌, 이미 학습하고 있는 러스트 프로젝트에서 영감을 얻고 필요한 부분을 일부 얻기 위해서 읽는 참고자료 정도이다.

예를들어 '아~ 러스트로 이런 것들을 할 수 있어?' 하는 느낌이다.

현직자들을 대상으로 출간된 책으로 보여지며, 난이도는 중급 이상으로 느껴진다.

장문의 코드가 상당히 많고, 짧은 한줄 코드들도 있지만, 대부분 코드들을 이해하는데 읽으면서 많은 시간을 소요했다.

필자가 생각하기에 이 책의 독자는 딱 하나로 정해져 있는 것처럼 느껴졌다.

'현직자가 이미 러스트 언어를 학습하고 있지만, 확장해서 프로젝트에 도움을 받고 싶어할 때'

이거 이외에는 솔직히 모르겠다.

내용도 상당히 어렵고, 솔직히 다른걸로 해도 되는 것들이 많은데 굳이 러스트로 이렇게까지 하지 않아도 되기 때문이다.

오히려 입문자나 초급자가 이 책을 손 댔다가 너무 어려워서 도망갈것 같다.

코드를 이해하는것 뿐만 아니라 글 자체를 읽고 납득하기 위해서는 디폴트로 사전 지식이 이미 현직자 수준의 네트워크 지식이 있어야 하기 때문이다.

'러스트로도 이렇게 할 수 있어요!' <- 라는 말을 하기 위해서 출판된 책이 아닐까 싶다.

읽다보면 자꾸 이런 느낌을 계속 받았다.

그래서, 왜 굳이 이걸 이렇게 하지..? 고개가 갸우뚱 하는 적이 있지만 주 메인이 러스트니깐 이라며 납득을 하며 읽었다.

---

"제이펍 출판사의 도서 지원을 받아 작성한 리뷰입니다."

---

https://youtube.com/@Certa6

제 유튜브 채널입니다.
도움이 됐다면, 구독 부탁합니다!
주변에 제 블로그, 유튜브를 알려주시면 감사하겠습니다~! :)

Thank you for watching the blog.
Please subscribe! I would appreciate it if you could share the blog around you.

#제이펍 #제이펍전문서 #제이펍서평단 #Jpub #jpub #출판사 #제이펍출판사 #서평단 #hackers #hacker #hacking #anonymous #cybersecurity #kalilinux #programming
#hack #hacked #technology #cybercrime
#linux #ethicalhacking #coding
#programmer #computerscience
#malware #hacks #bhfyp #redteam #tryhackme #hackthebox
c*****6 2024.06.04. 신고 공감 0 댓글 0
리뷰 총점 종이책
[리뷰] 러스트 서버, 서비스, 앱 만들기
"[리뷰] 러스트 서버, 서비스, 앱 만들기" 내용보기
이번에 읽은 도서는 러스트 언어에 대한 책이다. 도서 제목은 <Rust Servers, Services, and Apps>. 최근 뜨고 있는 프로그래밍 언어인 러스트 언어를 이용하여 서비스(웹서비스 포함)를 개발하는 내용이 담긴 책이다. 그런데, 도서를 읽기 시작할 때, 문제가 발생했다. 분명 지난 번에 사내에서 멋진 개발자 동료분으로부터 Rust 강의를 들었었는데, 나이가 먹어서 인지, 그 때 들은
"[리뷰] 러스트 서버, 서비스, 앱 만들기" 내용보기

이번에 읽은 도서는 러스트 언어에 대한 책이다. 도서 제목은 <Rust Servers, Services, and Apps>. 최근 뜨고 있는 프로그래밍 언어인 러스트 언어를 이용하여 서비스(웹서비스 포함)를 개발하는 내용이 담긴 책이다. 


그런데, 도서를 읽기 시작할 때, 문제가 발생했다. 분명 지난 번에 사내에서 멋진 개발자 동료분으로부터 Rust 강의를 들었었는데, 나이가 먹어서 인지, 그 때 들은 내용이 1도 기억이 안나는 것이었다.ㅎㅎ 사실 Rust에 대한 기초 문법 정도는 알고 있으니까 내심 이제 Rust로 서비스를 한번 만들어 볼까하는 자만심에 이 책을 골랐었는데, 완전 나 자신으로부터 뒤통수를 제대로 맞은 것이다. ^^;; 왜 사냐건 웃지요..


도서 표지의 저 남자는 1788년에 출간된 화집에 나온 인물이라고 한다.



그래도 도서를 읽긴 해야되니, 일단 Rust 언어 자체에 대한 학습을 먼저 진행했다. 참고로, 본 도서는 Rust 언어에 대해 기본적으로 어느 정도는 잘 알고 있다는 가정 하에 내용 전개가 이루어지기 때문에, 만약 Rust 언어에 대한 사전 지식이 없다면 이 책을 읽기 전에 Rust 언어 자체에 대한 공부를 먼저 하는 것을 추천한다. 이를 위해 구글링해보니 Rust 언어에 대한 여러 가지 참고 자료가 많았는데, 그 중에서 난 아래 링크를 먼저 참고했다. (보다보니, 예전 교육도 조금 생각나긴 하더라. ^^;)

https://sarojaba.github.io/rust-doc-korean/doc/tutorial.html



그리고, 모든 언어, 라이브러리, 프레임웍 등이 그러하듯, Rust 또한 공식 홈페이지에도 Rust 언어에 대한 설명이 아주 잘 되어 있다. 사실상 Rust 입문자 뿐만 아니라 이미 Rust를 활용하여 개발을 진행하고 있는 개발자도 여러 번 자주 필수로 방문하면서 내용에 대해 숙지해야 하는 성지(?) 사이트인 듯 하다.

https://doc.rust-lang.org/book/



드디어 Rust로 Hello world 출력.. 기본적인 개발환경 구축 완료..



사실 Rust하면, 동시성이나 메모리 안전성 등의 특장점으로 인해 시스템 프로그래밍 언어로 보통 생각되곤 하고, 나 또한 그렇게 생각해 왔었다. 몇해 전에 리누스 토발즈 아저씨가 리눅스 커널을 Rust로 개발하겠다고 했던 기사를 봤었고, 그 기사도 "Rust의 용도는 시스템 프로그래밍"이라는 고정관념을 갖게 만드는데 기여했었다.


그런데, Rust로 웹 서비스를 개발한다고? 개인적으로 현재는 서버 인프라 보안 업무를 주로 하다보니, 자연스럽게 시스템 프로그래밍에 관심을 덜 갖게되고, 그러다보니 Rust 언어에 대해서도 그다지 관심이 없었던 터였는데, 이 도서를 접하게 되면서 Rust에 대해 굉장히 궁금해졌다. 그리고 이러한 궁금증에 대한 답을 이 책의 1장을 통해 얻을 수 있었다.


1장 : 왜 러스트가 웹 애플리케이션에 적합한가?



결론부터 이야기하자면, 아래와 같은 네 가지 이유에서 러스트 언어가 웹 애플리케이션 개발에 적합하다고 저자는 말하고 있다.

① Rust 언어의 안전성 (타입, 메모리, 스레드 측면)

② 시스템 리소스 운용에 대한 효율성

③ Garbage collector가 없고, 저수준 하드웨어 제어를 통한 짧은 latency

④ Rust 언어의 강점인 동시성 (멀티스레딩, 비동기 I/O)


물론, 모든 세상 만사가 그러하듯, 장점이 있으면 단점도 있는 법.. 저자는 Rust 언어의 러닝커브가 높고, 몇몇 개발 제약사항, 느린 컴파일 속도, 아직 성장 중인 변화의 언어인 점 등을 들면서 대규모의 기업에서 러스트를 채택하는 것은 아직 이르다고 언급하고 있다. 그렇지만, 위의 장점들이 분명 서비스 개발자들에게는 매력적인 요소로 다가올 수 있는 부분이라는 점은 자명한 사실이다.



본 도서에서는 Rust를 활용한 웹서비스 개발을 위해 Actix라는 Rust 기반 경량 웹 프레임워크를 사용하고 있다. (Python으로 따지면 Flask정도 되는 듯..?) 참고적으로, Rust 기반의 웹 프레임워크는 여러 가지가 있는데, 그 중 Actix와 Rocket 웹 프레임워크가 상대적으로 활용 수준에서 우위에 있는데, Rocket의 경우 현재 native 비동기 지원을 하지 않아서 성능 측면에서 Actix가 더 우위라고 한다. 별도로 구글링 해보니, Rust 기반 axum 웹 프레임워크도 최근 주목받고 있는 듯 하다.



이번 도서의 경우는 Rust를 활용한 웹 서비스 개발에 대한 전반적인 이해를 하는 차원에서 빠르게 읽고, 코드의 경우는 선택적으로 선정하여 다운로드 받은 코드를 실행해보는 형태로 실습을 진행하였는데, 역시나 Rust 언어 자체가 개인적으로 아직 완전히 익숙하지는 않은 상황이어서 중간중간 코드 이해가 어려울 때도 있어 별도 레퍼런스를 찾아보기도 하면서 내용을 이해하려고 노력했다. 특히, 도서에서 인용된 소스코드 상에, 코드에 대한 설명이 단순 주석 형태가 아닌, 좀 더 이해가 쉽도록 가독성 있게 설명이 달려 있어서 내용을 이해하는데 도움이 되었다.


코드에 대한 설명이 좀 더 가독성 있게 기입되어 있어 이해하는데 도움이 되었다.



또한, 본 도서의 Part 3에서는 Rust를 활용한 비동기 프로그래밍/통신에 대한 내용이 나온다. 비동기 처리 방식에 대한 기본적인 개념부터 소개하면서 Rust를 활용하여 이를 구현하는 방법을 예제를 통해 설명하고 있는데, 개인적으로 이 책의 내용 중에 가장 좋았다고 생각한다. Rust는 비동기 방식을 구현함에 있어 future라는 개념을 사용한다. future를 간단하게 말하면, 일단 비동기 런타임 실행자에 의해 대기하고 있다가 미래의 어떤 시점에 값을 반환하는 비동기 계산 값을 말한다. Part 3에서는 이러한 동시성 개념 뿐만 아니라 P2P 네트워크와 도커를 통한 웹 서비스 배포까지 관련 코드 예제들을 통해 설명하고 있다. (다소 난이도는 높다.)



결론적으로 본 도서는 아래와 같은 분들이 읽으면 좋을 것 같다.

  • Rust 언어에 대한 문법을 어느 정도 익힌 상태에서 Rust를 활용하여 웹 서비스 개발에 대해 공부해 보고 싶으신 분

  • 이미 Python Django나 Flask 등을 통해 웹 서비스를 개발해본 적이 있는 서버 개발자 중에 성능 향상을 위한 다른 웹 프레임워크를 찾고 있는 분

  • Rust 언어의 동시성/비동기 프로그래밍 개발 방법에 대해 예제를 통해 학습하고 싶으신 분


실제 도서를 어느 정도 읽은 과정에서, 도서를 처음 접했을 때의 예상보다 내용이 좀 더 난이도가 있고 분량이 상당히 많다는 느낌을 받았다. 특히, 읽는 과정 내내 Rust 언어에 대한 기본기가 좀 필요한 도서임을 여러 번 느꼈고, Rust에 대해 어느 정도 익숙해진 후에 본 도서를 읽는 것을 강력하게 추천한다. 그렇지만 분명 Rust가 가진 매력을 충분히 느끼게 해준 도서였고, 이번 학습을 통해 그 동안 Rust는 내 길이 아닐꺼라 생각했던 내 생각을 바꾸게 만든 좋은 계기가 되었던 것 같다.


c****m 2024.06.04. 신고 공감 0 댓글 0
리뷰 총점 종이책
시스템 개발 언어를 넘어선 러스트의 활용성
"시스템 개발 언어를 넘어선 러스트의 활용성" 내용보기
[책리뷰] 러스트 서버, 서비스, 앱 만들기 - 백엔드 서버, 서비스, 프런트엔드 모두 러스트로 안전하고 빠르게 구축하기전반적인 소감 및 마음에 드는 부분개발자들이 가장 사랑하는 언어인 러스트로 실제 제품을 만드는 과정을 보여준 좋은 책입니다. 러스트를 사용해 웹 서비스와 애플리케이션을 개발하는 방법을 학습하도록 설계되었습니다. 튜토리얼 접근 방식을 통해 하나의 예제 코
"시스템 개발 언어를 넘어선 러스트의 활용성" 내용보기

[책리뷰] 러스트 서버, 서비스, 앱 만들기 - 백엔드 서버, 서비스, 프런트엔드 모두 러스트로 안전하고 빠르게 구축하기

전반적인 소감 및 마음에 드는 부분

개발자들이 가장 사랑하는 언어인 러스트로 실제 제품을 만드는 과정을 보여준 좋은 책입니다. 러스트를 사용해 웹 서비스와 애플리케이션을 개발하는 방법을 학습하도록 설계되었습니다. 튜토리얼 접근 방식을 통해 하나의 예제 코드를 점진적으로 개선해나가는 부분이 가장 마음에 들었습니다. 지금까지 러스트를 C++ 대체로 사용하거나 웹에서는 백엔드 부분에서만 사용하요 시스템 개발 언어로 알고 있었는데, 이 책을 통해 전반적인 사용법을 알게되어서 좋았습니다.

주석뿐만 아니라 코드 실행 관련하여 자세하게 설명되어 있습니다


이 책은 온라인 강의 플랫폼(디지털 스토어프런트)을 예시로 이를 만들기 위해 어떤 구조와 기술이 필요한지 설명해줍니다. 즉, 1장부터 쭈욱 따라하면 온라인 강의 플랫폼을 만들 줄 알게 됩니다. 이것저것 다른 외부 라이브러리를 덕지덕지 붙여나가는 것이 아니라 러스트 자체 기능을 주로 이용해서 서비스를 시작부터 배포까지 할 수 있도록 도와줍니다. 

대상 독자 및 책 난이도

러스트를 활용하여 제품을 만들어보고 싶은 사람들에게 추천합니다.

  • 서버 사이드, 웹 백엔드, API 개발에 참여하거나 흥미를 갖고 있는 백엔드 소프트웨어 엔지니어
  • 러스트를 GO, Java, C++의 대안으로 살펴보고 있는 분산 시스템 엔지니어
  • 머신러닝, 인공지능, 사물 인터넷, 이미지/비디오/오디오 처리 및 실시간 시스템의 백엔드 같은 영역에서의 저징ㄴ 서버와 애플리케이션을 개발하는 소프트웨어 엔지니어

러스트를 처음 공부하는 사람들에게는 다소 어려운 책 입니다. 어려운 부분을 저자가 잘 설명해주고 있기 때문에 천천히 진행하면 충분히 따라갈 수 있지만, 책 내용을 잘 활용하기 위해서는 백엔드 개발 경험을 갖고 있으며 러스트 혹은 C++에 어느 정도 친숙한 상태여야 합니다. 저자가 말하는 러스트에 친숙한 정도의 기준으로 아래 내용을 알고 있어야 한다고 합니다.

  • 러스트 프리미티브(데이터 타입), 사용자 정의 데이터 구조(구조체, 열거형), 함수, 표현식, 제어 루프(if, for while 루프)
  • 불변성(immutability), 소유권(ownership), 참조(reference), 대여(borrowing)
  • Result 및 option 구조체를 사용한 에러 핸들링
  • 러스트의 기본 함수 구조
  • 러스트 툴체인(빌드/디펜던시 관리 및 코드 포매팅을 위한 Cargo, 문서화, 자동화 테스팅 도구 등)

이것 저것 적혀있지만, 함축적으로 러스트를 이용해서 간단한 프로그램이라도 만들어본 경험이 있느냐 정도가 되겠습니다. 


다루는 내용과 범위

이 책의 마음에 드는 부분 중 또 다른 하나는 실제적인 프로젝트들의 연속으로 구성되어 있다는 점 입니다. 즉, 1장부터 쭉 따라하면 예제 코드와 함께 학습과 더불어 제품을 만들어 나가게 됩니다. 책의 마지막 부분을 학습하게 될 때쯤이면 상용 제품에 가까운 상태가 되도록 계속해서 진화해 나갑니다.

책 챕터는 크게 나누었을 때 3부, 12장으로 구성되어 있습니다. 1부에서는 웹 애플리케이션의 기본 개념을 소개하고, 필요한 기반들을 다집니다. 2부에서는 프론트 엔드 및 GUI에 관한 부분을 다룹니다. 브라우저에서 실행되는 웹 프레임워크 대신 서버 사이드 렌더링에 의존하는 간단한 접근 방식만 다룹니다.

각 장에서 다루는 핵심 내용만 추려보면 아래와 같습니다.

  • 분산 아키텍처와 웹 애플리케이션 같은 핵심 개념, 러스트의 강점 및 러스트 사용 여부 결정에 관한 힌트들
  • TCP Echo C/S 및 HTTP 서버, 컴포넌
  • 러스트를 사용해 RESTful 웹 서비스를 구현하는 방법
  • 데이터베이스에 데이터를 유지해야 할 필요성, 크레이트를 사용해 SQL 데이터베이스와 상호작용
  • 웹 서비스를 호출할 때 발생할 수 있는 예상치 못한 상황을 다루는 방법
  • 서버 사이드 렌더링 프레임워크, 사용자에게 입력을 요청하는 방법과 아이템 리스트를 처리하는 방법
  • 서버 사이드에서 사용되는 템플릿 엔진, 사용자 등록을 지원하는 방법
  • 고급 웹 애플리케이션 주제(사용자 인증, 라우팅, CRUD 방식으로 데이터를 유지보수하기 위해 RESTful 웹 서비스를 효과적으로 사용하는 방법 등)
  • 비동기 프로그래밍 및 러스트가 비동기 프로그래밍 패러다임을 지원하는 방법
  • P2P 애플리케이션 개발에서 러스트가 제공하는 강력함
  • 웹 애플리케이션을 도커 이미지로 준비하고 패키징하는 방법
어떤 프레임워크를 선택한 이유를 자세히 설명해줍니다.

결론

이 책은 참조용 가이드가 아니라 개요를 설명하는 책입니다. 즉, 러스트를 사용해 개발할 수 있는 다양한 네트워크 서비스에 관한 영감을 주는 가이드로 사용하는 편이 훨씬 더 좋습니다. 온라인 플랫폼 개발을 해본 적이 없기에 Rust를 특정 부분만 대체하거나 쓸 수 있는 방법이 확실히 떠오르지 않는다. 다만 Rust의 강점은 비동기 프로그래밍과 안정성을 생각했을 때, 이 책은 추후 사이드 프로젝트 할 때 좋은 가이드가 되어주었다. 비슷한 분야에 재직 중인 현업자들에게는 좋은 대채 수단 및 인사이트를 제공해줄 수 있으며, 나처럼 웹에 관심을 가져 조금씩 도전해보려는 사람들에게는 아주 좋은 가이드가 된 책이다.

"제이펍 리뷰어 3기 활동을 위해 책을 제공받아 작성된 서평입니다."
a***y 2024.06.01. 신고 공감 0 댓글 0
리뷰 총점 종이책
Rust Servers, Services, and Apps (jpub출판사) 도서 리뷰
"Rust Servers, Services, and Apps (jpub출판사) 도서 리뷰" 내용보기
러스트를 이용해서 하나의 서비스를 처음 구상부터 작성, 테스트, 리팩터링, 비동기 도입, 도커로 최종배포하는 전체 사이클을 경험할 수 있게 해 주는 책입니다.개인적으로 내용만 배우는 교과서 책보다 이렇게 간략하지만 실제 서비스에서 고민할 내용을 구현해보는 것을 매우 선호합니다.이책은 러스트에 대한 기본 내용은 다루지 않습니다. 러스트의 문법이나 빌드방법, 작업환경 구
"Rust Servers, Services, and Apps (jpub출판사) 도서 리뷰" 내용보기
러스트를 이용해서 하나의 서비스를 처음 구상부터 작성, 테스트, 리팩터링, 비동기 도입, 도커로 최종배포하는 전체 사이클을 경험할 수 있게 해 주는 책입니다.
개인적으로 내용만 배우는 교과서 책보다 이렇게 간략하지만 실제 서비스에서 고민할 내용을 구현해보는 것을 매우 선호합니다.
이책은 러스트에 대한 기본 내용은 다루지 않습니다. 러스트의 문법이나 빌드방법, 작업환경 구성 등은 기본적으로 알고 있다고 가정하고 진행하는 책이니 참고하시기 바랍니다.
아래 내용은 챕터별로 정리한 내용입니다.


1장: 왜 러스트가 웹 애플리케이션에 적합한가?


  • 이 장에서는 현대 웹 애플리케이션과 Rust를 사용하는 이점에 대해 소개합니다.
  • 간략하게 현대의 분산시스템의 구성과 기술스택을 보여줍니다.

  • 러스트의 고유한 기능, 예를 들어 가비지 컬렉터 없이 메모리 안전성을 보장하는 소유권 시스템과 강력한 동시성 모델을 설명하며 러스트의 장점을 설명합니다. Why Rust?
    • 안전성
    • 자원효율적
    • 지연시간 짧음
    • 동시성 가능
    • 높은 생산성
  • 예제 애플리케이션 소개 및 설계(EzyTutors) : 이 책이 가장 큰 의미는이런 핵심기능이 모두 구현되어야 하는 예제를 통해서 러스트를 학습할 수 있도록 되어 있는 점이라고 봅니다.
  • 기술스택 : 웹서비스, 서버렌더링 웹앱으로 구성. 순수 러스트로만 작성였고, 웹프레임워크는 Actix Web, DB연결은 SQLx, DB로는 Postgres를 사용합니다.
  • 개발 및 배포 : 러스트가 지원하는 모든 플랫폼에서 개발 및 배포할 수 있으며, 특정 플랫폼에서 사용이 제한되는 외부라이브러리를 사용하지 않고 개발하는 것을 의미합니다.
  • 예제 애플리케이션의 기술적 가이드라인


2장: 기본 웹 서버 작성하기


  • 이 장에서는 러스트를 사용하여 기본 웹 서버를 만드는 방법을 학습자에게 제시합니다. TCP/IP 통신의 기초를 다루고, TCP 서버와 클라이언트를 작성하는 방법을 설명하고 있습니다.
  • 러스트를 이용한 HTTP서버 구축
  • 이후 HTTP 서버 구축으로 넘어가 HTTP 요청 메시지의 파싱, 응답 메시지의 구성, 라우팅 및 요청 처리 방법을 다룹니다. 연습 문제로는 정적 웹 페이지와 JSON 데이터를 제공하는 서버를 구축하고, cURL 및 웹 브라우저로 서버를 테스트하는 내용이 포함됩니다


3장: RESTful 웹 서비스 구축하기


  • 이 장에서는 Actix라는 강력한 프레임워크를 사용하여 RESTful 웹 서비스를 만드는 방법을 소개합니다. Actix 설정 방법을 배우고, 디지털 교육 플랫폼인 EzyTutors를 예제로 사용하여 API를 설계하고 구현합니다. 애플리케이션 상태 관리, 데이터 모델 정의, CRUD 작업 구현에 중점을 둡니다
  • 코드에 상세한 설명을 덧붙여 이해를 돕게 작성되어 있습니다.
  • 단계별로 구현하면서 테스트  스크립트까지 작성하고 테스트를 완료하는 것까지 상세하게 설명하여 주고 있습니다.


4장: 데이터베이스 조작하기

  • 관계형 DB인 PostgresDB에 비동기적으로 연결하고 데이터를 저장하는 부분을 개발합니다. 총 3번의 반복(이터레이션)을 통해서 점진적으로 개발하는 방법을 다루고 있습니다.
  • 첫번째 반복에서는 바닐라 러스트 프로그램에서 DB연결을 다루며 sqlx를 사용하여 구현합니다(Diesel을 사용할 수도 있음. Diesel은 순수 Rust ORM이라고 함).
  • 두번째 반복에서는 Actix기반 웹서비스를 위한 프로젝트 구조를 설정하고 단위테스트 작성합니다.
  • 세번째 반복에서는 실제 핸들러 함수를 작성해서 DB레코드를 생성하고 결과를 질의합니다.
  • 각 반복마다 점진적으로 핵심을 갖추고 추가적으로 기능을 구현하는 방식으로 한단계씩 나갈 수 있도록 친절하게 단계와 소스가 구성되어 있습니다.



5장: 에러핸들링하기

  • 지금까지 작성하고 테스트한 것은 오류가 없는 시나리오의 상황 뿐이었으나, 실제로는 많은 오류와 실패가 발생하며 이를 다룰 방법이 필요합니다. 따라서,  전장에 이어 에러를 처리하는 부분을 추가하여 반복4를 작성합니다.
  • 러스트와 Actix Web의 에러를 다루는 방법을 다룹니다. 러스트는 반환값 방식으로(자바, 파이썬, 자바스크립트에서는 예외 핸들링으로 에러를 다룸) 다루며 예외를 던지기 보다는 에러를 명시적으로 처리하기를 권합니다.  enum Result<T, E { Ok(T), Err(E)} 방식에 대해서 간단히 설명하고 에러를 다루는 방법을 설명하고 코드를 작성해 나갑니다.



6장:  API 진화와 두려움 없는 리팩터링

  • 이 장에서는 이전 장에서 작성한 내용의 모듈을 개선하고, 유지보수하는 기능을 추가합니다. 프로젝트의 구조를 효율적으로 재편할 필요성도 있어 이에 대한 작업도 진행합니다.
  • 데이터 모델 개선
    • 기존의 데이터 모델을 분석하고 API가 처리하기 위해 꼭 필요한 값과 그렇지 않은 값을 분리하여 새로운 구조체를 만드는 방법을 제안합니다
    • 향후의 변경에 대응하기 유리하고, 상시 변경에 노출될 수 있는 부분과 그렇지 않은 부분을 분리하여 구현하는 방식을 제안합니다.
  • 강의 API 변경
    • 변경된 데이터모델을 사용하기 위한 API 코드 변경을 수행합니다. 테스트 케이스까지 작성하여 꼼꼼하게 오류여부를 확인합니다.
  • 강사 등록 및 유지관리
    • 강사 등록관련 내용도 데이터 모델에 맞추어 수정
  • 전체적으로 커지고 복잡해지는 프로젝트에 대응하여 코드 구조를 변경하는 방법을 제시합니다. 데이터베이스 접근 함수, 핸들러, 에이터 모델 등을 수정하여 분리하고 처리하는 방법을 구조화하였습니다.



7장: 러스트를 사용한 서버사이드 웹 애플리케이션 개요

  • 이 장에서는 Rust를 사용하여 서버 측 웹 애플리케이션을 구축하는 방법을 다룹니다. Actix를 사용하여 정적 웹 페이지를 제공하고, Tera 템플릿 엔진을 사용하여 동적 페이지를 렌더링하며, 폼을 통한 사용자 입력 처리를 다룹니다. 또한 템플릿을 사용하여 목록을 표시하고, 프론트엔드와 백엔드 서비스를 연결하는 방법을 다룹니다. 서버 측 렌더링(SSR)과 싱글 페이지 애플리케이션(SPA)의 차이를 설명합니다.
  • 웹페이지
    • 정적 :  Actix를 사용해서 웹페이지를 제공
    • 동적 : Actix와 Tera를사용하여 동적 웹페이지 렌더링
      Rust_book2.jpg
  • 폼과 템플릿 이용 목록 표시하기
  • 테스트 케이스 작성 및 테스트 실행
    • 단위테스트
    • 통합테스트
  • 백엔드 웹서비스 연결


8장: 템플릿을 사용해 강사 등록하기

  • 이 장에서는 Actix와 Tera를 활용한 강사 등록 폼을 만들며 템플릿을 다루는 법을 학습힙니다. 템플릿과 폼을 이용해서 등록, 로그인, 사용자 프로파일 등록, 지불 정보, 데이터에 대한 CRUD를 수행할 수 있기에 웹 애플리케이션에서 매우 중요합니다.
  • 등록 폼 표시하고 처리하기
    • 아래와 같은 작업 흐름으로 구성됩니다(이렇게 작업 흐름을 구조화하는 것이 매우 중요하다고 봄)



9장: 강의 유지보수를 위한 폼다루기

  • 사용자 인증 설계하기
  • 프로젝트 구조 설정하기
  • 사용자 인증 구현하기, HTTP요청 라우팅하기, POST/PUT/DELETE 메서드 사용하기 등의 순으로 코드를 작성해 나가고 있습니다



10장: 비동기 러스트 이해하기

  • 이 장에서는 Rust에서 비동기 프로그래밍을 포괄적으로 소개합니다.
  • 지금까지는 보통 한명이 웹서버에 요청하는 수준의 내용만을 다루었으나, 현대의 웹서버들은 수만 개의 요청을 어떻게 처리하는지를 알아보는 내용으로 진행됩니다.
  • 비동기 HTTP요청처리와 클라이언트 사이드 비동기 처리
    20240528_144057.jpg
  • async/await, futures, tasks와 같은 개념을 설명하고, 이러한 구문을 사용하여 동시 프로그램을 작성하는 방법을 다룹니다. 여러 동시 요청을 처리하는 웹 서버의 예제를 포함하여 성능을 최적화하는 방법을 설명합니다. 또한 Tokio와 async-std 같은 Rust의 비동기 라이브러리 생태계를 논의하고, 프로젝트에 맞는 도구를 선택하는 방법을 다룹니다.

11장: Async Rust로 P2P 노드 구축하기


  • 이 장에서는 Rust를 사용하여 P2P 애플리케이션을 구축하는 방법을 배웁니다. P2P 네트워크의 기본 아키텍처와 Rust용 libp2p 라이브러리를 소개합니다. 피어 발견, 메시지 교환, 비동기 네트워크 이벤트 처리와 같은 필수 개념을 다룹니다. 간단한 P2P 채팅 애플리케이션과 파일 공유 시스템을 구축하는 실용적인 예제를 통해 분산 애플리케이션 개발의 강력함과 유연성을 보여줍니다
  • P2P 네트워크의 장점은 다음과 같습니다
  • 구현해야 하는 기능은 4가지입니다.

12장: 도커를 사용해 웹 서비스 배포하기


  • 마지막 장에서는 Rust 웹 서비스를 패키징하고 배포하는 방법을 다룹니다. 프로덕션 준비 빌드 생성, Docker를 사용한 컨테이너화, 클라우드 플랫폼에 애플리케이션 배포를 다룹니다. GitHub Actions 및 GitLab CI 같은 서비스를 사용하여 지속적 통합/지속적 배포(CI/CD) 파이프라인을 설정하는 방법을 설명합니다. 또한 프로덕션 환경에서 Rust 웹 애플리케이션을 모니터링, 확장, 유지 관리하는 모범 사례를 포함합니다
  • 처음 도커 구성 용
  • 도커컨테이너를 좀더 간결하게 정리
  • 데이터베이스 컨테이너 빌드
  • 다단계 도커 빌드법 설명
  • 도커 컴포즈로 두 개의 컨테이너를 묶기


총평

매우 강추합니다. 러스트 자체의 기능을 주로 이용해서 외부의 라이브러리 등에 크게 의존하지 않고 서비스를 처음부터 끝까지(배포) 작성할 수 있는 학습경로를 제공해 주고 있습니다.
중간 중간 테스트 케이스를 만들고, 반복을 3-4번하면서 점진적으로 개선하는 방법, 실무적으로 갖추어야 하는 고민 등 많은 내용이 담겨있고 이를 따라가다 보면 하나의 서비스를 만들 수 있는 좋은 경험을 얻을 수 있습니다.
파이썬을 좀 쓰는 편이나 러스트는 기본서 한번 본 정도로도 내용을 따라갈 수 있었습니다(아직 모든 내용을 숙지한 것은 아님!).  이런 책은 몇번 더 반복하면서 스스로 고쳐보고 하는 경험을 통해서 많은 것을 배울 수 있다고 생각합니다. 좋은 책을 출판해 주시고 리뷰 기회를 주신 jpub에 감사드립니다.
f******s 2024.05.28. 신고 공감 0 댓글 0
리뷰 총점 종이책
흔하디 흔한 자바 개발자바 겪어보는 러스트
"흔하디 흔한 자바 개발자바 겪어보는 러스트" 내용보기
나는 스프링 공화국이라는 한국에서 자바/스프링을 활용하는 개발자다.하지만 현재 일하는 도메인 특성상 회사 선배 분들은 하드웨어아 밀접한 부분은 C++ 을 활용하는 경우가 있었다.나도 C++ 을 공부해야 하나 싶었지만 심리적인 장벽을( 시간이 없었다는 핑계다.) 이겨내지 못했다.그와중에 C++ 을 대체하는 언어다! 러닝커브가 훨씬 적다! 비교적 빠르게 개발이 가능하다! 라는 언어
"흔하디 흔한 자바 개발자바 겪어보는 러스트" 내용보기
나는 스프링 공화국이라는 한국에서 자바/스프링을 활용하는 개발자다.
하지만 현재 일하는 도메인 특성상 회사 선배 분들은 하드웨어아 밀접한 부분은 C++ 을 활용하는 경우가 있었다.

나도 C++ 을 공부해야 하나 싶었지만 심리적인 장벽을( 시간이 없었다는 핑계다.) 이겨내지 못했다.
그와중에 C++ 을 대체하는 언어다! 러닝커브가 훨씬 적다! 비교적 빠르게 개발이 가능하다! 
라는 언어가 있어서 유심히 지켜만 보고 있었다.

다양한 분야에서 사용하고 있는것을 보고, 회사에 적용할 부분이 없나 싶던 차에
책이 나왔다고 하여 스터디를 해보았다.


책에 대해 얘기하자면, 
처음 개발을 접하는 사람보다는 
어느정도 개발을 해 본 사람이 더욱 빠르고 효율적으로 공부할 수 있는 도서다.
`러스트` 라는 언어를 원하는 프로젝트에 적용해보고 테스트 해보기에 적절하다.

내가 읽으면서 좋았던 부분들은

소스코드 설명을 이렇게 한 책이 있었나 싶지만,
책에 기재된 소스들 내용 사이사이에 코드리뷰의 느낌으로 라인별로 설명된 부분들이 너무나 만족스러웠다.새로운 언어를 배우면서 어떤 목적으로 작성한 코드인지 간혹 잘못 판단하는 경우들이 있는데 이러한 어려움을 겪지 않을 수 있었다.
책에서는 Actix 프레임워크를 사용하고있는데, 
처음 들어보는 프레임워크임에도
해당 프레임워크 선택에 대한 이유를 명료하게 기술했다.

러스트에서는 에러에 대한 처리를 확실하게 하려 한다는 점에서 특징이 있다고 한다.
혹자는 에러 처리가 어렵다 라고 표현하는 사람도 있던데,
그래서인지 책에서는 에러에 대해서 꽤나 비중있게 다루고있었다.
기본적으로 러스트가 에러를 대하는 자세부터 설명을 꽤나 상세하게 하고있다.
러스트가 코드를 안전하게, 탄탄하게 만들기 위한 철학을 조금은 알 수 있을것이다.
커스텀 에러 핸들러도 설명하고 있어 얼마든지 응용이 가능해보였다.

내가 생각하는 이 책의 가장 잘 써먹을 부분은  뒷부분의 'P2P 노드 구현' 부분이다.
일반적인 클라이언트/서버 환경이 아닌 P2P 같은 환경에서 러스트가 더 힘을 발휘하지 않을까 했는데
원하는 구조로 딱 설명해주어서 더욱 활용 해 볼수있지 않을까 싶다.


이 외에도 많은 내용들이 있었지만,
'러스트를 처음 접하는 타 언어 개발자' 의 입장에서 느낀점들이다.
빠르게 현업에 러스트를 사용 해 보고 싶다면 추천하는 바이다.


*이 서평은 제이펍 으로부터 도서를 지원받아 작성하였습니다.
y*****9 2024.05.27. 신고 공감 0 댓글 0