'Result'란 무엇인가요?
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 42번째.
Option이 값의 부재를 처리하는 반면, Rust는 실패할 수 있는 작업이라는, 다르지만 똑같이 중요한 시나리오를 위한 또 다른 열거형(enum)을 제공합니다. 복구 가능한 에러를 처리하기 위한 Rust의 주요 도구인 Result<T, E>를 소개합니다.
Result 열거형은 작업의 결과를 나타내는 두 가지 변리언트를 가집니다:
enum Result<T, E> {
Ok(T), // 성공 - 성공적인 결과를 포함함
Err(E), // 실패 - 오류 정보를 포함함
}작업이 성공하면, 성공적인 결과를 포함하는 Ok(value)를 반환합니다. 실패하면, 무엇이 잘못되었는지에 대한 정보를 포함하는 Err(error)를 반환합니다. 이러한 성공 및 실패 사례에 대한 명시적인 처리는 Rust 프로그램을 더 안정적이고 예측 가능하게 만듭니다.
Rust에서는 파일이 없어서 실패할 수 있는 파일 작업부터, 타임아웃이 발생할 수 있는 네트워크 요청, 유효하지 않은 입력을 받을 수 있는 파싱 작업에 이르기까지 어디서나 Result를 만나게 될 것입니다. 예외를 사용하는 언어들과 달리, Rust는 작업이 실패할 수 있음을 인지하고 두 가지 결과를 모두 명시적으로 처리하도록 강제합니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
치트 시트
Result<T, E> 열거형은 실패할 수 있는 작업을 처리합니다:
enum Result<T, E> {
Ok(T), // 성공 - 성공적인 결과를 포함합니다
Err(E), // 실패 - 오류 정보를 포함합니다
}작업이 성공하면 Ok(value)를 반환합니다. 실패하면 Err(error)를 반환합니다.
Result는 파일 작업, 네트워크 요청, 파싱 작업과 같이 복구 가능한 오류에 사용됩니다. Rust는 성공과 실패 사례 모두에 대해 명시적인 처리를 요구합니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
Logic & Flow의 모든 레슨
7'Result'를 이용한 에러 처리
'Result'란 무엇인가요?'Result'와 함께 'match' 사용하기is_ok()와 is_err()단축 방법: unwrap과 expect물음표 연산자 '?'문자열을 숫자로 파싱하기요약 - 안전한 나눗셈 함수