struct CHAR_COLLECTION_DATA { int CharID; int Value; int ValueCode; }; CHAR_COLLECTION_DATA CollectionData = {m_CharID, m_Value, m_ValueCode }; 이런 코드가 있었다. 기능을 추가 하시려다보니 습관적으로 struct CHAR_COLLECTION_DATA { int CharID; int ClassID; // 다른 변수를 중간에 추가함. int Value; int ValueCode; }; CHAR_COLLECTION_DATA CollectionData = {m_CharID, m_Value, m_ValueCode }; 같은 코드고 컴파일 오류도 없지만 원래 코드와 다르게, CharID, Value, ..
프로세스 내에 유일한 객체가 되도록 하는 것을 싱글턴이라고 합니다. template class Singleton { private: static T* m_pSingleton; Singleton() { } virtual ~Singleton() { m_pSingleton = 0; } public: static T* CreateInstance() { if(m_pSingleton == 0) m_pSingleton = new T; return m_pSingleton; } static T& Instance(void) { return (*m_pSingleton); } static T* InstancePtr(void) { return (m_pSingleton); } }; GPG 1권에 포함된 또 다른 Singleton..
오버로딩(Overloading)에는 연산자 오버로딩, 메소드 오버로딩이 있는데, 이 중 메소드 오버 로딩을 말해보겠다. 메소드 오버로딩이란, 같은 이름의 메소드지만 파라미터가 다르면 다른 함수로 처리하여, 중복 정의를 허용하겠다는 것이다. class CTest { public: void Print() { printf("CParent\n"); } void Print(char *str) { printf(str); } void Print(int no) { printf("%d\n", no); } }; 오버라이딩(Overriding)이란, 부모 클래스에 이미 존재하는 함수를 덮어 쓴단 의미다. 오버라이드 하게 되면 자식 클래스에서는 부모 클래스의 Print 함수의 존재를 잊어 버리고, 자식 클래스의 Print 함..
80%의 효과는 20%의 노력으로 얻어진다는 법칙으로 중요한 일에 노력을 집중해 성공적인 삶을 살 수 있다는 것이다. 이 법칙을 프로그래밍에서 적용해보자면, - 코드 중에 20%가, 수행시간의 80%를 차지한다. - 프로그램의 리소스의 80%는 전체 실행 코드의 약 20%만이 사용한다. - 메모리의 80%는 실행 코드의 약 20%만이 사용한다. - 디스크 접근 회수의 80%는 실행 코드의 20%가 접근한 회수다. - 프로그램 유지보수에 들어가는 수고의 80%는 실행 코드의 20%에 집중된다. 여기서 80-20법칙의 진정한 의미는 아무 곳이나 골라잡고 효율을 향상시키려고 애쓰는 것은 별 도움이 안된다는 의미를 갖고 있다.
간단한 동기 액세스를 행하기 위한 API 복수의 스레드가 공유하는 변수에 대해서의 동기 액세스를 간단하게 실시하기 위한 함수가 제공되고 있습니다. 변수의 값을 갱신할 때에 한 번에 하나의 스레드 밖에 그 갱신을 실시하지 않는 것을 보증합니다. 1 InterlockedIncrement 지정된 변수의 값을 인크리먼트(increment) 하고(하나 늘립니다), 그 결과 얻을 수 있던 값을 체크합니다. lpAddend 인크리먼트(increment) 되는 변수로의 포인터를 지정합니다. 반환 값 인크리먼트(increment) 후의 값이 돌아갑니다. 2 InterlockedDecrement 지정된 변수의 값을 감소 하여(하나 줄입니다), 그 결과 얻을 수 있던 값을 체크합니다. lpAddend 감소 되는 변수로의 포..
혼자 개발을 하던 시대는 지나갔다. 게임 업계에서도 1인 개발자는 별바람님을 제외하곤 사라진지 오래다. 그만큼 팀 작업의 중요성은 더 크게 다가 오고 있다. 한 프로젝트를 위해 마케팅, 서비스, 시스템, 개발이라는 각기 다른 업무를 맡고 있는 사람들이 협동해야하며, 한 팀 내에서도 웹, 서버, 클라이언트, 애니메이터, 배경, 원화가, 모델러, 기획자 등의 다양한 사람들이 함께 일하곤 한다. 우리는 하루에 반 이상을 회사에서 보낸다. 회사에서 즐겁지 못하다면, 우리의 인생도 즐겁지 않을 것이다. 어떻게 해야 우리 모두 만족하는 개발 과정을 만들 수 있을까? 사실 나는 알게 모르게 유비무환이라는 사자성어를 교훈삼아, 늘 넘치도록 준비하려 노력했다. 그게 미덕인줄 알았다. 이런 내게 있어 낭비를 제거하라는 충..
typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMillisecondes; }SYSTEMTIME, *PSYSTEMTIME; 운영체제 차원에서 기본이 되는 시간 포맷의 구조체. timeGetTime(VOID) 윈도우(운영체제)가 시작되어서 지금까지 흐른 시간을 1/1000 초단위로 나타내는 함수. 만일 윈도우가 뜨고 1분이 지났다면 이 함수는 60,000을 리턴. 부팅 시간은 제외. Void GetSystemTime(LPSYSTEMTIME lpSystemTime); 시스템의 시간을 알아내는 함수. 영국의 그리니치 천문대의 시간을..
- Total
- Today
- Yesterday
- perfmon
- EzShortcut
- SDL
- 임백준
- RoR
- 루비
- MS-SQL
- 디버깅
- SQLite Spy
- TraceRoute
- 게임개발포에버
- Ruby on Rails
- CppSQLite
- 멀티스레드
- c언어
- NDC2013
- 좋은 프로그래머
- 루비 온 레일즈
- EasyExec
- TDD
- 조엘 온 소프트웨어
- ftp
- 디자인 패턴
- svn
- 리버스 엔지니어링
- 바로가기 프로그램
- 게임데브포에버
- Rails
- ruby
- 엘키
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |