Rust unwrap()을 습관처럼 쓰면 언젠가 프로그램이 터진다
페이지 정보

영삼이
본문
✅ unwrap()
을 습관처럼 쓰면 언젠가 프로그램이 터진다
안전한 대안이 항상 존재한다
Rust에서는 Option
이나 Result
에서 값을 꺼낼 때
간단히 .unwrap()
을 쓸 수 있다:
let name = Some("영삼");
println!("{}", name.unwrap()); // Some이니까 문제 없음
❌ 문제 상황
let name: Option<&str> = None;
println!("{}", name.unwrap()); // ❌ panic 발생
-
값이 없는 상태에서
unwrap()
→ 런타임 패닉 -
서비스에서는 바로 종료될 수 있음
✅ 안전한 대안들
상황 | 메서드 | 설명 |
---|---|---|
기본값 제공 | unwrap_or("기본") |
값 없으면 대체값 |
지연된 기본값 | `unwrap_or_else( | |
에러 전파 | ? |
함수에서 반환 |
값 처리 | match / if let |
조건 분기 |
예시
fn get_name(name: Option<&str>) -> &str {
name.unwrap_or("이름 없음")
}
fn get_name_safe(name: Option<&str>) -> Result<&str, &'static str> {
name.ok_or("이름이 없습니다")
}
✔️ unwrap()
은 개발 중 디버깅 용도로만 쓰고,
프로덕션 코드에는 항상 안전한 대안을 사용하라.
안전은 Rust의 철학이다.
- 이전글PHP에서 의존성 주입 제대로 활용하는 법 25.03.28
- 다음글PartialEq만 파생하면 해시 키로 못 쓴다 25.03.28
댓글목록
등록된 댓글이 없습니다.