개발 지식

개발 지식

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

페이지 정보

profile_image
영삼이
0건 113회 25-03-28 15:18

본문

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의 철학이다.

댓글목록

등록된 댓글이 없습니다.