Menu
Coddy logo textTech

'Option'이란 무엇인가요?

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 35번째.

프로그래밍에서는 값이 존재할 수도 있고 존재하지 않을 수도 있는 상황을 자주 접하게 됩니다. 예를 들어, 리스트에서 항목을 검색할 때 항목을 찾을 수도 있고, 항목이 전혀 존재하지 않을 수도 있습니다. 전통적인 프로그래밍 언어들은 "없음"을 나타내기 위해 null이나 -1과 같은 특수한 값을 자주 사용하지만, 이러한 접근 방식은 버그와 크래시를 유발할 수 있습니다.

Rust는 Option<T> 열거형을 통해 다른 접근 방식을 취합니다. 이것은 값이 없을 가능성을 명시적으로 나타내는 내장 타입입니다. 값이 존재하는지 추측하는 대신, Rust는 두 가지 경우를 모두 미리 처리하도록 강제합니다.

Option 열거형에는 정확히 두 가지 변리언트가 있습니다:

Some(value)  // 값을 포함함
None         // 값이 없음

함수가 값을 반환하지 않을 수도 있을 때, Option을 반환합니다. 반환할 값이 있다면 Some으로 감싸고, 값이 없다면 None을 반환합니다.

이것은 타입 시스템에서 잠재적인 부재를 명시적으로 드러내어, 존재하지 않는 값을 실수로 사용하는 것을 방지합니다.

여러분은 이미 해시 맵의 .get() 메서드에서 Option이 작동하는 것을 보았습니다. 키가 존재하면 Some(&value)를 반환하고, 존재하지 않으면 None을 반환합니다. 이 패턴은 Rust 전반에 걸쳐 나타나며, 코드를 더 안전하고 예측 가능하게 만들어 줍니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

치트 시트

Option<T> 열거형은 존재할 수도 있고 존재하지 않을 수도 있는 값을 나타내며, 존재하지 않는 값을 사용함으로 인해 발생하는 버그를 방지합니다.

여기에는 두 가지 변리언트(variant)가 있습니다:

Some(value)  // 값을 포함함
None         // 값이 없음

값을 반환하지 않을 수도 있는 함수는 Option을 사용합니다. 예를 들어, 해시 맵의 .get() 메서드는 키가 존재하면 Some(&value)를 반환하고, 존재하지 않으면 None을 반환합니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨