이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
▣ 01장: 러스트 소개
1.1 왜 러스트를 배워야 하는가? ___개요 ___러스트의 역사 1.2 러스트 특징 ___안전한 메모리 관리 ___철저한 오류 처리 ___쉽고 편한 비동기 프로그래밍 ___편리한 패키지 관리 도구 1.3 러스트로 무엇을 할 수 있나? ___러스트 포 리눅스 프로젝트 ___구글의 차세대 운영체제 퓨시아 ___블록체인 ___빠르고 안정적인 백엔드 시스템 개발 ___그 외 다양한 응용 사례 1.4 개발 환경 설정하기 ___리눅스 환경에 러스트 설치 ___윈도우 환경에 러스트 설치 ___러스트 플레이그라운드 1.5 Hello World ___비주얼 스튜디오 코드로 러스트 코드 실행하기 1.6 요약 ▣ 02장: 러스트 기초 2.1 자료형 ___자료형 확인하기 ___튜플 ___배열 ___문자열 2.2 불변성과 가변성 ___섀도잉 2.3 제어문 ___if ___match 2.4 반복문 ___loop ___for ___while 2.5 함수 2.6 클로저 2.7 n번째 수를 출력하는 피보나치 함수 만들기 2.8 구조체 ___구조체 정의 ___구조체 메서드 ___연관 함수 2.9 열거형 ___Option 열거형 2.10 구조체로 연결 리스트 만들기 2.11 요약 ▣ 03장: 소유권과 메모리 할당 3.1 소유권 ___빌림 ___데이터 복제 3.2 동적 메모리 할당 ___Box ___Rc ___RefCell ___약한 참조 ___Box와 Rc 3.3 라이프타임 지시자 ___정적 변수 3.4 이중 연결 리스트 만들기 3.5 요약 ▣ 04장: 러스트 심화 4.1 프로젝트 구조와 모듈화 ___모듈화 ___간단한 모듈 만들어보기 ___mod로 계층 구성하기 ___모듈 단위로 파일 분리 ___use 사용하기 ___가시성 제어 4.2 오류 처리 ___복구 가능한 오류 ___복구 불가능한 오류 ___복구 가능한 오류 vs. 복구 불가능한 오류 4.3 컬렉션 ___Vec ___LinkedList ___HashMap ___해시셋 ___BinaryHeap ___String ___컬렉션의 소유권 4.4 간단한 파일 기반 데이터베이스 만들기 4.5 요약 ▣ 05장: 동시성, 입출력, 네트워킹, IPC 5.1 동시성 ___std::thread 사용하기 ___async/await ___이벤트 루프 ___동시성 제어 기법 ___다중 스레드에서 발생하는 다양한 문제들 5.2 입출력 ___동기식 입출력 ___비동기식 입출력 ___데이터 버퍼링 ___데이터 직렬화 ___SQLite 사용하기 5.3 네트워킹과 IPC ___간단한 HTTP 클라이언트 만들기 ___REST API 사용하기 ___간단한 웹서버 만들기 ___TCP 서버와 클라이언트 만들기 ___기타 다양한 IPC 기법들 5.4 채팅 서비스 만들기 5.5 요약 ▣ 06장: 러스트 라이브러리 활용 6.1 러스트 표준 라이브러리 ___러스트 표준 트레잇 ___AsRef ___시스템 콜 6.2 파일, 디렉터리 다루기 ___std::fs ___std::path ___tree 명령어 만들기 6.3 시간 처리 ___시간 및 날짜 관련 라이브러리 ___시간 연산 6.4 간단한 셸 터미널 만들기 6.5 요약 ▣ 07장: 객체지향과 디자인 패턴 7.1 객체지향 러스트 ___캡슐화 ___다형성 ___상속 7.2 디자인 패턴 ___팩토리 메서드 패턴 ___싱글턴 패턴 ___빌더 패턴 ___어댑터 패턴 ___컴포지트 패턴 ___데코레이터 패턴 ___플라이웨이트 패턴 ___옵저버 패턴 ___전략 패턴 ___상태 패턴 7.3 요약 ▣ 08장: 매크로 8.1 매크로란? ___매크로를 사용하는 목적 8.2 print!와 vec! ___print! 매크로 ___vec! 매크로 8.3 매크로 문법 ___macro_rules! ___매크로에서 다른 매크로 호출 8.4 매크로 디버깅 8.5 요약 ▣ 09장: 리눅스 시스템 프로그래밍 9.1 리눅스 시스템 프로그래밍이란 9.2 FFI ___Bindgen을 사용해 C 코드 호출하기 ___autocxx를 사용해 C++코드 사용하기 ___Unsafe 9.3 레거시 라이브러리 연동 ___libc 사용하기 ___OS 자료형 ___레거시 코드를 러스트로 마이그레이션하기 위한 단계별 전략 9.4 리눅스 시스템 프로그램 만들기 ___공유 메모리 다루기 ___mmap으로 프로세스 간 파일 공유 ___ioctl로 디바이스 제어하기 ___시그널 핸들러 다루기 ___DBus 서버/클라이언트 개발 9.5 요약 ▣ 10장: 커널 개발을 위해 알아야 할 것 10.1 리눅스 커널의 역사 ___리눅스 운영체제와 리눅스 커널 ___리눅스 커널의 역사 ___리누스 토발즈와 타넨바움 교수의 논쟁 ___모놀리식 커널과 마이크로 커널 ___리눅스 커널의 성공 요인 ___리눅스 커널 관리 및 개발 ___리눅스 커널 코드 반영 방법 ___리눅스 운영체제와 유닉스 10.2 커널 개발을 위한 환경 설정 ___러스트 툴체인 다운로드 및 설치 방법 ___러스트 커널 다운로드 ___러스트 커널 빌드 방법 ___QEMU 환경 구축 10.3 러스트 커널 모듈 빌드 및 실행 10.4 요약 ▣ 11장: 리눅스 커널 아키텍처 11.1 리눅스 커널 아키텍처 11.2 프로세스 관리 ___프로세스의 개념과 특징 ___스레드 ___프로세스 상태와 생명주기 ___프로세스 관리를 위한 자료 구조 ___프로세스 스케줄링 ___프로세스 동기화와 통신 11.3 메모리 관리 11.4 파일 시스템 11.5 유저 모드 vs. 커널 모드 11.6 요약 ▣ 12장: C를 사용해 커널 모듈 만들기 12.1 빌드 환경 구성 12.2 간단한 커널 모듈 만들기 12.3 유저 모드 프로그램과 상호작용하기 12.4 요약 ▣ 13장: 러스트 이용한 커널 개발 13.1 러스트 포 리눅스 13.2 러스트를 이용한 커널 개발 13.3 커널 개발을 돕는 다양한 크레이트 ___커널 크레이트 ___할당 크레이트 ___코어 크레이트 13.4 러스트를 사용해 간단한 커널 모듈 만들기 ___간단한 커널 모듈 만들기 ___리눅스 커널에서 FFI 사용하기 ___커널 모듈에 파라미터 넘기기 ___유저 프로그램과 상호작용하기 ___커널의 동기화 요소 사용하기 ___유저 모드에서 사용 가능한 커널 세마포어 구현하기 13.5 요약 ▣ 14장: 커널 모듈 개발 심화 14.1 커널 핵심 모듈 개발 ___커널 메모리 할당 ___커널 스레드 구현 ___커널 인터럽트 핸들러 구현 14.2 DMA와 제로 카피 전략 ___제로 카피 전략 ___DMA ___mmap과 DMA를 사용한 제로 카피 전략 14.3 드라이버 레벨에서 ioctl 구현 ___ioctl 구현 14.4 간단한 문자 드라이버 만들기 ___문자 드라이버 구현 14.5 간단한 블록 디바이스 드라이버 만들기 ___블록 디바이스 드라이버 구현 14.6 요약 ▣ 15장: 커널 디버깅 15.1 성능 프로파일 ___ftrace ___eBPF 15.2 로깅 ___커널 로그 출력 및 확인 ___러스트로 커널 로그 출력 방법 15.3 시스템 프로세스 정보 확인 방법 15.4 커널 패닉 분석 ___kdump 사용법 15.5 요약 ▣ 16장: 종합 예제 16.1 LXC를 사용해 나만의 컨테이너 만들기 16.2 Fuse를 이용한 유저 영역 파일 드라이버 만들기 ___파일 드라이버 구조 ___FUSE ___FUSE를 이용한 유저 영역 파일 드라이버 만들기 16.3 요약 ▣ 17장: 마치며 17.1 정리하기 17.2 러스트의 미래 ▣ 부록A: 웹 어셈블리 A.1 웹 어셈블리 소개 A.2 웹 어셈블리의 작동 과정 A.3 웹 어셈블리 개발하기 ___개발 환경 구성 ___간단한 웹 어셈블리 만들기 ___wasm을 구동할 웹 서버 설정 A.4 yew를 사용해 간단한 SPA 구동하기 ▣ 부록B: 크로스 플랫폼 B.1 크로스 플랫폼 소개 ___ARM64용 Hello World 개발하기 B.2 Android NDK 개발 ___개발 환경 구성 B.3 간단한 NDK 샘플 만들기 ___자바와 러스트의 성능 비교 ▣ 부록C: GUI 프로그래밍 C.1 ICED C.2 egui C.3 gtk-rs |