본문 바로가기

반응형

도구의발견

(67)
vi에서 파일 열 때 옵션 메 뉴 설 명 vi –R filename 지정한 파일을 읽기 전용으로 읽어 들인다 vi –r 살릴 수 있는 모든 파일 목록 출력 vi –r filename vi 편진기를 시작할 때 지정한 파일을 복구 vi –L 에러가 발생한 파일의 목록 출력 vi –t tag ctags 명령어에 의해 작성된 태그로 바로 불러옴 ctags가 깔려 있어야만 한다.
cvs diff 출력 형식 보기 cvs의 diff 명령을 사용하면 두 버전간의 차이를 비교 할 수 있다. 하지만 텍스트 기반으로 보다 보니 오랜만에 cvs diff 를 보면 복잡하기만 할 뿐 뭐가 뭔소린지 하나도 모르는 경우가 종종 있다. 그래서 오늘은 그 내용들을 간단하게 정리 하고자 한다. 'a' Append Index: SomeFile.c =================================================================== RCS file: /SomeWhere/SomeFile.cc,v retrieving revision 1.143 diff -r1.143 SomeFile.cc 340a341 > close(sockfd); 위의 예제에서 파랗게 되어 있는 '340a341' 부분을 보자. 가운데 있는 ..
키보드 리매핑하기(레지스트리 변경) 현재 내가 쓰고 있는 키보드는 '리얼포스101'. 이름에서 부터 알 수 있듯이 이 키보드는 키가 101개..흔히 우리가 즐겨 쓰는 윈도우키, 한자키, 한/영 변환키가 없다. 기본적으로 오른쪽 Alt와 Ctrl이 한자키와 한/영변환 키를 지원한다고 하지만, 나는 오른쪽 Alt와 Ctrl도 쓰는 차가운 도시 남자이므로 103키 설정으로는 키보드를 편하게 사용 할 수가 없어 키를 다시 매핑 해야만 했다. 처음으로 시도한 방법은 AutoHotKey(http://www.autohotkey.com/)라는 키 매핑 프로그램. 간단한 스크립트로 키매핑 뿐만이 아니라 이런저런 단축키들도 설정 할 수 있어 자주쓰는 프로그램들을 Ctrl+F1, F2 이런식으로 등록해 놓으면 상당히 편리한 작업환경을 제공 해 줄 수 있다. ..
Handle leak 찾기 이 글의 대상은 윈도우 프로그래밍에 대해서 어느 정도 이해를 하고 있는 사람들을 대상으로 합니다. 기본적으로 핸들과 커널 오브젝트에 대한 개념에 대해 알고 있어야 하며(모른다면 여기로), 디버깅에 대해서 약간의 기본적 지식을 가지고 계시는 것이 좋습니다. 본 포스트는 디버깅에 관련된 툴들의 사용법에 대해서 다루고 있으며, 자세한 사용법 보다는 기본적인 사용법위주로 문제 해결에 관련된 부분만 다루고 있습니다. 보다 자세한 정보를 원하시면 해당 툴에 관련된 링크를 따라 가시면 많은 도움이 될 것입니다. 프로그래밍을 하다 보면 원하든 원하지 않든(거의 이 경우가 대부분이만) 종종 자원을 흘리고 다니는 경우가 있다. 여기서 말하는 자원이란 것은 파일이든, 메모리든 핸들이든 여러가지가 될 수 있지만 오늘은 특히 ..
cvs 파일 상태 기호 cvs 디렉토리 내에서 checkout 이나 update 명령을 내리고 나면 파일 리스트들 앞에 알수 없는 영어 한 글자가 꼭 보인다. 당췌 이게 무엇인지에 대해서 너무 심각하게 생각하지 말자. 그냥 파일의 현재 상태를 나타내는 하나의 기호일 뿐이다. 아래 표에서 그 기호에 대해 간략하게 살펴 보도록하자 : A file 로컬 워크스페이스('지역 작업공간'이라고 번역 되기도 한다)에 파일이 추가 되었지만 아직 저장소(repository)에는 저장되지 않았다. C file 파일을 갱신하는 과정에서 충돌이 발생 했음을 의미한다. 즉, 로컬에 있는 파일과 저장소에 있는 파일의 버전이 맞지 않는다는 소리다. 로컬 file의 충돌 위치에 충돌 표시가 들어 가며, 원본 로컬 파일은 ".#file.버젼번호"라는 이름으..
GDB Tutorial GDB Tutorial 디버거는 다른 프로그램을 라인 단위 또는 변수 단위로 실행 시키면서 메모리에서 일어나고 있는 일을들 확인 할 수 있는 프로그램이다. 그 중 가장 유명한 디버거로는 UNIX의 GDB가 있다. 다음의 링크에는 GDB에 관한 보다 자세한 온라인 문서가 있다(documentation for GDB online), 또는 man 페이지에서 보다 빨리 GDB에 대한 정보를 얻을 수 있을 것이다. Starting GDB GDB를 사용하기 위해서는 컴파일 시에 -g 플래그를 사용하여야 한다. $ gcc -g trees.c ※ c++ 사용자라면 g++ -g trees.cpp 라고 해도 된다. 위와 같은 작업 후엔 a.out 이라는 실행 가능 파일이 생성 된다(만일 -o 플래그로 다른 이름을 줄 수도..
[Visual Studio] Break point 버그 없는 프로그램을 만드는 것이 가장 좋은 방법이긴 하지만 현실적으로 처음 부터 그런 것을 만든다는 것은 디버거에 대한 모독이며 여지껏 나왔던 디버깅 관련 책들에 대한 도전이다. 말이 이상하긴 하지만 디버깅이 프로그래밍에서 빠져서는 안되는 중요한 요소라는 것을 강조하고 싶은 것이니 대충 '디버깅은 중요하다' 정도로 이해하고 넘어 가도록 하자. 이렇게 중요한 디버깅을 함에 있어서 Visual studio는 상당히 도움되는 툴들을 제공하고 있는데 그 중에 제일미로 꼽을 수 있는 것이 바로 '브레이크 포인트(Break point)'다. 여기 와서 브레이크 포인트가 뭐냐고 묻는다면...나도 할 말이 없다. 그냥 브레이크 포인트는 알고 있고 대충 visual studio에서 제공하는 기본적인 디버깅 관련 툴들은..
vim Undo & Redo undo : u redo : ctrl + r
개발자를 위한 .vimrc 설정 1. tab은 4칸. space가 아닌 실제 tab을 사용 ※ tab을 space로 사용하는 것은 Makefile을 만드는 경우에는 찾기 힘든 오류의 원인이 된다 2. make 시 c 파일의 경우 Makefile 이 없으면 gcc를 불러줌 3. make 시 cpp 파일의 경우 Makefile 이 없으면 g++를 불러줌 4. make 시 java 파일의 경우 Makefile 이 없으면 javac를 불러줌 5. 파일을 열었을 때 지난번 편집했던 곳으로 커서를 맞춰 줌 6. 함수 이름을 중간까지만 작성하고 을 입력하면 위에 이미 사용된 함수들 중 한 가지가 자동으로 completion 7. : save and make 8. : make 후 next error로 이동 9. : make 후 prev error로 ..
XML - Content model Content model이란 complex type에서 엘리먼트들을 표현하는데 있어서 어떠한 방법으로 표현 할 수 있을지에 대한 모델을 제공하는 것이다. 기본적으로는 : 에서 ... 가 Content model을 나타내는 엘리먼트라고 하며, 그에 포함되어 있는 자식들을 일컬어 엘리먼트 그룹이라고 한다. 가장 먼저 sequence 엘리먼트에 대해 설명을 하자면 : sequence엘리먼트는 그룹에 포함 되어 있는 자식 엘리먼트들을 minOccurs 와 maxOccurs 를 이용해 표현 될 수 있는 개수에 대한 제약을 걸 수 있다. 하지만 그룹에 포함되어 있는 엘리먼트들이 schema에 표시된 것과 동일한 순서로 xml 파일에서 표시 되어야 한다. 그 외에도 group, choice, all 과 같은 grou..

반응형