본문 바로가기

프로그래밍

미국 개발자 지역별 연봉비교 실리콘밸리가 있는 SF Bay 지역이 1위. 그러나 이지역 물가가 살인적이므로 실제 가처분소득은 생각보다 많진 않을듯 하다. 참고용으로 보시길 더보기
프로그래밍 추천책 모음 다음은 stackoverflow.com 내에서 질문답변으로 많이 언급되었던 책들을 순서대로 모은 차트이다. http://www.dev-books.com/ 1위로 언급된 레거시 코드활용이라는 책은 나온지 좀 된 책인데 국내에 번역판도 있다.http://www.yes24.com/24/goods/3092523?scode=032&OzSrank=2 번역이 좋지 않다는 평이 있으며, 원서로 사서 볼 경우 값이 꽤 나간다. 2위 디자인패턴, 3위 클린코드 처럼 프로그래밍 언어에 상관없이 개발자라면 누구나 볼 수 있는 보편적인 책이 상위권에 올라와 있다. 그 유명한 이펙티브 C++은 12위? 리스트의 몇몇 책들은 번역판이 존재하며 그렇지 않는 책들도 있다. 여하튼 대부분의 책들은 구글링해보면 pdf파일을 어렵지 않게 .. 더보기
유니티 어필리에이트 - 유니티에셋 홍보 Unity Affiliate 유니티 에셋을 자신의 SNS 또는 블로그에 홍보를 하면, 그 링크를 타고 구매시 판매금액의 일부를돌려주는 프로그램이다. 방법은 자신이 홍보하고 싶은 특정 에셋을 블로그나 기타 자신이 홍보를 원하는 채널(SNS, 유투브 등 어디든 가능)에 에셋의 링크와 함께 게시물을 달면, 그 링크를 보고 다른 유저가 에셋스토어를 방문해서 구매까지 이루어지면 홍보한 이에게 에셋 판매 금액의 5%를 지급한다. 유니티와 에셋을 판매하는 퍼블리셔의 수익 배분이 70 대 30 정도 된다. 위에서 말한 대로 퍼블리셔 자신이 홍보를 겸할 경우에는 75%까지 수익을 가져가는 것이 된다. https://unity3d.com/kr/affiliates 더보기
GetLastError() 리턴값을 문자열로 출력 - FormatMessage 윈도우즈 시스템에서 에러를 체크해주는 GetLastError() 아쉽지만, 리턴값이 DWORD 이다. 물론, 테이블을 확인해서 어떤 에러인지 확인할 수 있지만( http://honestgame.tistory.com/120 ) 매번 확인하는게 귀찮을때 문자열로 변환하여 볼 수 있다. OS에서 Message Dll로 테이블을 관리하고 있는데, FormatMessage()를 이용하면 된다. 함수원형은 다음과 같다. DWORD WINAPI FormatMessage( _In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _Out_ LPTSTR lpBuffer, _In_ DWORD nSize, _I.. 더보기
[링크] 최고의 C++ 강의 5개 http://www.bloter.net/archives/271078 아쉽지만, 한글자막은 없다. 더보기
Unreal Engine - Game Flow Chart StartEngine(Editor)-> (UEditorEngine) Init-> (UEngine) Start-> Uses presses "Play In Editor" button -> Create UGameInstance-> (UGameInstancce) InitializePIE-> (UGameInstance) Init -> Create UOnlineSession and register delegates-> (UEditorEngine) CreatePIEGameInstance ->(UEditorEngine) StartPIEGameInstance-> (UWorld) BeginPlay StartEngine(standalone)-> (UGameEngine)Init-> Create UGameInstance ->(.. 더보기
C# - Application.Exit() 먹히지 않는 이유 Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed. 메세지루프가 시작되기 전, 그러니까 Form 생성전 호출하면 효과가 없다. https://msdn.microsoft.com/ko-kr/library/ms157894(v=vs.110).aspx 더보기
자료구조 SearchTime - map,set,unordered_map map, set, multimap, multiset 은 일반적으로 binary tree로 구현되어 있다. (VS 컴파일러의 경우, Red Black Tree로 구현되어 있음) https://ko.wikipedia.org/wiki/%EB%A0%88%EB%93%9C-%EB%B8%94%EB%9E%99_%ED%8A%B8%EB%A6%AC 오른쪽, 왼쪽을 비교해가면서 'Key'를 찾아가는 구조이다. 이와 같은 구조는 O(log n) 의 시간이 소요된다. 반면, unordered_map 이나 unordered_set의 경우 (c++11 이상에서 사용가능), 해쉬테이블로 구현되어 있다. bucket이라는 일종의 슬롯형태에 데이터를 해쉬알고리즘에 나누어서 집어넣는 구조인데, 해쉬함수가 constant time이라고 가정.. 더보기
C++ 시스템 환경변수 읽어오기 시스템 환경변수를 코드상으로 불러들이는 방법은 몇가지가 있다. 그중 하나는 C라이브러리 함수 getenv() 를 사용하면 된다. 필요헤더: stdlib.h 형태: char *getenv(const char *name); 사용방법은 다음과 같다. 매우 simple#include #include int main() { printf( "TEMP1 = %sn", getenv( "TEMP1")); } 다음은 WINAPI함수 - GetEnvironmentVariable() 를 이용하면 된다. DWORD WINAPI GetEnvironmentVariable( _In_opt_ LPCTSTR lpName, _Out_opt_ LPTSTR lpBuffer, _In_ DWORD nSize ); lpName [in, optio.. 더보기
GetLastError() - 리턴코드 (에러값) 0 0x0000 작업을 완료했습니다. 1 0x0001 올바르지 않은 함수입니다. 2 0x0002 지정한 파일을 찾을 수 없습니다. 3 0x0003 지정한 경로를 찾을 수 없습니다. 4 0x0004 파일을 열 수 없습니다. 5 0x0005 접근이 거부되었습니다. 6 0x0006 잘못된 핸들입니다. 7 0x0007 저장 컨트롤 블록이 손상되었습니다. 8 0x0008 저장 공간이 부족해서 이 명령을 수행할 수 없습니다. 9 0x0009 저장 컨트롤 블록 주소가 올바르지 않습니다. 10 0x000A 환경이 올바르지 않습니다. 11 0x000B 잘못된 형식의 프로그램을 로드하려고 했습니다. 12 0x000C 액세스 코드가 올바르지 않습니다. 13 0x000D 데이터가 올바르지 않습니다. 14 0x000E 저장 공.. 더보기