본문 바로가기

전체 글

(84)
VC++ 6.0을 쓰지 말아야하는 이유 원문 : http://minjang.egloos.com/1783328 나는 아직 Visual Studio(이하 VS)6.0과 2005를 함께 이용한다. 학창시절 C언어를 처음 배울때 6.0으로.. 그리고 군 제대후 복학 했을때 2005를 사용하면서 자연스럽게 몸에 익었기 때문에 익숙한 IDE를 계속 사용해 왔던 것이다. 요즘 게임회사에서 면접 볼때 종종 물어보는 질문중에 하나가, 왜 상위 VS를 써야 하는지를 묻는데가 있다고 한다. 부끄럽게도 난 그런 질문을 받았을때 대답을 할수 없었을 것이다. 하지만 이제는 제대로 알고, 상위 버전의 IDE를 이용하면서 개발을 할 수 있도록 노력해야 할 때이다. 이유는 다음과 같다. VS 6.0을 쓰지 말아야 하는 이유 2008년 3월인 지금까지도 여전히 많은 프로젝트..
[정보]클라우드 게임? 클라우드 게임에 관련된 LG U+의 사업설명회 자료이다. 게임회사에서 일하는 나로서는 플랫폼에 구에받지 않고, 모바일, PC, 기타 스마트장비에서 하나의 게임을 '클라우드'로 이용할수 있다는 점이 상당히 놀라웠다. 헥심은 게임개발사는 cgames 에서 지원하는 개발킷을 활용하여 게임을 개발하여 클라우드 서버에 올려서 서비스를 하면, 이 서비스를 활용할수 있는 기기(TV, 스마트폰, 기타 스마트기기, PC)등에서 실시간 스트리밍을 통해 게임을 즐길 수 있게 한다는것.. 이를 위해 전송기술은 엔비디아가 담당하고, 초고속 통신환경은 LG U+, 개발킷은 유비투스, 그리고 게임은 게임개발사에서 담당하게 된다고 한다. 시연용으로 제공된 셋톱박스에 컨트롤러를 끼우면 별도의 콘솔장비와 타이틀이 없어도 TV에서 스트리..
레노버 ideapad Z585 얼마전 구매한 레노버의 ideapad z585. 노트북 가격이 워낙 비싸서.. 평소에 하나 장만할 엄두가 나지 않았는데.. 이번에 나온 이녀석이 가성비(가격대 성능비)가 너무 좋아서 하나 장만했다. 제품의 상세스팩은 아래와 같다. 일단 트리니티에 대해 얘기하자면, AMD에서 인텔의 울트라북의 대항마로 출시한 2세대 APU다. APU는 하나의 기판에 CPU와 GPU를 동시에 얹어서 CPU와 GPU의 전체연산 과정이 한칩에서 이루어지게하여, 응답시간을 줄이고 크기도 줄인 장점이다. 내가 구매한 Ideapad z585는 15인치 모델로 크기는 휴대하기에 다소 큰 감이 있다. 외형과 스팩을 살펴봤다면 성능을 살펴볼때다. 이녀석은 트리니티 A8제품군으로 쿼드코어 CPU를 가진 녀석이다. 내장 그래픽은 Radeon..
지연된 쓰기 실패 와 아웃룩 pst 복구(scanpst.exe) 마이크로 소프트 오피스 2007 제품군에 포함된 아웃룩을 이용하다가, 편지함 검색기능을 활용하기 위해 Window Search 4.0 을 내려받아서 사용하다가 결국 문제가 생겼다. 일단 업무에 지장을 줄 정도로 색인을 작성하는데 매우 느리다는게 가장 큰 문제였는데.. 결국 색인을 완료하지 않은 상태에서 프로그램을 제거해버리니 문제가 심각해졌다. 아웃룩에서 사용하는 "Outlook.pst" 파일이 손상되어 아웃룩이 실행조차 되지 않는다. 그리고 문제 해결을 위해 "scanpst.exe"를 활용하여 pst 파일을 복구하라고 하지만 파일조차 찾을수 없어서 난감한 상황에 빠져버렸다. 인터넷을 통해 scanpst.exe 파일을 구했고, 복구에 성공했다. 아래의 방법을 참고하자. (출처 : http://kinlif..
[Visual Studio 활용] - 현재 활성화된 소스의 파일을 추적하는 방법 프로젝트의 규모가 커지고 파일의 개수가 많아지면 현재 작업중인 소스가 어떤파일에 있는지 쉽게 알 수없다. 그래서 비쥬얼 스튜디오에서는 현재 작업중인 소스가 어떤 파일에 있는지 추적하는 기능을 제공한다. 방법은 아래 순서로 하면 된다. [도구] - [옵션] - [프로젝트 및 솔루션] - [일반] 에서 '솔루션 탐색기에서 활성화된 항목 추적(C)' 항목에 체크.. 그러면 현재 작업중인 소스파일의 위치를 '솔루션 탐색기'에서 표기해준다. 만약 '솔루션 탐색기'가 아닌 '클레스 뷰'를 이용하는 유저라면 해당 기능은 쓸모가 없다. '솔루션 탐색기'를 이용하는 프로그래머에게는 신의 기능이 아닐까 +_+
구조체 맴버맞춤 struct TEST { int iNum; char ch; }; 구조체를 선언할적에 위와 같이 선언했다면 우리 생각엔 "4Byte(int) + 1Byte(char) = 5Byte" 라고 생각하기 쉽지만, 실질적으로 8Byte가 할당된다. 그 이유는 CPU 효율을 위해 4Byte씩 미리 잡아놓고 할당을 하기 때문이라고... 근데 주의할껀 char형 변수 3개를 선언하면 12byte가 되는게 아니라 4바이트가 할당된다. 미리 4바이트를 잡아두고 1바이트인 캐릭터형 3개는 4바이트를 넘지 않기때문에, 별도로 4바이트를 할당할 필요가 없기때문이다. 이러한 현상을 해결하기 위해서는, 2가지 방법이 있는데, 비쥬얼 스튜디오의 [프로젝트] - [속성] - [구성속성] - [C/C++] -[코드생성] 안에 구조체 멤버..
inline 함수 사용시 발생할수 있는 LNK2019 오류 inline 키워드를 사용하여 함수를 inline화 시키게 되면, 함수에 정의부에 있는 내용을 함수를 호출한 부분에 대체 함으로써 성능을 향상 시킬수 있다. 하지만 함수의 정의부에 내용이 많을경우에는 별로 좋지 않은 방법이다. 나는 잘 모르고 있었지만, 우리가 inline 키워드를 이용해 inline화 하는것은 단지 컴파일러에게 '요청'하는 것일 뿐이며, 판단은 컴파일러가 한다고 한다. 이 말은, 컴파일러에 의해 '요청'한 부분이 무시될수도 있고, 성능향상을 위해 컴파일러가 자동으로 inline화를 수행하기도 한다는 소리다.( 똑똑하군..) inline함수를 만들때 주의해야 할 점은, 반드시 "inline 함수의 선언과 정의를 헤더파일과 구현파일로 분리해서는 안된다!" 이다.. 실제로 내가 경험한 내용이..
TIME(시간)에 관련된 각종 함수들 (WIN32 API) 출처: http://blog.naver.com/ghostcbr954/110003750170 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 ..