목표: 변수, 데이터 타입, 조건문, 반복문, 함수 사용해보기
내용: 간단한 사칙연산을 수행할 수 있는 CLI 계산기를 구현합니다.
학습 포인트: 기본 데이터 타입과 연산자, 표준 입출력 처리, match 구문을 활용한 조건 처리
목표: 파일 입출력, 문자열 처리 학습
내용: 텍스트 파일을 읽어서 그 안의 단어 개수를 출력하는 프로그램을 작성합니다.
학습 포인트: 파일 처리(std::fs), Result와 에러 처리, 문자열 다루기
목표: 기본적인 네트워크 프로그래밍과 비동기 처리 이해하기
내용: Rust의 hyper 혹은 tokio 라이브러리를 사용해 간단한 HTTP 서버를 구현합니다. 요청을 받고 정적인 HTML을 반환하는 서버를 만듭니다.
학습 포인트: 비동기 프로그래밍, 네트워킹 기초, 라이브러리 활용법
목표: Rust에서의 데이터 구조와 소유권 이해하기
내용: 단순 연결 리스트를 직접 구현해 보면서 소유권과 빌림(Borrowing)의 개념을 학습합니다.
학습 포인트: 소유권, 참조와 빌림, Box 및 Option 타입의 활용
목표: 멀티스레딩과 동시성 이해하기
내용: 특정 웹사이트의 링크들을 크롤링하는 간단한 웹 크롤러를 구현합니다. 여러 스레드를 사용해 크롤링 작업을 병렬로 수행합니다.
학습 포인트: thread와 Mutex, Arc 같은 동시성 도구 사용, 채널(mpsc)로 스레드 간 메시지 전달
목표: 상태 관리와 사용자 입력 처리 익히기
내용: 터미널에서 실행되는 간단한 뱀 게임을 구현합니다. 방향키로 뱀을 조종하고 먹이를 먹으며 점수를 얻는 게임입니다.
학습 포인트: 상태 유지, 반복적인 게임 루프 구현, 사용자 입력 처리
목표: 데이터베이스와의 연동 및 REST API 설계 이해하기
내용: 사용자 요청에 따라 TODO 리스트를 관리할 수 있는 REST API 서버를 만듭니다. 데이터는 SQLite와 같은 간단한 데이터베이스에 저장합니다.
학습 포인트: Actix-web과 같은 프레임워크 사용법, 데이터베이스 연동(Diesel 혹은 SQLx), JSON 직렬화/역직렬화
목표: 비동기 프로그래밍 심화 학습
내용: 간단한 채팅 애플리케이션 서버를 구현합니다. 여러 사용자가 접속해서 메시지를 주고받을 수 있도록 합니다.
학습 포인트: tokio와 async/await을 활용한 비동기 네트워킹, WebSocket을 이용한 실시간 통신
목표: Rust의 다양한 기능을 종합적으로 활용해 보기
내용: 블록체인의 기본적인 개념을 구현하여 블록과 트랜잭션을 추가하고 해시를 계산하는 간단한 블록체인을 만들어 봅니다.
학습 포인트: 해시 계산, 데이터 구조 설계, 소유권과 데이터 무결성 보장