IT/프로그래밍 관련 98

VC++HOTKEY모음

장샘왈 : "마우스를 쓰지 맙시다." WORD 파일로 받고 싶으신분은debuger@gmail.com으로 메일주세요.Ctrl + Tab : Edit하고 있는 Child Window 간의 이동 Ctrl + F4 : 현재 Edit하고 있는 Child Window를 닫기 Ctrl + I >> 문자열 입력 : 점진적으로 문자열 찾기 (Incremental Search) Ctrl + F3 : 현재 커서에 있는 문자열 찾기 (블록 지정 안 해도 됨) F3 : 찾은 문자열에 대한 다음 문자열로 이동 (Next Search) Ctrl + H : 문자열 찾아 바꾸기 (Replace) Ctrl + Left/Right Arrow : 단어 단위로 이동 Ctrl + Delete 또는 Backspace : 단어 단위로 삭제 Ctr..

Debug Key

1. F9 - 디버거의 중단점(Breakpoint)을 설정한다. 이 표시가 되어있는 부분을 실행하기전 디버거는 멈춘다. 2. F5 - 디버거 시작한다. 이때 중단점이 설정되어있지 않다면 프로그램을 전체적으로 실행한다. 3. Shift + F5 - 디버거를 종료한다. 4. Ctrl + Shift + F5 - 디버거를 처음부터 다시 시작한다. 이때 시작점은 프로그램의 처음이다. main()함수의 처음이던가 아니면 WinMain()의 처음이다. 5. Shift + F11 - 함수를 빠져나간다. 즉 함수를 빠져나갈 조건을 모두 만족한 후 호출한 함수로 돌아간다. 6. Ctrl + F10 - 현재 커서가 있는 부분까지 디버거를 실행한다. 만약 이전에 중단점이 설정되어 있다면 그곳에서 먼저 멈출것이다. 7. F11..

디자인페턴 강좌중 6/6

[[ Command 패턴 ]] 객체의 request를 캡슐화해서 각각 다른 request를 매개변수화(parameterize)할 수 있도록 한다. 그래서 그것들을 queue에 집어넣거나 기록(log)하거나,undo등을 지원하도록 한다. 또다시 스타크래프트의 유닛 클래스를 만드는 상황을 생각해 봅시다. (맨날 스타크래프트의 예만 드는군요. 저는 스타크를 별로 좋아하지 않지만 대중성있고 잘 만들어진 게임이기 때문에 스타크의 예를 드는 것이예요~ ) 지난번의 상태 패턴에 이어서 유닛 클래스를 만들 경우를 생각해 봅시다. 스타에서 지원하는 웨이포인트를 모르시는 분은 없을 것입니다. 큐에다 이동 명령들을 쌓아놓고 실행하도록 하는 것인데 오직 이동 명령만 넣을 수가 있습니다. 그러나 Ear..

디자인페턴 강좌중 4/6

State패턴을 하기 전에 함수 포인터의 대안으로서 가상함수를 소개해 드리겠습니다. State패턴이 사실 함수포인터랑 비슷하기 때문에... 가끔 너무 많은 if문 때문에 함수 포인터를 쓰는 경우가 있을 것입니다. 이 가상함수는 함수 포인터와 비슷하다고 할 수 있습니다. 차이점이라면 더 유연하고 직관적이며... 암튼 더 좋습니다. void HandleCommand( int CommandID ) { switch( CommandID ) { case 1: case 2: case 3: default: } } 이것을 함수 포인터로 바꾸면... void Command1() { //구현.... } void Command2() { } void Command3() { } typedef ..

디자인페턴 강좌중 5/6

http://www.uml.co.kr/ 디자인 패턴과 UML을 위한 좋은 홈페이지입니다. 한 번 들려보세요 한글로 된 강좌도 읽을 수 있고, 객체 지향에 대한 생소한 분야들을 알게 될 것입니다. 으흑~ 이번엔 데코레이터 패턴입니다. 이 패턴에 대한 예를 찾기가 힘들더군요. 스타를 하다가 우연히 예를 발견해서 강좌를 씁니다. 제가 첨에 패턴 배울 때 이 데코레이터 패턴이 이해하기가 가장 힘들었었는데 그 때문인지 강좌 쓰기도 힘드는군요 -_-;;;; [[ Decorator ]] 동적으로 (실행시간중에) 객체에 부가적인 기능을 붙여주고 싶다. 이 패턴은 기능을 확장하기 위해 서브클래싱(상속)을 하는 것에 대한 유연한 대안을 제시해준다. ..이번에도 스타크래프트 개발 현장.. 유닛의 렌..

디자인페턴 강좌중 1/6

[[객체지향의 기본 개념]] 객체 지향에 대한 체계적인 설명은 못 드리겠고, 생각나는 대로 간략하게 설명을 하겠습니다. 객체 지향에서는 인터페이스와 구현의 분리를 아주 중요하게 여깁니다. 인터페이스와구현이 뭔지는 아시겠죠? 모르시면 메일을.. 왜!! 분리하느냐? 라는 것은 이것이 주는 이점을 알면 이해할 수 있겠죠. 눈 앞의 컴퓨터를 예로 들겠습니다. 컴퓨터 본체의 인터페이스를 살펴보면 전원, 리 셋버튼, 시디롬 버튼 등의 버튼들과 모니터 연결 케이블, 전원 케이블 등의 케이블이있습니다.. 그럼 이제 컴퓨터의 구현을 살펴보죠. ... ... ... 헉!! 구현은 너무 복잡해서 생략 했습니다. 암튼 컴퓨터의 내부 동작은 무쟈게 복잡하다는 것을 아실껍니다. 내부 부품도 무쟈게..

디자인페턴 강좌중 2/6

가장 쉬운 싱글턴 패턴부터 하겠습니다. 싱글턴(Singleton) 클래스의 인스턴스를 오직 하나만 만들고 그것에 쉽게 접근을 하고 싶다. 가끔 클래스의 인스턴스가 오직 하나만 존재해야 경우가 있을 것 입니다. DirectX의 DirectDraw, DirectSound등의 컴포넌트들이 이런 경우에 해당 하겠지요. 특히나 이런 컴포넌트 들은 자주 사용하기 때문에 컴포넌트 변수를 쉽게 얻어올 수 있어야 할 것 입니다. 그래서 대부분의 라이브러리를 보면 LPDIRECTDRAW7 g_pDDraw; 이런 식으로 전역 변수를 만드는 경우가 많습니다. 전역 변수로 만들면 사용하기 편하기 때문이지요. 그러나 역시 클래스화를 하는 것이 사용하기에 더 편하므로 클래스화를 할 것입니다. class cDirectDraw { ...

선행처리기 지시어

선행처리기 지시어선행처리기에 대해서는 1회때 배운적이 있고선행처리기 지시어중 #include에 대해서 2회때 이미 배우셨습니다.하지만 지시어에는 이것 외에도 몇가지가 더 있습니다.그럼 그것들에 대해서 알아보죠. (1) #define#define라는 지시어는 매크로 기능을 수행하는 지시어 입니다.기본적인 사용법은 다음과 같습니다. #define 매크로명 [값] 이렇게 해 두면 프로그램 내에서 매크로명과 같은 이름을 가진 단어들을모두 값으로 바꿔 줌니다. 그리고 여기서 값은 없어도 되죠.예를 들어 #define DATA 10 이렇게 해 주면 프로그램 내에 DATA라는 단어를 모두 10으로 바꿔 주게 됨니다.즉 프로그램에서 if(a==DATA) { . . }이렇게 쓴 것은 실재로는 if(a==10) { . ...