[C++] std::optional : 값이 있을 수도, 없을 수도
안녕하세요. 이번 글에서는 C++17에서 추가된 std::optional에 대해 알아보겠습니다. 함수가 값을 찾지 못했을 때 무엇을 돌려줄지는 늘 고민되는 부분입니다. -1이나 nullptr 같은 특수한 값에 의미를 맡기면 호출하는 쪽에서 약속을 외워야 하고, …
안녕하세요. 이번 글에서는 C++17에서 추가된 std::optional에 대해 알아보겠습니다. 함수가 값을 찾지 못했을 때 무엇을 돌려줄지는 늘 고민되는 부분입니다. -1이나 nullptr 같은 특수한 값에 의미를 맡기면 호출하는 쪽에서 약속을 외워야 하고, …
안녕하세요. 이번 글에서는 가능성을 추측할 때 쓰는 조동사 may와 might에 대해 알아보겠습니다. 한국어로는 둘 다 “~일지도 모른다”로 옮겨져 구분이 잘 되지 않습니다. 실제로 일상 영어에서는 거의 같은 뜻으로 쓰이지만, 확신의 …
안녕하세요. 이번 글에서는 C#의 null 처리 연산자인 ?., ??, ??= 에 대해 알아보겠습니다. 참조 형식 변수가 null일 때 멤버에 접근하면 NullReferenceException이 발생합니다. 이를 피하려고 if (x != null) 검사를 반복하면 …
안녕하세요. 이번 글에서는 C++17에서 추가된 구조적 바인딩(structured bindings)에 대해 알아보겠습니다. std::pair나 std::tuple, 구조체의 값을 꺼낼 때 first, second, std::get<N>을 반복해서 쓰면 코드가 길어지고 의미도 잘 드러나지 않습니다. 구조적 바인딩은 여러 …
안녕하세요. 이번 글에서는 C++11부터 사용할 수 있는 람다 표현식(lambda expression)에 대해 알아보겠습니다. std::sort, std::find_if 같은 알고리즘에 비교 기준이나 조건을 넘길 때, 예전에는 별도의 함수나 함수 객체(functor)를 정의해야 했습니다. 람다를 사용하면 …
안녕하세요. 이번 글에서는 C# 9.0에서 추가된 record에 대해 알아보겠습니다. 데이터를 담기만 하는 클래스를 만들 때도 생성자, 속성, Equals, GetHashCode, ToString을 직접 작성하면 코드가 길어집니다. record는 이런 “값 중심” 타입을 짧게 …
안녕하세요. 이번 글에서는 영어의 부가의문문(tag questions)에 대해 알아보겠습니다. 부가의문문은 문장 끝에 “그렇지 않나요?”, “맞죠?”에 해당하는 짧은 질문을 붙이는 형태입니다. 한국어에서는 “~죠?”, “~지 않나요?” 하나로 처리되지만, 영어에서는 앞 문장의 동사와 시제, …
안녕하세요. 이번 글에서는 C++17에서 추가된 std::string_view에 대해 알아보겠습니다. 함수 인자로 문자열을 읽기만 할 때 const std::string&를 받으면, 문자열 리터럴이나 const char*를 넘길 때마다 임시 std::string이 만들어져 복사와 힙 할당이 발생할 …
해외여행에서 자주 쓰는 영어 문장을 상황별로 정리했습니다. 왼쪽은 영어, 오른쪽은 한국어 뜻입니다. 공항·입국심사·교통·호텔·식당·쇼핑·약국·관광·긴급 상황 순으로 묶었으며, 복잡한 문법보다 그대로 말할 수 있는 짧은 문장 위주로 담았습니다. 공항 · 체크인 영어 …
안녕하세요. 이번 글에서는 C#의 null 처리 연산자인 ?., ??, ??=에 대해 알아보겠습니다. null 검사를 위한 if 문이 겹겹이 쌓이면 코드가 길어지고 읽기 어려워집니다. 세 연산자를 사용하면 null 검사를 한 줄로 …