반응형

전체 글 214

C++ Technical Report 1 : Function pobjects

Polymorphic Function Wrappers (tr1::function) 모든 Callables(함수포인터, 멤버함수 포인터 그리고 함수객체(Functor or Function Objects))에 대하여 단일한 wrapper를 제공합니다. ※ Callables라는 좋은 표현을 한국말로 어떻게 해야할지 모르겠군요... Function Object Binders (tr1::bind) std::bind1st 및 std::bind2nd의 일반화된 버전으로 함수 호출시 파라메터를 유연하게 지정하게 해줍니다. tr1::function의 최대 장점은 C시절의 함수포인터, C++의 멤버함수 포인터, STL과 같이 각광 받기 시장한 함수 객체를 단일 템플릿으로 처리하여 준다는데 있는 듯 합니다. 자세한 코드 설..

C++ 프로그래밍 2009.07.28

C++ Technical Report 1 (TR1) : Overview

C++ TR1은 C++ 표준 라이브러리에 대하여 새롭게 추가되는 라이브러리에 대한 기술 문서로서, 우리에게는 추가된 C++ 라이브러리를 의미합니다. 2005년 6월 24일에 제안된 문서가 현재 심사중에 있습니다. TR2은 C++0x가 나온 이후에 나올 것으로 예정되어 있습니다. TR1은 Visual Studio 2008 한글판과 같은 경우 Service Pack1을 깔면 쓸 수 있습니다. 이 버전에는 C99에 대한 호환성 부분과 수학라이브러리는 지원하지 않습니다. 또한 영문판과 같은 경우는 별도의 Feature Pack 2008을 다운받아서 깔아야 합니다. General Utilities Reference Wrapper (tr1::reference_wrapper) Boost.Ref에 기초합니다. 헤더에 ..

C++ 프로그래밍 2009.07.23

다음(Daum, Hanmail, 한메일) 아이디(id)로 티스토리(Tistory) Blog API로 로긴(login) 하기

티스토리를 한메일 계정으로 가입한 저는 Blog API로 로긴하는게 되지 않았습니다. 티스토리에서 하는 방법을 찾지 못하여 노가다 끝에 하는 방법을 발견하였습니다. 지금은 Blog API로 정상적으로 로그인을 하여 Window Live Writer로 글을 작성하고 있는 중입니다. 로그인을 하기 위한 방법은 아래와 같습니다. 1. 티스토리(Tistory) 처음 화면에서 아이디 찾기를 클릭합니다. 그리고 블로그 URL이나 필명으로 자신의 계정 아이디(email)을 찾습니다. 저와같은 경우는 아이디가 id@hanmail.net이 아닌 id@daum.net이었습니다. 2. 자신의 계정 아이디(email)을 찾은 뒤에는 다시 티스토리(Tistory) 처음 화면으로 가서 이번에는 비밀번호 찾기를 클릭합니다. 3. ..

기타 2009.07.23

Visual Studio 2010에 적용 예정인 C++0x

우선 이 글은 MS Visual Studio Team System 2010 공식 팀 블로그 에 있는 내용을 한 페이지에 볼 수 있게 요약한 것입니다. 자의적으로 요약한 만큼 잘못된 설명이 존재할 수 있으며 좀 더 궁금한 부분은 해당 페이지를 참조하여 주시면 됩니다. auto 컴파일 시간에 컴파일러가 자동으로 타입을 유추하여 코드를 생성시켜 주는 새로운 키워드 입니다. 예제 보니 가장 많이 쓰일 곳이 STL 코드내일 듯 보입니다. for( auto IterPos = ItemCodeList.begin(); IterPos != ItemCodeList.end(); ++IterPos) { cout

C++ 프로그래밍 2009.07.21

[서평] 온라인 게임 서버 프로그래밍 (MMORPG서버 관련 책)

이 책을 보는 느낌을 말하자면 저자분이 한 프로젝트를 인수인계 받는 느낌이 강하다. 책을 읽으려면 기초적인 소켓프로그래밍, C프로그래밍 그리고 DB프로그래밍 지식이 필요하며 MMORPG 게임을 즐긴 경험이 필요하다. MMORPG에 대한 설명없이 해당 지식을 안다는 가정하에 특정 부분을 설명하고 있으며 코드 설명이라기 보다는 코드 속에 미쳐 써놓지 않은 주석을 설명이라고 표현하는 듯 보이기 때문이다. 이 책은 내용 설명보다는 코드 분석 스타일로 읽어야 하기 때문에 읽는데 시간이 꽤 걸린다. 하지만, 다 읽고 나면 대충 MMORPG 서버 프로그래밍의 큰 틀에 대하여 이해할 수 있다는 것이 장점이다. 말은 MMORPG 서버 프로그래밍 이지만 결국은 게임 로직을 서버에서 처리하는 모든 경우에 응용할 수 있는 기..

Low Fragementation Heap(LFH)

Low Fragementation Heap이란 Heap Memory에 대하여 new와 delete등의 메모리 할당 및 소멸 작업시 멀티쓰레드에서의 Lock에 의한 overhead를 줄여주는 Heap을 말합니다. XP에서 처음 도입되었으며 Vista에서 본격적으로 홍보된 Windows Heap의 일종입니다. 1개의 CPU가 아닌 N개의 CPU에서 멀티쓰레드에서 16KB이하의 메모리를 할당을 위하여 사용할 때 괄목할 만한 성능 향상이 있으며 상황에 따라 기본 Heap에 비하여 성능이 떨어지기도 합니다. 주로 서버용 프로그램에 사용되어질 듯 합니다. 자세한 내용을 담은 페이지는 아래와 같습니다. 윈도우 비스타 힙 관리자 Vista에서의 LFH를 소개한 블로그 글입니다. 댓글에 자세한 테스트를 한 분의 글이 있..

Win32 ThreadPool

MSDN: Thread Pool API Thread Pool API에 대한 간략한 설명이 들어 있는 페이지 입니다. 이 페이지는 기본적으로 전 버전에서 지원하는 API들과 Window Vista에서 지원하는 새로운 Thread Pool API를 비교하며 설명하고 있습니다. 쓰레드 풀은 OS의 쓰레드 풀을 사용하는 것이고 Win2K부터 지원을 합니다. Thread Pool API라는 것은 OS Thread Pool에서 동작하는 API를 나열해 놓은 페이지 입니다. 그러니 API별 용도는 다릅니다. 이 글에서는 Original API를 바탕으로 하나씩 살펴볼까 합니다. 쓰레드 풀 쓰레드는 I/O 쓰레드와 non-I/O쓰레드 2가지 종류가 있습니다. I/O worker thread는 APC(Asynchrono..

TCPWrapper

Unix 서버용 Firewall의 일종으로 inetd를 이용하는 서버프로그램에서 쓸 수 있습니다. 실제적인 용도는 Admin과 같은 경우에는 특정 IP에서만 사용할 수 있도록 하는 방법이 있을 수 있습니다. 뭐, 응용하면 특정 국가의 IP에서는 아예 접속을 받지 않는 방법도 있을 수 있습니다. 보안과 관련 부분으로 아래와 같은 링크에서 좀 더 많은 정보를 얻을 수 있습니다. http://www.superuser.co.kr/security/certcc/secu_certcc_03.htm 한글로 개념이라든지 사용법이 잘 나와 있습니다. http://en.wikipedia.org/wiki/TCP_Wrapper 영문 위키미디어로 개발배경이라던지 하는 정보가 잘 요약되어 있습니다.

NAT(Network Address Translation)의 역활

NAT(Network Address Translation)란? 우리가 일반적으로 인터넷 공유기라고 부르는 기계에서 하는 일로 사설IP를 사용하는 내부의 네트워크 기기(PC등등)들이 하나의 공유IP(Public IP)를 공유하도록 하여 N개의 Public IP로 N개 이상의 사설IP를 가진 기기들이 인터넷을 사용할 수 있도록 한다. 3 가지 모드 static Public IP와 Private IP를 매핑시킴 pooled 사용가능한 Public IP들을 풀(pool)로 가지고 있어 이들 중 하나를 필요에 따라 Private IP와 매핑 시킴 PAT (Port Address Translation) IP주소를 매핑하듯 Port를 매핑하여 Public IP에서의 Port활용성을 높임. PAT를 안할 경우 내부 I..

OLE DB의 클래스 역활

CDataSource DBMS에 대한 연결 문자열, 즉 해당 DBMS에 대한 드라이브에 대한 연결을 제공하는 듯 보임 CSession 일종의 DB Connection임 CCommand Connection에 대하여 Query를 수행 한다. ..DBAccessor 자동으로 만들어지는 클래스로 컬럼에 대한 정보를 가지고 있다. CCommand객체로 Query시 이용한다. ..Accessor 자동으로 만들어지는 클래스로 컬럼에 대한 정보를 가지고 있다. .. : public CCommand 자동으로 만들어지는 클래스로 테이블형태의 억세스를 가능하게 해주는 클래스인 듯 보인다. CDBPropSet CCommand로 Query를 수행할 경우의 커서의 속성을 설정한다.

TCP Protocol MindMap

FreeMind 0.8.1로 만든 TCP 마인드맵입니다. 처음에는 공부한거 나중에 문서 일일이 찾기 싫어서 나중에 부분적으로 찾아보기 위하여 작성한 것인데, 만들다 보니 3363x3180 size의 이미지 크기로 커져버렸군요. 솔직히 이거 만드는데 거의 한달 걸렸습니다. 처음 의도는 기존의 알고있는 지식의 복습과 몇가지 헷갈리는 부분에 대해서 찾아보는 거였는데 RFC 문서와 Wikipedia 영문판 TCP관련 내용들 찾다보니 공부시간이 무한정 늘어나 버렸네요. 그래도 그동안 추상적으로 부분 부분 이해하던 TCP 메카니즘이 완전히 머리속에 들어온게 보람이라면 보람이겠네요. TCP의 메카니즘을 뿐아니라 MSDN에서 API같이 찾다보니 Window의 TCP구현에 대한 특징도 보이고 소켓관련 FAQ의 내용도 읽..

반응형