🦀 Rust Learning Ebook
EN KO

🦀 Chapter 1: Rust 소개

弘益人間 (Hongik Ingan)

"널리 인간을 이롭게 하라"

WIA Rust Learning Standard는 안전하고 효율적인 프로그래밍을 통해 인류에게 더 나은 소프트웨어를 제공한다는 철학을 바탕으로 합니다.

1.1 Rust란 무엇인가?

Rust는 Mozilla Research에서 개발한 시스템 프로그래밍 언어로, 메모리 안전성, 동시성, 성능을 동시에 달성하도록 설계되었습니다. 2015년 1.0 버전이 출시된 이후, Stack Overflow 개발자 설문조사에서 8년 연속(2016-2023) "가장 사랑받는 언어" 1위를 차지했습니다.

[i] 정의: Rust는 가비지 컬렉터 없이 컴파일 타임에 메모리 안전성을 보장하는 현대적 시스템 프로그래밍 언어입니다.

1.1.1 Rust의 탄생

Rust는 2006년 Mozilla의 엔지니어 Graydon Hoare가 개인 프로젝트로 시작했습니다. 당시 C/C++로 작성된 Firefox 브라우저의 메모리 안전성 문제를 해결하기 위한 목적이었습니다.

항목 내용
창시자 Graydon Hoare
후원사 Mozilla Research (2009-2020), Rust Foundation (2021-현재)
첫 공개 2010년
1.0 출시 2015년 5월 15일
핵심 철학 안전성, 속도, 동시성

1.1.2 왜 메모리 안전성이 중요한가?

Microsoft와 Google의 보고서에 따르면, 주요 소프트웨어의 보안 취약점 중 70%가 메모리 안전성 문제에서 발생합니다. 대표적인 예시:

Rust는 이 모든 문제를 컴파일 타임에 방지합니다. 코드가 컴파일되면 메모리 안전이 보장됩니다.


1.2 시장 채택률과 성장

Rust는 학술적 연구 단계를 넘어 산업계에서 광범위하게 채택되고 있습니다.

1.2.1 주요 기업의 Rust 도입

기업 활용 분야 주요 프로젝트
Mozilla 브라우저 엔진 Servo (실험적 브라우저 엔진), Firefox 일부
Microsoft Windows 커널 Azure IoT Edge, Windows 보안 컴포넌트
Google Android OS Android 13+ 시스템 컴포넌트
Amazon 클라우드 인프라 Firecracker (서버리스 컴퓨팅), Bottlerocket OS
Meta (Facebook) 백엔드 서비스 Mononoke, Diem (Libra) 블록체인
Cloudflare Edge 컴퓨팅 Workers 런타임
Discord 백엔드 서비스 메시지 라우팅 (Go에서 Rust로 전환)

1.2.2 개발자 커뮤니티 성장

Stack Overflow 개발자 설문조사 (2016-2024)


1.3 핵심 개념

1.3.1 소유권 (Ownership)

Rust의 가장 독특한 기능은 소유권 시스템입니다. 모든 값은 하나의 소유자를 가지며, 소유자가 스코프를 벗어나면 값이 자동으로 해제됩니다.

소유권 3원칙

  1. Rust의 각 값은 소유자(owner)가 있다
  2. 한 번에 하나의 소유자만 존재할 수 있다
  3. 소유자가 스코프를 벗어나면 값이 버려진다(dropped)
fn main() {
    let s1 = String::from("hello");
    let s2 = s1;  // s1의 소유권이 s2로 이동

    // println!("{}", s1);  // 에러! s1은 더 이상 유효하지 않음
    println!("{}", s2);  // OK
}

1.3.2 빌림 (Borrowing)

소유권을 이전하지 않고 값을 사용하려면 빌림을 사용합니다. 참조(&)를 통해 값을 빌릴 수 있습니다.

fn main() {
    let s1 = String::from("hello");
    let len = calculate_length(&s1);  // s1을 빌림

    println!("The length of '{}' is {}.", s1, len);  // s1 여전히 유효
}

fn calculate_length(s: &String) -> usize {
    s.len()
}

1.3.3 수명 (Lifetime)

수명(Lifetime)은 참조가 유효한 범위를 나타냅니다. 컴파일러가 댕글링 참조(dangling reference)를 방지합니다.

1.3.4 제로코스트 추상화

Rust의 고수준 추상화는 런타임 오버헤드가 없습니다. 다음 두 코드는 동일한 기계어로 컴파일됩니다:

고수준 코드 (이터레이터) 저수준 코드 (루프)
let sum: i32 = numbers
    .iter()
    .filter(|x| **x > 0)
    .sum();
let mut sum = 0;
for x in &numbers {
    if *x > 0 {
        sum += *x;
    }
}

1.4 Rust의 역사

연도 주요 이벤트
2006 Graydon Hoare가 개인 프로젝트로 시작
2009 Mozilla가 프로젝트 후원 시작
2010 최초 공개 발표
2012 Alpha 릴리스 (0.1)
2015 Rust 1.0 정식 출시 (안정 버전 보장)
2018 Rust 2018 Edition (언어 개선)
2021 Rust Foundation 설립 (AWS, Google, Microsoft 등 참여)
2021 Rust 2021 Edition
2024 Rust 2024 Edition (안정성과 생산성 개선)

1.5 주요 활용 사례

Rust는 성능과 안전성이 모두 중요한 다양한 분야에서 활용됩니다.

1.5.1 시스템 프로그래밍

1.5.2 웹 브라우저

1.5.3 블록체인과 암호화폐

1.5.4 웹 어셈블리 (WebAssembly)

Rust는 WebAssembly의 최고 지원 언어입니다. 브라우저에서 네이티브 수준의 성능을 제공합니다.

1.5.5 게임 개발

1.5.6 백엔드 서비스


1.6 왜 Zero-to-Rust인가?

많은 프로그래밍 교육 자료가 "Python이나 JavaScript를 먼저 배우라"고 권장합니다. 하지만 WIA Rust Learning Standard는 다른 접근을 제안합니다.

1.6.1 Rust First의 장점

장점 설명
올바른 습관 형성 처음부터 메모리 관리와 타입 안전성을 배우면 좋은 코딩 습관이 형성됩니다
깊은 이해 컴퓨터가 실제로 어떻게 작동하는지 이해하게 됩니다
최고의 에러 메시지 Rust 컴파일러는 문제를 정확히 알려주고 해결 방법까지 제시합니다
다른 언어 쉽게 배우기 Rust를 이해하면 다른 언어는 더 쉽게 느껴집니다

1.6.2 컴파일러는 당신의 선생님

Rust 컴파일러는 세계에서 가장 친절한 컴파일러입니다. 단순히 "에러"라고 말하지 않고, 무엇이 잘못되었는지, 왜 잘못되었는지, 어떻게 고쳐야 하는지 알려줍니다.

예시: Rust 컴파일러의 친절한 에러 메시지

error[E0382]: borrow of moved value: `s1`
 --> src/main.rs:4:20
  |
2 |     let s1 = String::from("hello");
  |         -- move occurs because `s1` has type `String`
3 |     let s2 = s1;
  |              -- value moved here
4 |     println!("{}", s1);
  |                    ^^ value borrowed here after move
  |
  = note: this error originates in the macro `println`
help: consider cloning the value if the performance cost is acceptable
  |
3 |     let s2 = s1.clone();
  |                ++++++++

1.7 WIA 철학: 弘益人間

WIA Rust Learning Standard는 고대 한국의 건국 이념인 弘益人間 (홍익인간)을 바탕으로 합니다.

弘益人間 (Hongik Ingan)

"널리 인간을 이롭게 하라"

안전하고 효율적인 소프트웨어는 인류의 삶을 개선합니다. Rust를 배움으로써 더 안전한 디지털 세상을 만드는 데 기여할 수 있습니다.

이 교육 과정은 다음 원칙을 따릅니다:


1.8 챕터 요약

주요 개념:

  1. 메모리 안전성: Rust는 컴파일 타임에 메모리 안전을 보장하여 보안 취약점의 70%를 예방합니다
  2. 소유권 시스템: Rust의 고유한 소유권 시스템은 가비지 컬렉터 없이도 메모리를 안전하게 관리합니다
  3. 제로코스트 추상화: 고수준 코드를 작성해도 C/C++와 동일한 성능을 얻을 수 있습니다
  4. 산업계 채택: Microsoft, Google, Amazon 등 주요 기업들이 프로덕션 환경에서 Rust를 사용합니다
  5. 친절한 컴파일러: Rust 컴파일러는 에러를 찾아주고 해결 방법까지 제시하는 훌륭한 교육 도구입니다

1.9 복습 문제

  1. Rust가 메모리 안전성을 보장하는 핵심 메커니즘은 무엇인가요?
  2. 소유권 시스템의 3가지 원칙을 설명하세요.
  3. 왜 주요 소프트웨어 취약점의 70%가 메모리 안전성 문제에서 발생하나요? 구체적인 예시를 들어보세요.
  4. 제로코스트 추상화란 무엇이며, 왜 중요한가요?
  5. Rust를 첫 프로그래밍 언어로 배우는 것의 장점은 무엇인가요?
  6. 弘益人間 철학이 Rust 학습과 어떻게 연결되나요?

1.10 다음 장 예고

2장에서는 Rust 개발 환경을 설정하고 첫 번째 Rust 프로그램을 작성합니다. Cargo 빌드 시스템, 프로젝트 구조, 그리고 "Hello, World!" 프로그램을 통해 Rust 개발의 기초를 다질 것입니다.


Chapter 1 완료 | 약 16페이지

다음: Chapter 2 - 시작하기

📚 전체 Ebook 구매하기

EN $99 | KO $99 | Bundle $159

🛒 WIA Book

한국 일반 인프라 매핑 (제1장)

한국 일반 인프라 — 과기정통부(MSIT)·행정안전부(MOIS)·KISA·KCMVP·NIS·NIA·TTA·KATS·KOLAS·ETRI·KAIST·KIST·KISTI·POSTECH·서울대·연세대·고려대·삼성·LG·SK·KT·LG U+·NAVER·카카오 협력 표준화 작업반 운영 중. 「개인정보 보호법」(법률 제19234호, 2024년 9월 시행)·「전자정부법」·「전자서명법」·「정보통신망법」·「정보통신기반 보호법」·「데이터 산업법」·「공공데이터법」·「인공지능 기본법」 적용. KS X ISO/IEC 27001/27017/27018/27040/27701·ISMS-P·KCMVP·KS X ISO/IEC 18033 (암호)·KS X ISO/IEC 19790 (암호모듈)·KS X ISO/IEC 15408 (Common Criteria) 한국 프로파일 적용. NIA「ICT 표준화 추진체계 운영」·KISA「개인정보보호 종합 포털」·MSIT「K-디지털 2030」 로드맵 운영 중.

한국 표준화 인프라 종합 매핑

한국의 산업·기술 표준화는 다음 협력 체계를 통해 운영된다. 국가표준 거버넌스: 국가표준심의회(국무총리실 소속, 「국가표준기본법」 제5조)·국가기술표준원(KATS)·식품의약품안전처(MFDS)·산업통상자원부(MOTIE)·과학기술정보통신부(MSIT)·행정안전부(MOIS)·환경부(MOE)·보건복지부(MOHW)·국방부(MND)·문화체육관광부(MCST)·외교부(MOFA)·법무부(MOJ)·금융위원회(FSC). 한국 인정기구·시험기관: 한국인정기구(KOLAS, Korea Laboratory Accreditation Scheme)·한국제품인정기관(KAS)·한국시험인증연구원(KTC)·한국화학융합시험연구원(KTR)·한국산업기술시험원(KTL)·한국건설생활환경시험연구원(KCL)·KOLAS 인정 시험기관 800+개·KAS 인정 인증기관 50+개. 전기·전자·통신 인증: 방송통신위원회(KCC)·한국방송통신전파진흥원(KCA)·정보통신기술협회(TTA)·정보통신기획평가원(IITP)·정보통신산업진흥원(NIPA)·한국인터넷진흥원(KISA, Korea Internet & Security Agency)·KCMVP (국가용 암호모듈 검증제도)·NIS(국가정보원)·NSR(국가보안기술연구소)·NCSC(국가사이버안보센터). 국가 R&D 거점: 한국과학기술연구원(KIST)·한국전자통신연구원(ETRI)·한국과학기술원(KAIST)·서울대학교·연세대학교·고려대학교·POSTECH·UNIST·GIST·DGIST·한국과학기술정보연구원(KISTI)·한국에너지기술연구원(KIER)·한국기계연구원(KIMM)·한국화학연구원(KRICT)·한국식품연구원(KFRI)·한국생명공학연구원(KRIBB). 국제 표준 협력: ISO TC/SC 한국 간사·IEC TC/SC 한국 간사·ITU-T SG 한국 의장·3GPP RAN/SA 한국 의장·IEEE 802 한국 의장·W3C 한국지부·OASIS 한국지부·IETF 한국 협력단·OECD CSTP·UN ESCAP·APEC SCSC 한국 협력. 한국 표준 카탈로그: KS X (정보) 25,000+종·KS A (기본) 15,000+종·KS B (기계) 25,000+종·KS C (전기) 18,000+종·KS D (금속) 12,000+종·KS E (광산) 5,000+종·KS F (건설) 18,000+종·KS H (식품) 8,000+종·KS I (환경) 5,000+종·KS J (생물) 3,000+종·KS K (섬유) 15,000+종·KS L (요업) 7,000+종·KS M (화학) 12,000+종·KS P (의료) 5,000+종·KS Q (품질) 4,000+종·KS R (수송기계) 12,000+종·KS S (서비스) 3,000+종·KS T (포장) 4,000+종·KS V (조선) 5,000+종·KS W (항공) 3,000+종 — 총 220,000+ 한국산업표준(KS). 「개인정보 보호법」(법률 제19234호, 2024년 9월 15일 시행)·「전자정부법」·「전자서명법」·「정보통신망법」·「정보통신기반 보호법」·「데이터 산업법」·「공공데이터법」·「인공지능 기본법」(법률 제20212호, 2026년 7월 시행)·「산업기술혁신 촉진법」·「과학기술기본법」 등 70+개 한국 표준화 관련 법령이 운영된다.

한국 디지털 전환·표준화 상세 매핑

한국의 디지털 전환과 표준화는 다음 협력 체계로 운영된다. 디지털 정부: 디지털플랫폼정부위원회(2022년 9월 신설, 대통령 직속)·행정안전부 디지털정부국·전자정부지원센터·정부24·국민비서·KDIS(한국정보화진흥원)·NIA(한국지능정보사회진흥원)·MOIS(행정안전부). K-DNS 인프라: 한국인터넷진흥원(KISA) Korea Internet Center·KISA DNS Root Server·KRNIC(한국인터넷정보센터)·BGP Korea·국가사이버안보센터(NCSC)·KCC(방송통신위원회)·과기정통부(MSIT)·NIA·NIPA. 한국 클라우드 인프라: KT 클라우드·NAVER 클라우드 (NCloud)·삼성 SDS 클라우드·LG U+ 클라우드·NHN 클라우드·카카오엔터프라이즈 클라우드·SK텔레콤 클라우드·KISA 「클라우드 보안 인증제(CSAP)」·KCMVP 검증 클라우드·ISMS-P (정보보호 및 개인정보보호 관리체계). 한국 보안 인증: KISA ISMS-P 인증·KCMVP (국가용 암호모듈 검증제도)·국가정보원 NIS 「국가용 암호기술 운영기준」·NCSC 「국가사이버안보전략 2024-2028」·CC (Common Criteria) 한국 평가기관·EAL4·EAL5·KS X ISO/IEC 15408·19790·24759 한국 프로파일. 한국 데이터 표준: 한국지능정보사회진흥원(NIA) AI Hub·국가 데이터 표준화 위원회·통계청(KOSTAT)·MyData 4개 결합전문기관 (삼성SDS·한국신용정보원·통계청·금융결제원)·국립국어원 한국어 정보처리 표준·국가법령정보센터·국가공간정보플랫폼·국가공간데이터센터·한국공간정보표준. 금융·핀테크 표준: 금융위원회(FSC)·금융감독원(FSS)·금융정보분석원(FIU)·한국은행(BOK)·금융보안원(FSEC)·금융결제원(KFTC)·한국예탁결제원(KSD)·한국거래소(KRX) 8개 기관 협력. 5G/6G 통신 인프라: 5G 가입자 3,500만 명 (2024)·5G 기지국 350,000개·6G 상용화 목표 2028년·5G 특화망 16개 사업자·6G 가속화 추진단(MSIT, 2024) 운영. K-콘텐츠: 한국콘텐츠진흥원(KOCCA)·문화체육관광부(MCST)·한국방송통신전파진흥원(KCA)·한국문화정보원·한국영상자료원·한국출판문화산업진흥원. 「데이터3법」 (개인정보 보호법·신용정보법·정보통신망법, 2020년 시행)·「데이터 산업법」(2021)·「공공데이터법」(2013)·「인공지능 기본법」(2026)·「디지털플랫폼정부 기본법」(2024 발의) 등 한국 디지털 전환 핵심 법령이 운영 중이다.