목록전체 글 (407)
logbook

1. C++ 진짜 싫다아니 대체 이런 언어를 왜 쓰는 거죠.프레임워크를 설치하든, 코드를 짜든, 문법 배운 거 실습을 하든 도통 뭘 하든 간에 제대로 돌아가는 꼴을 못 봤습니다.버전은 어마어마하고, 책임은 몽땅 프로그래머한테 떠넘기고, OS마다 컴파일러마다 파편화는 아찔한 수준이고, 패키지든 프레임워크든 뭐 하나 설치만 하면 에러부터 뿜어대고...Catch2요?아니 유닛 테스트를 위해서 쓸 수 있는 좋은 프레임워크라고 소개하면 뭐 합니까, 설치해서 쓸려고 해도 에러만 토해내는데!초보자 입장인 저에게는 C++이 너무나도 싫습니다. 문법 괴팍하다고 한동한 멀리하던 Python이 선녀로 보이는 수준입니다.아니 패키지 설치하라고 할 때마다, 새로운 문법을 하나씩 배울 때마다 늘 새롭고 재밌지가 않아요. 겁부터 ..

1. 가정법 과거완료과거의 일은 미련이 남기 마련입니다. "그때 조금만 더 ~를 했다면 ~했을 텐데!"처럼요.사실 지난 일을 되돌리는 건 불가능합니다. 하지만 묘사는 가능하죠.가정법 표현은 이러한 경우에 주로 사용됩니다.현재 벌어진 결과에 대해 아쉬움과 미련 등을 묘사하기 위해 특정 조건을 가정하여 말합니다."과거에 있었던 일에 대해 그보다 더 과거가 되는 시점에서 '무언가'를 행한다면 달라졌을 텐데!"라는 표현을 사용할 때는 가정법 과거완료를 사용합니다.여기서 독특하게도, 조건(IF)과 결과(Result)의 순서를 바꾸는 것도 가능합니다.If I hadn't been ill, I would have gone to the party.I would have gone to the party if I hadn..

1. 템플릿템플릿은 C++에서 제네릭을 구현하기 위해 사용되는 문법입니다.타입을 고정시키지 않고 경우에 따라 다양한 타입의 값을 받아 동작시킬 수 있기 때문에 보다 유연하고, 재사용성이 높은 코드를 작성하는 것이 가능해집니다.template struct AutoBrake { AutoBrake(const T& publish) : publish{ publish } {} void observe(const SpeedUpdate& cd) {} void observe(const CarDetected& cd) {} void set_collision_threshold_s(double x) { collision_threshold_s = x; } double get_speed_..

1. 대문자 활용법대문자를 활용하는 방법을 논한다면 문장의 첫 글자를 대부분 떠올릴 것입니다.물론 그것도 맞지만 의외로 더 많은, 다양한 활용법이 존재합니다. 1.1. 날, 달, 휴일 등을 나타낼 때주(week), 달(month), 행사가 있는 날 등을 표기하고자 할 때 대문자로 표기합니다. 단, 계절을 표기할 때는 사용하지 않습니다.His birthday party is on Thursday.It rains a lot in April and May, but the summer is very dry. 1.2. 사람 또는 장소의 이름을 나타낼 때사람의 이름, 장소의 명칭 등을 나타낼 때도 대문자로 표기합니다. 거리, 행성, 국가, 대륙도 이에 포함됩니다.Bea Jankowski has lived on Ch..

1. 영국어, 미국어사실 외국인 입장에서 보면 뭐가 뭔지 구분이 잘 안 갑니다.영국인 미국인이 한국어랑 조선어랑 같이 놓고 본다고 해서 제대로 구분할 수 있을까 싶긴 하지만, 생각해 보니 그거랑 좀 다른 성격 같으니까 없던 일로 하고 넘어갑시다.아무튼, 그럼에도 유심히 잘 살펴보면 생각보다 차이가 나는 편입니다. 영화에서도 나온 대사인 "Shall we?"가 영국 영어였다는 걸 알고서 충격받은 건 덤입니다. 2. 현재완료 시제와 단순 과거 시제저는 시제가 매우 싫습니다. 하지만 매일같이 사용되는 문법이기 때문에 절대 피할 수 없죠.역설적이게도 그 덕분에 영국 영어와 미국 영어를 쉽게 구분할 수 있는 힌트가 발생합니다.영국 영어에서는 현재에 영향을 미치는 과거의 사건/행동을 표현할 때 현재완료 시제를 사..

1. 상수상수는 변수와 달리 고정된 값을 다루기 위해 사용되는 개념입니다.상수로 정의된 값은 코드가 실행되는 동안 변경되지 않는다는 것을 보장할 수 있기 때문에 데이터의 신뢰성을 높일 수 있습니다.이 때문에 원주율(PI), 랜덤 확률 등과 같이 코드 내에서 고정적으로 사용되는 공통 값을 다룰 때는 상수로 정의하여 가독성을 높이는 방안을 주로 사용합니다. C++에서는 이 상수를 다룰 때 const와 constexpr이라는 두 가지 접근성을 보장합니다.여기서는 const와 constexper이 어떻게 다른지 간략히 살펴봅니다. 2. const먼저 const는 변수와 함께 사용되며 const는 함수나 생성자를 정의할 때는 사용되지 않습니다.const를 통해 정의된 값은 컴파일 타임 또는 런타임에 값이 결정됩..

1. 등급을 매길 수 있는 형용사형용사는 종류에 따라 등급을 매기는 것이 가능합니다.등급을 매긴다는 것은 일종의 정도를 나타내는 것으로, 퍼센트(%)의 개념을 떠올리면 이해하기 쉽습니다.추위, 크기, 지루함, 뜨거움, 작음, 웃김, 피곤함 등과 같이 정도를 '약간', '매우', '엄청나게' 등과 같은 등급으로 표현할 수 있는 사례가 대표적입니다.(angry, big, boring, cheap, cold, expensive, frightening, funny, hot, interesting, old, pretty, small, tasty, tired...)She was quite angry when she found out.The film we saw last night was really funny!It..

1. 메모리 주소와 포인터포인터는 값의 복사가 아닌 값의 참조를 기반으로 동작합니다.C++는 기본적으로 값을 다룰 때 복사 연산(Call by Value)을 사용하기 때문에 원본 값의 오염을 방지하고 메모리 낭비를 방지하기 위해서는 포인터에 대한 이해가 매우 중요합니다.포인터 변수에는 값 그 자체가 아닌, 값이 저장된 메모리 상의 주소를 담을 수 있습니다. 메모리 주소를 담을 수 있는 변수가 존재한다면, 포인터 변수에 담을 메모리 주소값 그 자체를 표현하는 것도 가능해야 할 것입니다.이러한 작업을 수행하기 위해 & 연산자와 * 연산자가 등장합니다. 2. & 연산자와 * 연산자로 포인터 다루기포인터 변수는 값이 아닌 값의 주소를 저장하므로, 일반적인 변수와 다르게 취급해야 합니다.포인터 변수를 선언할 때..