실무 C++ 코드를 작성하다 보면 “값이 없을 수도 있음”을 표현해야 하는 순간이 자주 나옵니다.검색 결과가 없을 수도 있고, 설정 파일에 값이 없을 수도 있고, 문자열 파싱이 실패할 수도 있습니다.이때 -1, 빈 문자열, nullptr 같은 값으로 없는 상태를 대신 표현하면 코드가 점점 애매해집니다. std::optional은 값이 있을 수도 있고 없을 수도 있다는 의도를 타입으로 표현하는 C++17 도구입니다. 이번 글에서는 std::optional이 왜 필요한지, sentinel value와 무엇이 다른지, 그리고 실무에서 어떤 기준으로 사용하면 좋은지 코드 예제로 정리해보겠습니다. std::optional은 값이 있는 상태와 비어 있는 상태를 하나의 타입 안에서 명확히 표현합니다. 1. std::..