위치: 학습 › 개발 (CS) › 언어 › Rust
규모: 포스팅 11개
기본 문법
표현식·구조체·열거형·에러 처리 등 Rust를 읽고 쓰기 위한 기본기.
| 포스팅 | 설명 |
|---|---|
| 표현식과 문장(Expression vs Statement, 암묵적 반환) | Rust에는 return 키워드가 존재하지만 필수가 아니다. |
| 기호 완전정리(콜론·화살표·등호, String vs &str) | struct-like variant를 가진 enum(PaymentStatus)을 직접 써보면 콜론(:), 화살표(->, =>), 등호(=)가 비슷하게 생겨서 헷갈리기 쉽다. |
| 구조체(Struct)와 예제 프로그램 | 구조체 정의 3가지 형태, 필드 초기화 축약/업데이트 문법, impl로 메서드·연관 함수 붙이는 법부터, 사각형 넓이 계산 예제로 보는 “개별 변수 → 튜플 → 구조체” 리팩토링 과정, #[d… |
| 열거형과 패턴 매칭(Enum & Match) | Payload enum + C 태그드 유니온 메모리 레이아웃 설계 예제 추가(2026-09-20) |
| 에러 처리(thiserror, Result, ? 연산자) | GlueSQL은 예외(exception) 없이 Result<T, E> 값과 ? 연산자만으로 에러를 처리하는 Rust의 표준 방식을 따름. thiserror 크레이트로 각 계층(파서/실행/평가… |
소유권·라이프타임
Rust의 핵심인 소유권·빌림 규칙과 라이프타임 표기.
| 포스팅 | 설명 |
|---|---|
| 소유권과 참조(Ownership & Borrowing) | mut vs &mut 2×2 구분, &mut self 리시버 타입을 impl 블록이 정하는 원리, Vec<T> 내부 구조(C realloc 비교) 추가(2026-09-20) |
| 라이프타임 심화(구조체·트레잇 함수의 라이프타임) | 소유권과 참조 노트에서 다룬 기본 참조 규칙을 넘어, GlueSQL은 참조를 담은 구조체와 여러 라이프타임이 얽힌 함수 시그니처를 실무 수준으로 사용함. |
추상화 (트레잇·클로저·모듈·매크로)
트레잇·제네릭, 이터레이터·클로저, 모듈 가시성, 매크로로 코드를 추상화하는 방법.
| 포스팅 | 설명 |
|---|---|
| 트레잇과 제네릭(Trait Object, Blanket Impl, 제네릭 경계) | AsRef<T> 실제 정의와 “왜 읽기 전용인지” 추가(2026-09-20) |
| 이터레이터와 클로저(Iterator Chain & Closure) | GlueSQL의 쿼리 실행 코드(row 필터링, 정렬, 평가 등)는 for문 대신 .map(), .filter_map(), .collect() 같은 이터레이터 체인과 클로저로 작성되어 있음. |
| 모듈 시스템과 가시성(mod, pub, pub use) | GlueSQL의 core 크레이트는 수십 개의 하위 모듈로 구성되어 있지만, 사용자는 gluesql_core::prelude:: 하나만 use하면 필요한 타입을 전부 가져올 수 있음. |
| 매크로(절차적 매크로 & macro_rules!) | 매크로가 함수와 근본적으로 다른 이유, macro_rules! 기본 문법(패턴·반복·fragment specifier), 매크로 3종류(declarative / derive / attribut… |