Win32API - CRITICAL_SECTION의 OwningThread

Windows Vista부터 CRITICAL_SECTION의 내부 구조가 바뀌었다고 한다. 이 중 눈여겨 볼 것은 CRITICAL_SECTION의 멤버 변수 중 OwningThread 인데 이 변수에는 CRITICAL_SECTION을 소유중인 스레드의 ThreadID가 설정된다. 그래서 멀티스레드에서 CRITICAL_SECTION를 사용할 때 특정 스레드가 락을 획득하지 못하고 대기중이라면 어떤 스레드에서 락을 소유중인지를...
더 읽기

.NET Core용 이미지 라이브러리

.NET Core를 사용하여 애플리케이션을 개발할 때 개발자가 알아야 할 결점 하나는 영상 기반 API가 없는 것이다. 보급된 API 중의 하나로 훌륭한 System.Drawing 이 있지만 이것은 Windows 기반의 GDI+ 인터페이스에 의존하고 있다. .NET Core에서는 이용할 수 없다. 다행스럽게도 많은 개발자 커뮤니티가...
더 읽기

C++ - 메모리 영역

메모리 영역에 대해서 5 종류의 메모리 영역 C++ 에서는 다른 특성을 갖는 5 종류의 메모리 영역이 존재한다. (※ 단 c++ 규격에는 스택이나 힙은 명시 하지 않고 Free-Store는 명시 하고 있다) Const Data 컴파일 시 값을 알 수 있는 데이터(예를 들면...
더 읽기

해외 게임 업계의 아웃소싱

여러 인기 작품에 관련있지만 아무도 모르는 게임 회사 Blizzard Entertainment의 인기 작품 “오버 워치”를 조사하고 있을 때 어떤 게임 업체 사이트에 맞닥뜨렸다. 회사 이름은 SuperGenius로 사이트의 톱 페이지에는 “오버 워치”의 친숙한 아트 워크가 큼직하게 게재되고 있었다. 그뿐인가 2K Games의 “Mafia...
더 읽기

프로그래밍 어록 - egoless programming 10계명

Gerald Marvin Weinberg의 “The Psychology of Computer Programming” 에서 자신이 잘못을 저지른다는 것을 이해하고 받아들이기. 자신과 자신의 코드는 별개이다. 아무리 “가라데”를 배워도 언제든지 당신보다 더 잘 아는 사람이 있다. 상의 없이 코드를 다시 쓰지 않는다. 자신보다 무지한 사람에 대해서도 존경과...
더 읽기