C++ - Boost의 object_pool 사용은 비 추천

boost 라이브러리에는 메모리 풀 라이브러리로 object_pool 이라는 것이 있다. 사용법은 아래와 같다. boost::object_pool<int> pool; int* p = pool.construct(10); pool.destroy(p); 사용하면 안 되는 이유는 사용한 오브젝트를 해제할 때 너무 느리기 때문이다. 검증 코드 느린 이유는 오브젝트의 pool 리스트를 쌍방향 리스트로 관리하고...
더 읽기

Visual Studio - 업데이트 등에서 에러가 발생했을 때의 대처 방법

Open an elevated command prompt. Run: %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\resources\app\layout\InstallCleanup.exe -i 위 조작으로 설치를 위해 다운로드된 것이나 사용한 것이 지워지고, 리셋 된다. %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\resources\app\layout\InstallCleanup.exe 를 찾을 수 없는 경우는 https://www.visualstudio.com/downloads / 보다 최신 인스톨러를 다운로드하du 실행해 본다. 이것도 안 되면...
더 읽기

MongoDB - 데이터 추출 툴 mongoexport 와 mongodump 간단 비교

MongoDB의 데이터를 출력하는 툴로 mongoexport 와 mongodump가 있다. 둘 다 mongodb-tools 패키지에 포함되는 도구이다. mongoexport는 CSV 또는 JSON 텍스트 데이터, mongodump는 BSON 형식의 이진 데이터로 출력한다. 사용법도 데이터 포맷 지정 외에는 거의 똑같이 이용할 수 있다.   mongoexport mongodump 데이터...
더 읽기

MySQL의 3가지 lock - Record lock, Gap lock, Next-key lock

Record lock(레코드 락): 단일 인덱스 레코드의 락. Gap lock(갭 락): 인덱스 레코드 사이의 갭의 락, 선두 인덱스 레코드의 앞이나 말미 인덱스 레코드의 뒤의 갭의 락 Next-key lock(넥스트 키 락):레코드 락과 이 레코드 직전의 갭 락의 조합 InnoDB의 default 분리 레벨(REPEATABLE-READ)에서는...
더 읽기

C++- Poco 라이브러리를 VC++에서 static 라이브러리로 사용할 때

Poco 라이브러리를 VC++ 에서 static 라이브러리로 사용할 때 lib 파일을 찾을 수 없다는 링크 에러를 만나는 경우는 아래의 선언을 추가하면 된다. #define POCO_STATIC Poco 라이브러리는 default로는 동적라이브러리를 사용하는 것으로 설정 되어 있다. 그래서 위의 선언으로 정적 라이브러리 사용을 알려준다. The...
더 읽기

Visual Studio - C++ 라이브러리 프로젝트 시작하기

Visual Studio 2017의 세번째 업데이트 버전이 얼마전에 나왔다. Visual Studio 15.3 이다(이후 또 이버전의 패치 버전이 나와서 지금은 15.3.1 이다). 기존의 Visual Studio 버전 정책과 다르게 메이저 업그레이드도 아닌데 UI 변경이 꽤 많다. 새 프로젝트를 시작하면 어디에 뭐가 있는지 찾기...
더 읽기

ISO 드래프트 종류

새로운 C++ 표준이 만들어 질 때 공개되는 문서에 ISO 드래프트 라는 단어가 나오는데 이 ISO 드래프트 종류에 대한 간단한 설명이다. 발행까지 6 단계이다. Proposal stage 만들고 있는 규격이 정말 필요한지 확인. Preparatory stage working draft(WD)를 만든다. Committee stage(option) committee draft(CD)를...
더 읽기

Boost보다 쉽고 빠른 POCO C++ 라이브러리로 채팅 서버 개발하기(9/16)

9월 16일 토요일에 ‘POCO 네트워크 프로그래밍’을 주제로 강연을 합니다. 실습도 같이 하기 때문에 오전 10시~18시까지 합니다. POCO를 사용한 네트워크 프로그래밍을 빨리 배우기 원하는 분들에게 좋을 것 같습니다. 그리고 네트워크 프로그래밍을 잘 모르는 분들을 위해 관련 기초 지식도 알려드립니다. 세미나 내용...
더 읽기

golang - 버전 1.9

“Go 1.9”의 가장 중요한 변경은 타입 앨리어스의 도입으로 type T1=T2 라고 선언함으로써 타입 T2의 앨리어스 이름을 T1으로 정의할 수 있다. 또 math/bit 패키지는 CPU의 특수 명령에 대응한 무부호 정수비트 계수/조작 기능을 갖추고 있으며 sync 패키지에는 안전한 동시 접속을 실현하는 Map...
더 읽기

Visual Studio - Lightweight Solution Load

Lightweight Solution Load를 활성화 하면 프로젝트 지연 읽기를 할 수 있다. (프로젝트 로딩 시 전체 솔루션이 로딩 다 되지 않아도 활성화 되면서 순차적으로 솔루션을 로딩한다. 즉 모든 솔루션이 로딩 될 때까지 대기하지 않을 수 있다) 이 기능은 솔루션에는 수 백개의...
더 읽기