728x90
1. 기본 용어 설명
📦 크레이트(Crate)
- 쉽게 말하면: Rust의 "라이브러리 패키지"예요
- 비유: 마트에서 파는 "밀키트" 같은 거예요. 요리에 필요한 재료들이 한 세트로 묶여있죠
- 예시:
- wasm-bindgen = 웹어셈블리(WebAssembly)와 자바스크립트를 연결해주는 도구 세트
- serde = 데이터를 JSON으로 변환해주는 도구 세트
- tokio = 비동기 프로그래밍을 도와주는 도구 세트
🏷️ 어트리뷰트(Attribute)
- 쉽게 말하면: 코드에 붙이는 "라벨(스티커)"이에요
- 비유: 택배 박스에 붙는 "취급주의", "이면상" 같은 스티커예요
- 예시:
- #[wasm_bindgen] = "이 함수는 웹에서 사용할 거야!"라는 스티커
- #[tokio::main] = "이 프로그램은 비동기로 실행될 거야!"라는 스티커
- #[derive(Serialize)] = "이 구조체는 JSON으로 변환될 수 있어!"라는 스티커
📝 임포트(Import)
- 쉽게 말하면: "도구 상자에서 필요한 도구를 꺼내오는 것"
- 비유: 요리하기 전에 냉장고에서 재료를 꺼내는 것과 같아요
2. 문제 상황을 쉽게 설명
🔍 무슨 일이 일어났나요?
여러분이 요리를 하려고 하는데:
text
❌ 잘못된 상황:
"소금 좀 넣어줘!" (소금이 없는데 소금을 달라고 함)
↓
"소금이 없는데 어떻게 넣어요?" (오류 발생!)
Rust 코드에서도 같은 일이 일어났어요:
rust
// ❌ 이렇게 쓰면 안 돼요!
#[wasm_bindgen] // "wasm-bindgen 스티커 붙일게!"
pub fn hydrate() {
// ...
}
하지만 wasm-bindgen이라는 크레이트(도구 세트)를 아직 가져오지 않았어요!
3. 올바른 사용법
📦 도구 상자에서 도구 꺼내기
rust
// ✅ 1단계: 도구 상자(크레이트)에서 도구 가져오기
use wasm_bindgen::prelude::*;
// ↑ ↑
// 크레이트명 필요한 도구들
// ✅ 2단계: 이제 스티커(어트리뷰트) 사용 가능!
#[wasm_bindgen] // "wasm-bindgen 스티커 붙일게!"
pub fn hydrate() {
// ...
}
4. 비유로 이해하기
🍳 요리사 비유
text
1. 크레이트 = 요리 도구 세트
- wasm-bindgen = 웹 요리 도구 세트
2. use 문 = 도구 꺼내기
- use wasm_bindgen::prelude::* = "웹 요리 도구 세트에서 모든 도구 꺼내줘!"
3. 어트리뷰트 = 요리 스티커
- #[wasm_bindgen] = "이 요리는 웹에서 먹을 거야!" 스티커
✈️ 여행 비유
text
1. 크레이트 = 여행 가방
- wasm-bindgen = 웹 여행 가방
2. use 문 = 가방 열기
- use wasm_bindgen::prelude::* = "웹 여행 가방 열어서 필요한 거 다 꺼내!"
3. 어트리뷰트 = 여권 스탬프
- #[wasm_bindgen] = "이 함수는 웹 세계로 여행갈 거야!" 스탬프
5. 실제 코드로 보기
❌ 잘못된 코드
rust
// src/lib.rs
pub mod app;
// wasm-bindgen 도구를 안 가져왔어요!
#[wasm_bindgen] // ❌ "wasm-bindgen이 뭔데요?" (오류!)
pub fn hydrate() {
// ...
}
✅ 올바른 코드
rust
// src/lib.rs
pub mod app;
// wasm-bindgen 도구 가져오기 (도구 상자 열기)
use wasm_bindgen::prelude::*; // ✅ "이제 wasm-bindgen 사용 가능!"
// 이제 스티커(어트리뷰트) 사용 가능!
#[wasm_bindgen] // ✅ "잘 인식됐어요!"
pub fn hydrate() {
// ...
}
6. 핵심 정리 🎯
| 크레이트 | 도구 세트, 라이브러리 패키지 | wasm-bindgen, serde |
| 임포트(use) | 도구 세트에서 도구 꺼내기 | use wasm_bindgen::prelude::*; |
| 어트리뷰트(#[]) | 코드에 붙이는 스티커/라벨 | #[wasm_bindgen] |
📌 기억해야 할 규칙
"어트리뷰트를 사용하려면 먼저 해당 크레이트를 임포트해야 한다!"
즉, #[wasm_bindgen] 스티커를 붙이려면 먼저 wasm-bindgen이라는 도구 상자를 열어야(임포트) 하는 거예요!
728x90
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
| "cmake .. make -j$(nproc)"의 의미? (0) | 2026.08.11 |
|---|---|
| 명령어 | make -j$(nproc) (0) | 2026.08.11 |
| Emacs의 Ediff 기능 (0) | 2026.08.11 |
| Emacs 구분자 역슬래시(\) (0) | 2026.08.11 |
| 리눅스 | 임시파일 정리 (0) | 2026.08.10 |