만들면서 배우는 러스트 프로그래밍 (다양한 예제로 쉽게 익히고 널리 활용하는 고효율 언어 Rust 실전 가이드)

만들면서 배우는 러스트 프로그래밍 (다양한 예제로 쉽게 익히고 널리 활용하는 고효율 언어 Rust 실전 가이드)

$33.00
Description
고효율, 현대적 프로그래밍 언어 Rust의 결정적 해설서!
러스트는 효율적이고 신뢰할 수 있으며 생산성이 높은 언어로, 프로그래머가 가장 배우고 싶어 하는 언어로 꼽힌다. 배울 가치가 높은 언어이지만 프로그래밍 초보자에게는 어려울 수 있다. 따라서 파이썬이나 다른 언어로 프로그래밍의 기초를 다진 뒤 배우는 것이 효과적이다.

《만들면서 배우는 러스트 프로그래밍》은 러스트 코드와 파이썬 코드를 비교하면서도 효율적으로 러스트를 배울 수 있는 콘셉트로 만들어졌다. 다양한 소스 코드를 수록해 러스트를 조금 더 쉽게 배울 수 있도록 했으며, 독자가 파이썬을 알고 있다고 가정하므로 중복 설명이나 불필요한 예제를 생략해 러스트의 매력에 더 집중할 수 있게 했다. 또한 러스트를 배움으로써 파이썬의 장점을 재발견하고, 파이썬이 뒤에서 어떻게 작동하는지 이해하는 데에도 큰 도움이 될 것이다.

★ 이 책에서 다루는 내용 ★

◎ 파이썬과 러스트의 비교
◎ 러스트의 문법과 다양한 기능
◎ 러스트를 이용한 신디사이저, 채팅 기능 만들기
◎ 메모리 관리
◎ 이미지 처리 라이브러리 활용
◎ C 언어나 파이썬 등과 연동하는 방법
◎ 웹 어셈블리 제작
저자

쿠지라히코우즈쿠에

취미로하던프로그래밍이어느새직업이돼현재는소프트웨어기획‘쿠지라한도’에서‘즐겁고도움이되는도구’를테마로다수의앱을만들었다.대표작은일본어프로그래밍언어‘나데시코’,텍스트음악‘사쿠라’등.2001년에는온라인소프트웨어대상에입상.2004년도IPA미답유스에서슈퍼크리에이터로인정.2010년OSS공헌자상수상.2021년‘나데시코’가중학교교과서에채택됐다.기계학습이나파이썬등매년2권이상기술서적을집필하고있다.

목차

▣01장:파이썬에서러스트로이동하기위한기본준비
01왜Rust가필요한가
__러스트는어떤언어인가
__러스트의특징
__[Column]메모리관리의어려움
__[Column]러스트의뜻은‘녹’
__러스트는어려운가
02파이썬과러스트의차이점
__파이썬은인터프리터언어.러스트는?
__둘다모던언어
__동적타입언어와정적타입언어
__파이썬과러스트의메모리관리
03러스트와러스트개발환경설치
__OS별설치방법
__윈도우에설치
__macOS/리눅스에설치
__설치된러스트를최신버전으로업데이트하는방법
__러스트개발을위한개발환경
__VisualStudioCode설치
__파이썬설치
__Hello,World!
04러스트시작하기
__화면에문자표시하기
__변숫값을문자열에포함시켜표시하기
__사칙연산해보기
05러스트와파이썬으로FizzBuzz문제풀기
__러스트와조금더친해지기
__파이썬으로FizzBuzz문제풀기
__러스트로FizzBuzz문제풀기
__for문과if문을이용해3의배수와3이들어간숫자를A로표시하기
06러스트와파이썬으로구구단만들기
__구구단구성
__파이썬으로구구단만들기
__러스트로구구단만들기
__완성도높이기
__서력을조선연호로변환
07변수정의와피보나치수열
__피보나치수열이란
__러스트에서변수를정의하는방법
__변수가불변일때의장점
__[옮긴이보충]임시로값을대입하기위한변수
__제품가격비교해보기
08변수타입과거스름돈조합계산
__거스름돈조합계산하기
__러스트의변수타입
__이용가능한정수범위를알아내는방법
__타입추론을이용하지않고거스름돈조합계산해보기
09함수정의와시저암호
__시저암호란
__함수정의와호출
__시저암호를조금더우아하게만들기
10배열과100개의소수계산
__소수계산으로러스트에더익숙해지기
__참조란?
__for문문법
__[Column]가변배열-벡터에대해
__[Column]변수에if를사용해값선언하기

▣02장:러스트로간단한도구만들기
01Cargo이용방법및큰수계산
__러스트의빌드시스템‘Cargo’는무엇인가?
__Cargo를이용해프로젝트시작하기
__공개된크레이트사용해보기
__[옮긴이보충]cargorun과cargobuild
__[Column]‘externcrate***’표기
__[Column]크레이트의모듈을불러오는‘use’
02주사위굴리기와미로자동생성
__주사위굴리기를만들자
__난수를이용한미로자동생성
03벡터타입,빙고카드생성
__빙고카드를자동으로만들어주는도구만들기
__파이썬으로빙고카드만들기
__러스트로빙고카드만들기
__크기를변경할수있는배열,벡터타입
__벡터를이용해빙고카드만들기
04표준입력과비만도측정
__BMI로비만도진단하기
__[옮긴이보충]Result타입처리
__러스트에서표준입력처리하기
__[Column]숫잣값리터럴
05설문집계
__인기투표집계구조
__HashMap사용방법확인
06명령줄에서사용할수있는도구제작
__명령줄인수를더하는도구
__지정한텍스트파일의내용을읽어와표시
__[옮긴이보충]존재하지않는파일을지정했을때의처리추가
__텍스트파일안에저장된숫자값을더하는도구만들기
07파일읽기와영한사전만들기
__명령줄에서사용할사전만들어보기
__FizzBuzz의실행결과를파일로저장해비교하기
__[옮긴이보충]unwrap메서드
__영한사전만들기
__파일에내용쓰기
__파일을다룰때발생하는에러처리
08파일재귀검색도구만들기
__재귀란?
__파일재귀검색프로그램만들기
__러스트의파일경로표현
__[Column]파일경로표현은OS별로다르다
__tree명령을직접만들기

▣03장:문법편-소유권시스템과데이터타입
01최초의난관,소유권시스템
__소유권시스템이란무엇인가
__[Column]소유권시스템은러스트독자적인것인가?
__메모리관리를‘소유권’으로생각하는것
__소유권의3대기본원칙
__[Column]메모리할당과해제의어려움
__소유권시스템을적용받지않는타입
__[Column]복제할때의소유권
02빌림과참조
__‘빌림’이란
__함수호출로이동하는소유권
__참조자를반환하는함수
__가변참조자를인수로사용하기
__[Column]println!매크로사용방법정리
03러스트의튜플,배열,슬라이스
__튜플이란
__러스트의배열
__슬라이스타입이란
04러스트의구조체
__구조체란
__구조체를이용한BMI계산
__판정기준을만들어비만도판정하기
__구조체와변수의명명규칙
05러스트의문자열
__러스트의문자열
__러스트의문자열은UTF-8
__&str에슬라이스사용
__&str과String상호변환
__라이프타임
06러스트의문자열처리에익숙해지기
__문자열을바이너리에디터형태로출력하기
__부분문자열얻기
__문자열검색
__섀도잉-스코프안에서변수재선언
__문자열분할
__EUC-KR로인코딩된파일읽고쓰기
07전역변수와unsafe
__이상을추구하며현실을직시하는언어
__의사난수생성
__난수발생기준비
__‘좋은난수생성’구조
__러스트에서전역변수이용하기
__unsafe를이용하지않고의사난수만들기
__[옮긴이보충]Xorshift
08테스트프레임워크
__Cargo로간편하게테스트
__테스트코드를만들어결과확인
__배열과벡터값테스트
__구조체테스트

▣04장:문법편-메서드,제네릭,트레잇
01구조체와메서드
__구조체에메서드정의하기
__구조체와메서드를이용한BMI계산
__구조체갱신
__[Column]구조체복사
__[옮긴이보충]구조체복사속성
02공통동작을정의하는트레잇
__트레잇이란
__트레잇의기본메서드
03제네릭
__제네릭복습하기
__제네릭함수정의
__구조체에제네릭지정
04반복자
__반복자의기본내용확인
__반복자트레잇
05열거형과패턴매칭
__‘null안전’언어러스트
__열거형정의하기
__패턴매칭
06러스트의모듈,크레이트,패키지
__왜기능별로분리해야하는가
__[Column]연산오버플로를무시하는방법
__모듈을파일로분리하는방법
__[Column]Cargo.toml파일에있는‘edition’
__[옮긴이보충]2계층이상의서브모듈
__상대경로로모듈지정
__패키지
__[옮긴이보충]워크스페이스
07직접만든크레이트공개하기
__crates.io에크레이트등록
__RPN(역폴란드표기법)이란
__crates.io에크레이트공개하기

▣05장:응용편-사진/음악/네트워크
01이미지처리도구만들기
__이미지파일다루기
__색상반전도구만들기
__[Column]thumbnail메서드
02웨이브합성으로음악연주하기
__웨이브합성과재생
__sinewave프로젝트생성
__음악만들기
__MML연주기만들기
0380년대게임음원만들기
__다양한파형의신디사이저만들기
__톱니파
__파이썬에서파형표시하기
__방형파
__삼각파
__화이트노이즈
__펄스파
__FM음원
04네트워크와병렬처리
__스레드란
__스레드로병렬계산처리
05간이채팅프로그램만들기
__간이채팅서비스
__스레드사용
__채팅서버
__채팅클라이언트
06웹프로그램만들기
__러스트로웹프로그램을만드는의미
__러스트웹프레임워크
__ActixWeb
__빠르게개발할수있는웹프레임워크‘Tide’
__[옮긴이보충]POST메서드로전송1
__이름을입력받아인사하기
__[옮긴이보충]POST메서드로전송2
__러스트와파이썬웹개발비교

▣06장:응용편-메모리관리및다른언어와의연계
01매크로만들기
__러스트의매크로
__매크로정의하기
__HashMap을간편하게초기화하는매크로만들기
__매크로재귀호출
__실제매크로가만들어낸코드보기-매크로전개
__[Column]절차적매크로
02단방향리스트로메모리관리이해하기
__단방향연결리스트구현
__단방향연결리스트에메서드구현
03메모리참조카운터
__Box〈T〉를이용한단방향연결리스트의단점
__Rc〈T〉타입으로참조카운팅방식메모리관리가능
__RefCell〈T〉타입사용
__순환참조를피하는Weak타입
__Rc〈T〉와Weak〈T〉로양방향연결리스트만들기
__스레드안전성을위한Arc〈T〉와Mutex〈T〉
04파서생성기로미니언어만들기
__왜언어를직접만드는가
__간단한덧셈계산기만들기
__사칙연산이가능한계산기만들기
__미니언어만들기
05C언어,파이썬과의연계
__FFI
__C언어의라이브러리를러스트에서호출
__러스트에서만든라이브러리를C언어에서호출
__러스트에서C언어데이터타입다루기
__동적라이브러리를생성해파이썬에서사용
06웹어셈블리
__웹어셈블리란무엇인가
__러스트로웹어셈블리사용하기
__토마토언어플레이그라운드만들기
07비동기통신과스크래핑
__자주쓰는도구를러스트로만들기
__비동기처리
__러스트의비동기처리
__비동기처리기본
__웹페이지의이미지를연속으로다운로드하기
08암호화도구만들기
__암호화도구만들기
__명령줄용암호화도구
__웹어셈블리로만들어브라우저에서실행

▣부록A_오류메시지와해결팁

▣부록B_러스트용어집

▣부록C_러스트의기본구문요약