본문 바로가기

전체 글

(24)
삼각비, 삼각함수 삼각비, 삼각함수란 무엇인가? 나와 어떤 물체의 위치 사이의 거리를 표현한 것이 삼각비와 삼각함수이다. A(나)와 C(물체)의 위치간 거리를 표현한 것이다. C에서 내가 있는 위치까지 수직으로 내리면 B가 나온다. 그림에서 보듯이 직각삼각형이 나타난다. 이때 A->C 거리 b, C->B 거리 a, A->B 거리 c 의 길이는 일정한 비율을 가지는 데 이것을 삼각비라 한다. 두 삼각형은 크기가 다르지만 a와 c사이의 각도(θ)가 같다면 각 거리는 동일한 비율을 가지고 있고, 이를 비례식으로 풀면 내가 다른 하나의 직각삼각형의 거리를 몰라도, 하나의 직각삼각형의 거리만 안다면 나머지도 알 수 있게 되는 것이다. 하지만 삼각비는 각도(θ)가 0 < 각도(θ) < 90 까지 밖에 표현을 할 수 없다. 그래서 그..
WINAPI 윈도우 프로그래밍의 동작 방식을 알기 위해서 먼저 구성 요소는 다음과 같이 4가지로 이루어져 있습니다. 메세지(Message) 메세지 큐(Message Queue) 메세지 루프(Message Loop) 윈도우 프로시저(Window Procedure) 메시지(Message) 메시지는 윈도우에 발생하는 모든 이벤트(사건)을 의미합니다. 키보드로 입력하고, 마우스로 클릭하는 것 뿐만 아니라, 마우스가 이동하는 등의 사소한 이벤트들을 모두 메시지로 관리합니다. 윈도우 내에서 발생하는 대부분의 이벤트들은 이미 미리 정의가 되어 있습니다. 그렇다면 개발자들이 이런 사소한 이벤트들을 모두 코드로 관리해야할까요? 당연히 그렇지 않습니다. 각 윈도우에 어떤 사건이 발생하는지 지속적으로 확인하고 메시지로 만들어서 처리하는..
함수 포인터 함수 포인터란 포인터 변수에 함수를 담는 다는 이야기다. 함수 포인터를 사용하는 이유는 무엇일까? 기본적으로 함수는 코드영역에 저장된다. 코드영역에 저장된다라는 의미는 컴파일 타임에 결정된다는 뜻이다. 이는 우리가 함수를 동적으로(런타임때) 무언가를 처리하기 어렵다는 의미이다. 함수 포인터를 사용하지 않아도 된다. 그냥 함수를 여러개 만들어 두고, 상황에 따라 적절한 함수를 호출해도 된다. 실제로 내가 실무에서 함수포인터를 써본 적은 한번도 없다. 아무 문제 없다. 다만 함수포인터를 적절히 사용한다면 코드 재사용성이 올라가고, 이는 유지보수를 쉽게 만들어 준다는 장점이 있다. 함수 포인터와 비슷한 역할을 하는 것이 있다. 이다. template도 함수 포인터와 마찬가지로 함수를 조금 더 동적으로 처리하기..
vector push_back 과 emplace_back의 차이 push_back과 emplace_back은 완전히 같다. l-value가 들어오면 copy를 수행한다. r-value가 들어오면 move를 수행한다. emplace_back은 여기에 추가적으로 std::allocator_traits::construct를 제공한다. 이말이 무슨 뜻이냐면 생성자 파라미터만 적으면 copy,move를 하지 않고 추가해준 공간에 직접 객체를 생성한다는 이야기이다. class Test { public: Test() : a(0) { cout