엘키의 주절 주절

소소한 개발 이야기

누워서 읽는 퍼즐북 - 퍼즐의 쾌감

퍼즐이라 하면 많이들 어렵단 생각을 하곤한다. 나 역시 마찬가지였고, 임백준씨의 책이지만 퍼즐북이라는 제목을 보자마자 당황했으니 말 다했다. 임백준씨 책은 하나도 빼먹지 않은 나로써, 이번책도 놓칠 수 없다는 생각에 예약 구매했다. 평소에도 퍼즐에 관심이 많았던 임백준씨 답게 퍼즐북에도 재밌는 퍼즐이 많이 포함되어 있었다. ‘그리’ 어렵지 않은 ...

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

예외가 발생하는 상황 0으로 나누기 나누기를 직접 사용하지 말고, 매크로 함수로 만들어놓고 사용하는 것이 좋다. (0으로 나누기를 시도했을 경우 로그를 남기는 등의 동작) int nDivisor = 0; int nResult = rand() / nDivisor; //Divide zero. 잘못된 메모리 접...

멀티스레드 정책

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

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

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

C++ 코딩의 정석 - C++ 프로그래머 필독서의 목록에 올라야 할 책

C++을 익히는 데에 주로 사용되는 대부분의 책들은, 문법에 치중되어 있다. 심지어 The C++ Programming Language 마저 그렇다. 우선 이 책은 서점에서 검토해보고 주문한 책이 아니었다. 이 책을 고르며 생각한 이 책의 방향성은 좋은 코딩 좋은 습관처럼 코딩 규칙이나, 가이드 라인에 대한 책인줄 알았다. 실제로 부제목도 코딩 가이...

UDP Hole Punching

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

Reliable UDP

Reliable UDP (이하 RUDP)는 신뢰성을 갖는 UDP를 의미합니다. 일반적으로 TCP는 신뢰성을 갖는 대신 느리고, UDP는 신뢰성이 없고 빠르다고 알려져있죠. 여기에 또 하나의 특징은, TCP는 서버 (Listener)와, 클라이언트 (Connector) 관계가 성립한다는 점입니다. 즉, 서버건 클라이언트건 연결 관리가 필요하다는 것...

포인터와 참조자 이야기

자~ 간만에 C++ 이야기입니다~! C언어의 난이도를 몇배로 높여준! 많은 사람들이 C언어를 포기하게 만든 원흉! 포인터부터 얘기해보죠. 포인터(*)란 아시다시피, 메모리 주소를 가리키는 변수입니다. 가리키는 곳은 언제든 변할 수 있고, 아무곳도 가리키지 않는 상태(NULL 포인터)도 있습니다. 참조자(&)란 뭘까요? 참조자는 변수의 다른 ...

MS-SQL 복원

복원 백업한 데이터를 복구하는 것을 말한다. 쿼리 Restore Database DB이름 From Disk=’경로\파일명.bak’ 복원시 옵션 일반 옵션 File : 한 파일 내에 여러개의 백업 존재 시, 백업 디바이스 헤더 검사에서의 Position 값을 넘겨주면 해당 백업만 복원합니다. ...

MS-SQL 조인 내부 처리 방식 정리

참고 자료 http://support.microsoft.com/kb/197297/ko 용어 정리 Driving Table : 조인에서 기준이 되는 테이블 (= Outer Table) Drived Table : 조인에서 결합 되어지는 테이블 (= Inner Table) Nested Loop 두개 이상의 테이블에서, Drivin...