Introduction 이 책이 실장님 자리에 있어서, 실장님께 빌렸다. SQL 공부해야지 공부 해야지 하면서도 공부 하지 않고 있었는데, 이번 하는 업무가 SQL을 사용 하는 업무이므로(SQL을 내가 직접 구사하지는 않고, 나는 그냥 만들어져 있는거 갔다 쓴다.) 마음 먹고 보기 시작한다. Content 책 제목은 하루에 10분씩 핵심만 골라 마스터하는 SQL 이다. 이 책은 정가 12,000원이며, 인터넷 서점등을 통해 9,000원에 살 수 있다. 책의 난이도는 무척 쉬운편이며, 이해를 위해서 생각할 필요가 없다고 생각한다. 즉 정말 10분씩 보면 22일이면 다 볼 수 있는 책이다. 책은 총 22 챕터로 나누어져 있으며, 각 챕터마다 단 한가지의 주제를 다룬다. 주 내용은 데이터 베이스란 무엇이며 각..
분류 전체보기 검색 결과
Introduction 마지막 항목이다. 템플릿이기 때문에 명시적 인스턴스화가 존재 하는데, 이게 어떻게 해서 생겼는지, 어떻게 사용 하는지 설명 되어 있는 항목이다. Content 명시적 인스턴스화를 하는 방법은? 명시적 인스턴스화란 인스턴스화 지점을 프로그래머의 입맛 데로 정하는 것을 말한다. 하는 방법은 template 키워드를 붙여 주면 되는데, 다음 예제를 보자. 책에 있는 예제 template void f( T ) throw(T) { } // 함수 템플릿을 명시적 인스턴스화한 예제 template void f(int) throw(int); template void f(float) throw(float); template void f(long) throw(long); template void f..
Introduction 템플릿 코드가 번역 단위마다 인스턴스화 되는 문제(이게 왜 문제이냐면, 컴파일 후 링크 단계에서 단일 정의 원칙:ODR을 위배하므로 링크되지 않는다)를 해결하기 위한 대표적인 3가지 방법을 알아 보는 장이다. Content 1. 일단 먹고 보는 인스턴스화 : Greedy Instantiation 책에는 근시안적 인스턴스화 라고 되어 있는데, .. 전체적인 그림을 보지 않고, 눈 앞에 보이면, 그냥 인스턴스화 한다는 말이다. 이렇게 진행하게 되면, 아마도 내 생각에는 컴파일러 제작자가 편할 것이다. 나중에 1개로 취합만 하면 되기 때문이다. (상대적인 편함이지, 기술이 없다는 것을 의미하지 않는다.) 이 기술에 대해서는 이야기가 나와 있지 않고, 링커가 1개의 인스턴스화만 남기고 모..
Introduction 코드 리뷰하다가, 가끔 만나는 포인터 접근, 이러한 접근을 잘못하면 크래쉬가 나기 쉽다. 이러한 사실을 알고 있음에도, 포인터 접근에 대한 계산이 가끔 잘 안될 때가 있다. 오늘 그러한 계산이 잘 안되는 코드를 발견하여 정리해 둔다. Content 크다 와 작다는 같다 보다 왜 더 이해 하기 어려울까? 우선 작다 또는 크다의 의미를 if 문을 통해 생각해 보면 다음과 같다. if ( 1 > 2 ) 는 거짓이다. 왜냐하면 1이 2보다 작은데 크다고 했기 때문이다. if ( 2 > 2 ) 는 거짓이다. 왜냐하면 2는 2보다 크지는 않기 때문이다. if ( 3 > 2 ) 는 참이다. 왜냐하면 3은 2보다 더 크기 때문이다. 그러므로 크다 또는 작다의 반대는 >= 이거나 limit_ind..
Introduction 코드 리뷰를 하다가 if문이 많을 수록 코드 분석을 더 힘들게 한다는 사실을 알게 되었다. 그러던 중 if문을 고의로 없애버리는 코드를 작성하기 시작했는데, 문득, 성능도 더 좋을까? 라고 생각하는 찰나에 테스트 코드를 만들고 테스트 해보았다. content 하는 일은 같으나, 한쪽은 if문이 있고, 한쪽은 if문이 없다. 하는 일은 현재 나이를 저장한 변수가 초기화 나이까지 되었을 때, 0으로 리셋 해 주는 일이다. #include #include int main( void ) { boost::timer t0; const int reset_age = 100; int my_age = 0; int loop_count = 1000000000; t0.restart(); // case 1..
최근댓글