← 홈

🦀Rust

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

📦 기본

🏷️ 변수 & 타입

let x = 5; 불변 변수
let mut x = 5; 가변 변수
const MAX: i32 = 100; 상수
let x: i32 = 5; 타입 주석
i8, i16, i32, i64, i128, isize 부호 있는 정수
u8, u16, u32, u64, u128, usize 부호 없는 정수
f32, f64 부동 소수점
bool 불리언
char 유니코드 문자
&str / String 문자열 슬라이스 / 소유 문자열

연산자

+ - * / % 산술
== != < > <= >= 비교
&& || ! 논리
& | ^ << >> 비트
&x 참조
*x 역참조
.. 범위 (배타적)
..= 범위 (포함)

🔑 소유권

📜 소유권 규칙

let s2 = s1; 소유권 이동
let s2 = s1.clone(); 깊은 복사
&T 불변 참조
&mut T 가변 참조
fn f(s: &String) {} 빌림 매개변수
fn f(s: &mut String) {} 가변 빌림

라이프타임

&'a T 라이프타임이 있는 참조
fn f<'a>(x: &'a str) -> &'a str 라이프타임 주석
&'static str 정적 라이프타임
struct S<'a> { x: &'a str } 라이프타임이 있는 구조체

🔀 제어 흐름

조건문

if cond { } else { } if-else
let x = if cond { a } else { b }; if 표현식
if let Some(x) = opt { } if let
while let Some(x) = iter.next() { } while let

🔄 반복문

loop { } 무한 루프
while cond { } while 루프
for x in iter { } for 루프
for i in 0..10 { } 범위 루프
break / continue 루프 제어
break 'label value 값과 함께 break
'label: loop { } 레이블 루프

🎯 Match

match x { 1 => a, 2 => b, _ => c } match 표현식
1 | 2 | 3 => ... 다중 패턴
1..=5 => ... 범위 패턴
Some(x) => ... 열거형 구조 분해
if guard => ... 매치 가드
@ binding 변수에 바인딩

📋 자료 구조

📑 컬렉션

let v: Vec<i32> = Vec::new(); 벡터 생성
let v = vec![1, 2, 3]; 벡터 매크로
v.push(x) / v.pop() 추가/제거
v[i] / v.get(i) 요소 접근
&v[..] / &v[1..3] 슬라이스
HashMap::new() HashMap 생성
map.insert(k, v) 맵에 삽입
map.get(&k) 맵에서 가져오기
HashSet::new() HashSet 생성

🏗️ 구조체 & 열거형

struct Name { field: Type } 명명된 구조체
struct Point(i32, i32); 튜플 구조체
struct Unit; 유닛 구조체
Name { field: value } 인스턴스화
Name { field, ..other } 구조체 업데이트
enum E { A, B(i32), C { x: i32 } } 열거형 변형
Option<T>: Some(x) / None Option 타입
Result<T, E>: Ok(x) / Err(e) Result 타입

⚙️ 함수

📝 함수 문법

fn name(a: i32, b: i32) -> i32 { } 함수 정의
fn name() { } // returns () 반환 없음 (유닛)
expression // implicit return 암시적 반환
return value; 명시적 반환
|x| x + 1 클로저
|x: i32| -> i32 { x + 1 } 타입 있는 클로저
move || { } move 클로저

🔧 메서드 & Impl

impl Name { fn method(&self) { } } 메서드 정의
&self 불변 self
&mut self 가변 self
self 소비 self
Self impl 타입의 별칭
fn new() -> Self { } 연관 함수

🔌 트레이트 & 제네릭

📋 트레이트

trait Name { fn method(&self); } 트레이트 정의
impl Trait for Type { } 트레이트 구현
fn f(x: impl Trait) impl 트레이트 매개변수
fn f(x: &dyn Trait) 트레이트 객체
Box<dyn Trait> 박스된 트레이트 객체
#[derive(Debug, Clone)] derive 매크로

🧬 제네릭

fn f<T>(x: T) { } 제네릭 함수
struct S<T> { field: T } 제네릭 구조체
fn f<T: Trait>(x: T) 트레이트 바운드
fn f<T: A + B>(x: T) 다중 바운드
where T: Trait where 절
impl<T> S<T> { } 제네릭 impl

⚠️ 에러 처리

Result & Option

result? 에러 전파
result.unwrap() Err이면 panic
result.expect("msg") 메시지와 함께 panic
result.unwrap_or(default) 기본값
result.unwrap_or_else(|| ...) 지연 기본값
option.map(|x| ...) 값 변환
option.and_then(|x| ...) 플랫 맵
option.ok_or(err) Option을 Result로

🛠️ 커스텀 에러

#[derive(Debug)] Debug derive
impl std::error::Error for E { } Error 구현
impl std::fmt::Display for E { } Display 구현
thiserror::Error thiserror 크레이트
anyhow::Error anyhow 크레이트

📦 Cargo

💻 Cargo 명령어

cargo new project 새 프로젝트 생성
cargo build 프로젝트 빌드
cargo build --release 최적화 빌드
cargo run 프로젝트 실행
cargo test 테스트 실행
cargo check 빌드 없이 검사
cargo clippy 코드 린트
cargo fmt 코드 포맷
cargo doc --open 문서 생성
cargo add crate 의존성 추가

💡

🚀 모범 사례

  • 일관된 코드를 위해 clippyrustfmt 사용
  • 함수 매개변수에서 String보다 &str 선호
  • 에러 전파에 ? 연산자 사용
  • unwrap()보다 matchif let 선호
  • 일반 트레이트에 derive 사용
  • 의미가 있을 때 구조체와 함수를 제네릭으로
  • null 값 대신 Option 사용
  • 빌림 검사기 활용하기 - 싸우지 말기