Keep Going

Keep Going

[영어] say, tell, speak, talk : “말하다”의 구분

안녕하세요. 이번 글에서는 say, tell, speak, talk의 차이에 대해 알아보겠습니다. 네 단어 모두 우리말로는 “말하다”로 옮겨지지만, 영어에서는 뒤에 어떤 말이 오는지가 서로 다릅니다. 뜻을 외우기보다 어떤 형태로 쓰이는지를 구분해 두면 …

[영어] 구동사 : 동사와 불변화사가 만드는 새로운 뜻

안녕하세요. 이번 글에서는 영어에서 자주 쓰이는 구동사(phrasal verbs)에 대해 알아보겠습니다. 구동사는 동사에 전치사나 부사가 붙어 하나의 새로운 뜻을 만드는 표현입니다. 원래 동사의 뜻만으로는 짐작하기 어려운 경우가 많고, 일상 대화에서는 한 …

[C++] std::string_view : 복사 없이 문자열 읽기

안녕하세요. 이번 글에서는 C++17에서 추가된 std::string_view에 대해 알아보겠습니다. 문자열을 함수 인자로 넘길 때 const std::string&를 쓰면 문자열 리터럴이 들어올 때마다 임시 std::string이 만들어지고, const char*를 쓰면 길이를 매번 다시 계산해야 …

[영어] 빈도부사 : always, usually, often의 위치

안녕하세요. 이번 글에서는 빈도부사의 의미와 문장 안에서의 위치에 대해 알아보겠습니다. 한국어는 “나는 보통 일찍 일어납니다”처럼 부사를 비교적 자유롭게 놓을 수 있지만, 영어의 빈도부사는 놓이는 자리가 어느 정도 정해져 있습니다. 뜻은 …

[C#] switch 식과 패턴 매칭 : 조건 분기를 간결하게

안녕하세요. 이번 글에서는 C#의 switch 식(switch expression)과 패턴 매칭(pattern matching)에 대해 알아보겠습니다. 기존 switch 문은 case마다 break를 쓰고 결과를 변수에 대입해야 해서 값을 고르는 용도로는 코드가 길어졌습니다. C# 8.0부터 값을 …

[C++] 구조적 바인딩 : auto [a, b] = …

안녕하세요. 이번 글에서는 C++17에서 추가된 구조적 바인딩(structured bindings)에 대해 알아보겠습니다. std::pair나 std::tuple, 구조체의 값을 꺼낼 때 first, second, std::get<N>을 반복해서 쓰면 코드가 길어지고 의미도 잘 드러나지 않습니다. 구조적 바인딩은 여러 …