반응형 전체 글497 러스트(Rust) 배우기 8강 — 실전: 할 일 목록(To-Do) CLI 만들기 러스트(Rust) 배우기 8강 — 실전: 할 일 목록(To-Do) CLI 만들기드디어 마지막 강의입니다. 지금까지 배운 조각들, 변수·함수·구조체·열거형·match·Option·Result·컬렉션을 하나로 합쳐 실제로 동작하는 작은 프로그램을 처음부터 만들어 봅니다. 만들 것은 명령줄에서 쓰는 간단한 할 일 관리기예요. 흩어져 있던 개념들이 어떻게 맞물리는지 눈으로 확인하는 시간입니다. 무엇을 만드나명령을 입력하면 할 일을 추가하고, 목록을 보고, 완료 표시하고, 끝내는 프로그램입니다. 실행하면 이렇게 동작해요.할 일 관리 (명령: add 제목 / list / done 번호 / quit)> add 우유 사기추가됨> add 러스트 공부추가됨> list1: [ ] 우유 사기2: [ ] 러스트 공부> done.. 2026. 9. 19. 러스트(Rust) 배우기 7강 — 제네릭·트레잇·수명 러스트(Rust) 배우기 7강 — 제네릭·트레잇·수명이번이 시리즈에서 가장 추상적인 파트입니다. 하지만 겁먹지 마세요. 셋 다 "같은 코드를 여러 곳에 재사용하기 위한 장치"라는 하나의 목적을 공유합니다. 제네릭은 여러 타입에, 트레잇은 여러 타입에 공통 능력을, 수명은 그 과정에서 참조가 안전하게 유지되도록 돕습니다. 예제로 하나씩 손에 익혀 봅시다.제네릭 — 타입을 나중에 채우는 틀같은 로직인데 타입만 다르다고 함수를 여러 개 만드는 건 낭비입니다. i32 목록용, f64 목록용, 문자열용을 따로 짤 순 없죠. 제네릭은 타입 자리를 라는 빈칸으로 비워 두고, 쓸 때 채우게 합니다.// T는 "아무 타입이나" 들어갈 자리. 단, 출력 가능한 타입으로 제한(뒤에서 설명)fn print_all(list:.. 2026. 9. 19. 러스트(Rust) 배우기 6강 — 컬렉션: Vec·String·HashMap 러스트(Rust) 배우기 6강 — 컬렉션: Vec·String·HashMap지금까지는 값 하나하나를 다뤘습니다. 이제 값을 여러 개 담는 그릇을 배웁니다. 실무 코드의 대부분은 결국 목록을 순회하고, 문자열을 조립하고, 키로 값을 찾는 일이에요. 러스트에서 이걸 맡는 세 가지가 Vec(목록), String(문자열), HashMap(사전)입니다. 앞서 배운 소유권·빌림·Option이 여기서 실제로 쓰이니, 복습도 겸하게 됩니다.Vec — 늘어나는 목록Vec(벡터)는 같은 타입의 값을 순서대로 담는, 길이가 자유롭게 늘어나는 목록입니다. 1강의 배열이 고정 길이였다면, Vec은 얼마든지 추가할 수 있어요.fn main() { let mut v: Vec = Vec::new(); // 빈 목록 v... 2026. 9. 19. 러스트(Rust) 배우기 5강 — 에러 처리: Result와 ? 연산자 러스트(Rust) 배우기 5강 — 에러 처리: Result와 ? 연산자프로그램은 늘 실패할 수 있습니다. 파일이 없거나, 사용자가 숫자 대신 글자를 넣거나, 네트워크가 끊기죠. 이 실패를 어떻게 다루느냐가 코드의 안정성을 가릅니다. 러스트는 실패를 예외로 몰래 던지지 않고, 반환값의 타입에 담아 눈에 보이게 처리하도록 만듭니다. 4강의 Option/match를 이해했다면 이번 5강은 그 연장선이라 술술 이어질 거예요. 러스트의 두 가지 에러러스트는 에러를 두 부류로 나눕니다.○ 회복 불가능한 에러 — 더 진행하면 안 되는 심각한 상황. 프로그램을 즉시 멈춘다(panic!).○ 회복 가능한 에러 — 실패했지만 대응할 수 있는 상황(파일 없음, 파싱 실패 등). 값으로 돌려받아 처리한다(Result).대부분.. 2026. 9. 19. 러스트(Rust) 배우기 4강 — 구조체(struct)·열거형(enum)·match 러스트(Rust) 배우기 4강 — 구조체(struct)·열거형(enum)·match2·3강에서 소유권과 빌림이라는 두 기둥을 세웠습니다. 이제 그 위에서 실제 데이터를 내 방식대로 묶고 다루는 법을 배웁니다. 구조체로 관련 데이터를 하나로 묶고, 열거형으로 "여러 갈래 중 하나"를 표현하고, match로 그 갈래를 빠짐없이 처리하는 것. 이 셋은 러스트 코드를 짤 때 매일 쓰는 도구입니다. 구조체(struct) — 관련 데이터를 하나로 묶기이름, 나이, 활성 여부처럼 한 덩어리로 다뤄야 할 값들을 따로따로 변수로 두면 관리가 번거롭습니다. 구조체는 이들을 하나의 타입으로 묶어 줍니다.struct User { // 구조체 정의 name: String, age: u32, ac.. 2026. 9. 19. 러스트(Rust) 배우기 3강 — 참조와 빌림(References & Borrowing) 러스트(Rust) 배우기 3강 — 참조와 빌림(References & Borrowing)2강 끝에서 이런 불편함을 만났습니다. 값을 함수에 넘기면 소유권까지 넘어가서, 계속 쓰려면 매번 반환해 돌려받아야 한다는 것. 값 하나 잠깐 보여주려고 통째로 주고받는 건 너무 번거롭죠.3강은 그 해법입니다. 소유권은 그대로 두고, 값만 잠깐 빌려 쓰는 것. 이걸 참조(reference)와 빌림(borrowing)이라고 합니다. 2강 소유권과 3강 빌림이 합쳐져야 러스트의 그림이 완성돼요. 참조 & — 소유권은 두고 빌리기변수 앞에 & 를 붙이면 "값 자체"가 아니라 "값을 가리키는 참조"를 넘깁니다. 소유권은 원래 자리에 남고, 함수는 잠깐 빌려서 봅니다.fn calc_len(s: &String) -> usize .. 2026. 9. 19. 러스트(Rust) 배우기 2강 — 소유권(Ownership): move·drop·clone 러스트(Rust) 배우기 2강 — 소유권(Ownership): move·drop·clone이번이 러스트의 심장입니다. 소유권(ownership)은 다른 언어엔 없는, 러스트만의 규칙이에요. 처음엔 낯설고 컴파일러에게 자주 혼나지만, 이 개념 하나를 이해하면 "왜 러스트가 GC 없이도 안전한가"가 풀리면서 언어 전체가 확 열립니다. 1강보다 천천히, 예제를 많이 두고 갑니다. 먼저, 메모리는 누가 치우나프로그램은 값을 저장하려고 메모리를 빌리고, 다 쓰면 돌려줘야 합니다. 이 "돌려주기"를 누가 언제 하느냐가 언어마다 다릅니다.방식예문제직접 관리C·C++빠르지만 실수하면 버그(누수·이중 해제)자동 청소(GC)자바·파이썬·JS편하지만 실행 중 비용·잠깐 멈춤소유권러스트컴파일 때 규칙으로 관리 → 빠르고 안전.. 2026. 9. 19. 러스트(Rust) 배우기 1강 — 첫걸음: 설치·변수·타입·함수·흐름 러스트(Rust) 배우기 1강 — 첫걸음: 설치·변수·타입·함수·흐름혼자서 러스트를 처음 배우는 사람을 위한 강의 시리즈입니다. SEO나 요약이 아니라, 실제로 손으로 따라 치며 익히는 데 초점을 맞췄습니다. 코드는 전부 그대로 돌아가는 것들이니, 눈으로만 읽지 말고 직접 쳐 보는 걸 권합니다.1강은 준비운동입니다. 설치하고, 첫 프로그램을 돌리고, 변수·타입·함수·제어 흐름이라는 기본 문법을 손에 익힙니다. 러스트의 진짜 핵심인 '소유권'은 2강에서 다룹니다. 이 시리즈의 순서강주제1강설치·첫 프로그램·변수·타입·함수·흐름 (지금)2강소유권(Ownership) — 러스트의 심장3강참조와 빌림(References & Borrowing)4강구조체·열거형·match5강에러 처리 (Result·Option·?.. 2026. 9. 18. 이전 1 2 3 4 ··· 63 다음 반응형