반응형

분류 전체보기 225

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의 내용도 읽..

대역폭 지연 곱 (Bandwidth-delay product)

이글은 Wikipedia의 Bandwidth-delay product을 요약한 것입니다. 대역폭 지연 곱이란? 쉽게 말하여 선로의 최대 처리량을 말하는 것으로 주어진 시간에 최대로 선로에 있는 데이터량을 말합니다. 좀 더 쉽게 설명하자면 데이터를 보냈는데 상대편에서는 아직 안받은 상태인, 선로에서 이동 중 일 수 데이터의 최대양을 말합니다. 계산단위는 초당 비트 혹은 바이트입니다. 어디에 쓰는 물건인고? TCP와 같이 신뢰성 있는 프로토콜에서 중요한데, 이유는 데이터를 보냈는데 ACK를 받지 않아 메모리에 있을 수 있는 데이터 최대 양과 비교될 수 있기 때문입니다. (에러시 TCP와 같은 경우는 Retransmission등을 처리해야 하기 때문에 메모리 버퍼에 가지고 있어야 합니다.) 덧붙이면, 윈도우 ..

TCP ECN(Explicit Congestion Notification)

ECN(Explicit Congestion Notification) TCP Header의 Flag 알아보다가 찾게된 명시적 혼잡 통보 기술인 ECN, Window서버쪽에서는 차세대 기술로 구현은 되어있지만 기본적으로 사용되지는 않습니다. 혹, 관련 기술을 찾는 분들을 위하여 편하게 찾으시라고 글 남겨놓습니다. 참고로 ECN의 개념은 TCP Congestion Control 대신에 Network에서 TCP에 혼잡 상황을 알려주어 Congestion Control의 효율을 높이려는 방법으로 혼잡상황을 알려주는 주체가 종단기기들이 아닌 IP네트워크를 구성하는 Router들이 됩니다. TCP의 ECN 기능을 이용한 Differentiated Services의 Assured Service에서의 Fairness 향..

반응형