C++ 오류 발생시 원인 정리

예외가 발생하는 상황 0으로 나누기 나누기를 직접 사용하지 말고, 매크로 함수로 만들어놓고 사용하는 것이 좋다. (0으로 나누기를 시도했을 경우 로그를 남기는 등의 동작) int nDivisor = 0; int nResult = rand() / nDivisor; //Divide zero. [Read More]
Tags: C++ 디버깅

멀티스레드 정책

최적화된 프로그램이란, 유휴 시간없이 하고 싶은 일을 최대한 많이 하는 프로그램을 의미합니다. 여기서 중요한 것은, 하고자 하는 일을 많이 해야 된다는 점이죠.   싱글 스레드 클라이언트 프로그램의 경우는 대게 아래와 같습니다.  입력 받는 작업 연산 작업 화면 그리기  1번으로 돌아감 [Read More]

멀티스레드 프로그래밍시 유의점

데이터를 동시에 쓰는 상황, 읽는 도중 값이 변경되는 상황, 읽는 도중 delete 되는 상황에 유의하라. 데이터를 동적으로 다뤄야 되는 상황 자체를 줄이는 것이 좋다. NULL 대신 NULL객체 처리를 선호하는 것이 멀티 스레드 프로그래밍에서 크래시를 줄이고 쉽게 예외 핸들링 할 수 있는 방법중 하나다. 생성자 / 소멸자 호출 도중에 가상 함수를... [Read More]

UDP Hole Punching

홀 펀칭 (Hole Punching) 정확한 명칭은 STUN (Simple Traversal of User Datagram Protocol Through Network Address Translators) 공유기라는 녀석이 라우터의 특성도 함께 가지고 있어 Routing Table 을 작성하기 위해 P2P 통신을 목적으로, 사전에 상대방과 패킷을 주고받고 하여 각자의 공유기에 Routing Table 을 작성하는 것을 홀 펀칭이라고 한다. Full Cone NAT... [Read More]