>
>
>
>
파이썬과 비교하며 배우는 러스트 프로그래밍 : 가장 사랑받는 언어 러스트를 배우는 가장 확실한 방법
윤인도 ㅣ 제이펍
  • 정가
25,000원
  • 판매가
22,500원 (10% ↓, 2,500원 ↓)
  • 발행일
2024년 05월 31일
  • 페이지수/크기
308page/188*245*15
  • ISBN
9791193926222/119392622X
  • 배송비
무료배송
  • 배송예정일
07/25(목) 배송완료예정
  • 현 보유재고
100 권 이상
  • 주문수량
  • 바로구매 북카트담기
  • 제휴몰 주문 시 고객보상, 일부 이벤트 참여 및 증정품 증정, 하루/당일 배송에서 제외되므로 참고 바랍니다.
  • 상세정보
  • 파이썬 개발자를 위한 유일무이한 러스트 입문서 이 책은 파이썬 코드와 러스트 코드를 비교하면서 차이점과 유사점을 발견하고, 러스트를 쉽게 이해하도록 도와준다. 파이썬을 모르더라도 친절한 설명으로 러스트의 타입 시스템, 함수, 클로저, 매크로 등 기본 개념을 빠르게 익힐 수 있으며, 파이썬에 익숙하다면 러스트의 소유권과 제네릭, 트레이트, 멀티스레딩, 테스트 등 고급 개념을 확실히 이해하는 데 도움이 될 것이다. 러스트를 사용해본 개발자라면 다른 언어와의 비교를 통해 러스트에 대해 미처 몰랐던 부분을 발견할 수 있다.
  • 러스트에 입문하는 가장 빠르고 확실한 방법, 파이썬 코드와 비교하기 파이썬은 간결한 문법 덕분에 널리 사랑받는 언어이고, 러스트는 고성능 프로그램을 구현할 수 있는 언어다. 파이썬 패키지와 자바스크립트 패키지를 러스트로 대체하려는 분야가 많아지고 있고, 이 추세는 계속될 것으로 보인다. 이러한 상황에서 파이썬 사용자 중에는 진입장벽이 높은 러스트에 발을 들이기를 망설이고 있는 사람이 많다. 이 책은 파이썬을 알고 있는 사람이 가장 빠르고 확실하게 러스트에 입문할 수 있게 쓰인 책이다. 파이썬 코드에서 병목현상이 발생하는 부분을 러스트로 대체하면 성능을 크게 높일 수 있으며, 러스트는 파이썬보다 멀티스레딩 구현이 쉽고, 개발 도구가 매우 편리하다. 파이썬은 동적 타입 언어로 주로 객체지향 프로그래밍을 하고, 러스트는 정적 타입 언어로 주로 함수형 프로그래밍을 한다는 차이점이 있지만 이 책과 함께라면 쉽게 그 차이를 이해할 수 있을 것이다. 1장에서는 러스트를 배워야 하는 이유와 실무에서 러스트를 활용한 사례를 알아보고, 실행 환경을 차근차근 구축한다. 2장에서는 변수를 선언하는 방법과 타입 시스템, 3장에서는 함수와 클로저를 정의하는 방법과 매크로를 알아본다. 4장에서는 흐름 제어문, 5장에서는 소유권을 배운다. 6장에서는 러스트 내장 자료형과 함수형 프로그래밍에서 중요한 이터레이터를 알아보고, 7장에서는 객체 지향 방식과 구조체를 사용한 방식을 비교해본다. 8장에서는 코드가 길어지고 복잡해질 때 프로젝트를 모듈화하는 방법을 배운다. 9장에서는 제네릭과 트레이트로 코드를 추상화하는 방법과 러스트에서 라이프타임을 사용해 변수의 범위를 제한하는 방법을 살펴본다. 10장에서는 에러 처리 방법과 디버깅을 위한 로깅 방법을, 11장에서는 스마트 포인터를 통해 힙 메모리 공간을 안전하게 사용할 수 있는 방법을 알아본다. 12장에서는 멀티스레딩을 효율적이고 안전하게 수행하는 방법을 살펴보고, 13장에서는 비동기 프로그래밍을 알아본다. 14장에서는 단위 테스트와 문서 테스트를 수행하는 방법을, 15장에서는 러스트 코드를 파이썬에서 실행해서 GIL을 우회하고 빠른 연산 속도를 얻는 방법을 설명한다. 중간중간 연습문제를 통해 책에서 배운 지식을 체크할 수도 있어 개념을 확실히 익힐 수 있을 것이다. 러스트의 가능성에 관심이 있는 모든 개발자에게 이 책을 추천한다. 주요 내용 ? 소유권으로 메모리 관리하기 ? 파이썬의 객체 지향과 러스트의 구조체 비교하기 ? 제네릭과 트레이트로 코드 추상화하기 ? 에러 처리와 로깅 방법 ? 스마트 포인터로 힙 메모리 공간 안전하게 사용하기 ? 효율적이고 안전하게 멀티스레딩 수행하기 ? 비동기 프로그래밍과 테스트 ? 러스트의 파이썬 바인딩
  • 추천사 x 베타리더 후기 xi 시작하며 xiii 이 책에 대하여 xiv CHAPTER 1 러스트 시작하기 1 1.1 가장 사랑받는 언어, 러스트 1 1.2 파이썬 개발자가 러스트를 배워야 하는 이유 2 1.3 파이썬과 러스트의 차이점 3 __언어상의 차이 3 __툴 비교 4 1.4 러스트의 경쟁 언어 5 1.5 러스트로 뭘 할 수 있나요? 6 __러스트 실제 사용 사례 8 1.6 러스트 개발 환경 설정하기 10 __러스트 툴체인 설치하기 10 __Visual Studio Code 설치 및 설정하기 11 __프로젝트 생성하기 12 1.7 러스트 코드 실행하기 15 __코드 컴파일하기 15 __코드 실행하기 16 __rustfmt 17 CHAPTER 2 변수와 상수 18 2.1 값 출력하기 18 2.2 변수 선언 19 2.3 작명 규칙 21 2.4 불변성 22 2.5 섀도잉 23 2.6 타입 24 __타입 추론 24 __타입 변환 25 2.7 상수 26 2.8 연습문제 29 CHAPTER 3 함수와 매크로 30 3.1 함수 선언 30 3.2 여러 개의 값 리턴하기 33 3.3 스코프 35 3.4 익명 함수 38 3.5 매크로 40 3.6 연습문제 42 CHAPTER 4 조건문과 반복문 43 4.1 if/else 43 __let if 45 4.2 for 47 4.3 while 49 4.4 loop 50 4.5 match 52 4.6 연습문제 54 CHAPTER 5 소유권 55 5.1 메모리 관리 55 5....
  • 파이썬과 러스트의 기본 툴들을 비교한 내용을 표로 함께 살펴볼까요? 파이썬의 경우, pip를 제외한 툴은 일반적으로 별도 설치가 필요합니다. 하지만 러스트는 cargo라는 툴을 통해 대부분의 기능을 바로 사용할 수 있습니다. cargo는 크레이트(crate)라고 하는 패키지를 관리하는 도구이면서, 동시에 소스 코드를 컴파일하고 빌드하는 시스템 빌드 매니저 기능이 있는 빌드 시스템입니다. 표 1-2와 같이 cargo에는 포매터, 린트(lint), 테스트, 문서화, 벤치마크 등의 기능이 내장돼 있습니다. 여기에 플러그인을 설치해서 더 다양하게 cargo를 사용할 수도 있습니다. (4쪽) 매크로는 함수와 비슷하게 사용되지만, 실제로 함수와 비교했을 때 중요한 차이점이 있습니다. 기본적으로 매크로는 ‘다른 코드를 생성하는’ 코드를 작성하는 방법으로, 메타 프로그래밍(meta programming)이라고 합니다. 함수를 정의할 때는 파라미터의 개수와 타입을 미리 지정해야 합니다. 반면에 매크로는 매개변수의 개수가 가변적입니다. 예를 들어, println!("hello")와 같이 하나의 인수로 println!을 호출하거나 println!("hello {}", name)과 같이 두 개의 인수로 호출할 수 있습니다. (40쪽) 파이썬은 스택을 사용하지 않고 모든 객체를 힙 영역에 저장합니다. 이렇게 저장된 객체들은 파이썬에서 가비지 컬렉션을 통해 메모리를 관리하기 때문에 파이썬을 사용할 때는 메모리 관리에 신경쓰지 않아도 됩니다. 앞에서 힙 영역을 설명할 때 언급한 개발자가 할당하고 할당 해제하는 메모리를 파이썬의 가비지 컬렉터가 대신해주는 것입니다. 반면 러스트는 스택 영역과 힙 영역 모두를 사용합니다. 러스트는 기본적으로 다음과 같이 함수에서 사용하는 모든 값을 제한된 크기의 스택 영역에 저장합니다. 따라서 함수 호출이 종료되면 지역 변수 foo와 var는 모두 삭제됩니다. (56쪽) 러스트는 pop 메서드에 인덱스를 넣을 수 없고, 무조건 마지막 원소가 제거됩니다. 마지막 원소가 아닌 다른 원소를 제거하려면 remove 메서드에 인덱스를 넣어야 합니다. 러스트의 pop과 remove 모두 원소를 제거하고, 제거된 원소를 리턴합니다. 여기서 만일 벡터의 원소가 없는 상태에서 pop을 하게 되면 문제가 발생할 수 있습니다. 따라서 unwrap 함수를 통해 에러가 있는지를 확인하는 과정을 거치게 됩니다. 즉 벡터의 길이가 0인 상태에서 pop을 호출하면 패닉이 발생해 프로그램이 멈추지만, 그게 아니라면 정상적으로 원소를 참조할 수 있게 됩니다. (74~75쪽) 러스트에서는 이터레이터에서 sum, max, min 메서드를 호출합니다. 여기서 max나 min 메서드는 모두 Option을 리턴합니다. 만일 벡터가 비어있을 때는 최댓값과 최솟값을 구할 수 없기 때문에 이런 경우는 None이 리턴됩니다. max나 min에서 None이 리턴되면, unwrap()은 패닉을 일으킵니다. 따라서 원칙적으로는 match 등을 사용해서 각 경우를 처리해줘야 하지만 여기서는 벡터가 비어있지 않다는 것을 알고 있기 때문에 unwrap을 사용해도 괜찮습니다. (101쪽) 러스트의 접근 방식은 컴파일 타임과 런타임으로 나눠 생각해볼 수 있습니다. 컴파일 타임에는 LBYL 방식으로 컴파일러가 타입, 소유권 등을 미리 검사하게 됩니다. 런타임에 발생할 수 있는 에러는 Result를 사용합니다. Result는 에러가 발생하더라도 프로그램이 종료되지 않고, 에러의 종류에 따라 호출한 코드에서 적절한 처리를 해야 하기 때문에 EAFP 방식이라고 할 수 있습니다. / Result를 사용하면 에러가 발생하더라도 원래 코드의 진행을 복구시킬 수 있지만, 간혹 프로그램에 패닉이 발생하면 더는 프로...
  • 윤인도 [저]
  • 항상 새로운 것을 배우는 걸 좋아하며, 한 줄의 코드가 세상을 변화시킬 수 있다고 믿는다. 서울대학교 기계항공공학부 학/석사 졸업 과정을 마쳤다. 현재 SAP Labs Korea 백엔드엔지니어이다. 클래스101, 프로그래머스등 온라인 강의를 진행 중이며, 대학/기업 강의 다수 출강 이력이 있다.
  • 전체 0개의 구매후기가 있습니다.

인터파크도서는 고객님의 단순 변심에 의한 교환과 반품에 드는 비용은 고객님이 지불케 됩니다.
단, 상품이나 서비스 자체의 하자로 인한 교환 및 반품은 무료로 반품 됩니다.
교환 및 반품이 가능한 경우
상품을 공급 받은 날로부터 7일이내 가능
공급받으신 상품의 내용이 표시, 광고 내용과 다르거나 다르게 이행된 경우에는 공급받은 날로부터 3개월 이내,
   혹은 그사실을 알게 된 날 또는 알 수 있었던 날로부터 30일 이내
상품에 아무런 하자가 없는 경우 소비자의 고객변심에 의한 교환은 상품의 포장상태 등이 전혀 손상되지 않은 경우에 한하여 가능
교환 및 반품이 불가능한 경우
구매확정 이후(오픈마켓상품에 한함)
고객님의 책임 있는 사유로 상품 등이 멸실 또는 훼손된 경우
   (단, 상품의 내용을 확인하기 위하여 포장 등을 훼손한 경우는 제외)
시간이 지남에 따라 재판매가 곤란할 정도로 물품의 가치가 떨어진 경우
포장 개봉되어 상품 가치가 훼손된 경우
다배송지의 경우 반품 환불
다배송지의 경우 다른 지역의 반품을 동시에 진행할 수 없습니다.
1개 지역의 반품이 완료된 후 다른 지역 반품을 진행할 수 있으므로, 이점 양해해 주시기 바랍니다.
중고상품의 교환
중고상품은 제한된 재고 내에서 판매가 이루어지므로, 교환은 불가능합니다.
오픈마켓 상품의 환불
오픈마켓상품에 대한 책임은 원칙적으로 업체에게 있으므로, 교환/반품 접수시 반드시 판매자와 협의 후 반품 접수를 하셔야하며,
   반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가능할 수 있으니 유의하시기 바랍니다.
배송예정일 안내
인터파크 도서는 모든 상품에 대해 배송완료예정일을 웹사이트에 표시하고 있습니다.
<인터파크 직배송 상품>
상품은 월~토요일 오전 10시 이전 주문분에 대하여 당일 출고/당일 배송완료를 보장하는 상품입니다.
상품은 서울지역/평일 주문분은 당일 출고/익일 배송완료를 보장하며,
서울외지역/평일 주문분의 경우는 오후 6시까지 주문분에 대하여 익일 배송완료를 보장하는 상품입니다.
(단, 월요일은 12시까지 주문에 한함)
상품은, 입고예정일(제품출시일)+택배사배송일(1일)에 배송완료를 보장합니다.
~ 상품은 유통특성상 인터파크에서 재고를 보유하지 않은 상품으로
주문일+기준출고일+택배사배송일(1일)에 배송완료를 보장합니다.(토/공휴일은 배송기간에 포함되지 않습니다.)
※기준출고일:인터파크가 상품을 수급하여 물류창고에서 포장/출고하기까지 소요되는 시간
<업체 직접배송/오픈마켓 상품>
~ 상품은 업체가 주문을 확인하고, 출고하기까지 걸리는 시간입니다.
주문일+기준출고일+택배사배송일(2일)에 배송완료를 보장합니다.(토/공휴일은 배송기간에 포함되지 않습니다.)
※5일이내 출고가 시작되지 않을시, 오픈마켓 상품은 자동으로 주문이 취소되며, 고객님께 품절보상금을 지급해 드립니다.
배송비 안내
도서(중고도서 포함)만 구매하시면 : 배송비 2,000원 (1만원이상 구매 시 무료배송)
음반/DVD만 구매하시면 : 배송비 1,500원 (2만원이상 구매 시 무료배송)
잡지/만화/기프트만 구매하시면 : 배송비 2,000원 (2만원이상 구매 시 무료배송)
도서와 음반/DVD를 함께 구매하시면 : 배송비 1,500원 1만원이상 구매 시 무료배송)
도서와 잡지/만화/기프트/중고직배송상품을 함께 구매하시면 : 2,000원 (1만원이상 구매 시 무료배송)
업체직접배송상품을 구매시 : 업체별로 상이한 배송비 적용

   * 세트상품의 경우 부분취소 시 추가 배송비가 부과될 수 있습니다.
   * 북카트에서 배송비없애기 버튼을 클릭하셔서, 동일업체상품을 조금 더 구매하시면, 배송비를 절약하실 수 있습니다.
해외배송 안내
인터파크도서에서는 국내에서 주문하시거나 해외에서 주문하여 해외로 배송을 원하실 경우 DHL과 특약으로 책정된 요금표에
   의해 개인이 이용하는 경우보다 배송요금을 크게 낮추며 DHL(www.dhl.co.kr)로 해외배송 서비스를 제공합니다.
해외배송은 도서/CD/DVD 상품에 한해 서비스하고 있으며, 다른 상품을 북카트에 함께 담으실 경우 해외배송이 불가합니다.
해외주문배송 서비스는 인터파크 도서 회원 가입을 하셔야만 신청 가능합니다.
알아두세요!!!
도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 취소될 수 있습니다.
오픈마켓업체의 배송지연시 주문이 자동으로 취소될 수 있습니다.
출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 기준으로 배송됩니다.
유통의 특성상 출고기간은 예정보다 앞당겨지거나 늦춰질 수 있습니다.
택배사 배송일인 서울 및 수도권은 1~2일, 지방은 2~3일, 도서, 산간, 군부대는 3일 이상의 시간이 소요됩니다.
  • 0개
  • 0개