C언어를 배우고 실무에 적용하던 무렵 대기업 전자 회사에서 운영체제를 담당하는 한 개발자를 만난 적 있었다. 기반 기술이 있고 경험도 많다고 자신 만만해하던 때였다. 어깨너머로 그의 작업 광경을 구경하는데 내 눈앞에 신기한 모습이 펼쳐졌다. 어찌 보면 가장 원시적이라 할 수 있는 vi 에디터로 프로그램에서 발생한 문제를 찾아 가는데, 이리저리 코드의 호출 그래프를 따라 움직이는 것이 환상적이었다. 뭔가 단축키를 누르는 것 같은데 그 원리는 도통 알 수 없었다. 그 사람을 붙들고 물어보니 CTags란 도구를 활용해서 프로그램을 분석하여 태그 정보를 만들어 놓으면 vi(엄밀히 말하면 vim) 에디터에서 해당 정보를 기반으로 함수나 변수가 정의된 곳으로 이동시켜주는 원리였다. 물론 비주얼 스튜디오나 이클립스를..
특정 폴더나 해당 폴더를 포함한 하위 폴더 전체를 검색해서 특정 문자열을 가진 파일과 그 위치를 찾아내는 것은 개발자뿐만 아니라 일반 사용자들에게 종종 발생하는 필요이다. 예를 들어 인기 있는 APM(Apache, PHP, MySQL) 패키지인 XAMPP에서 특정한 값을 조회하거나 설정하는 모든 파일을 찾고 싶은 경우이다. 소스 코드가 될 수도 있고 설정 파일일 수도 있지만 전체 파일을 뒤져서 해당 값을 가지고 있는 파일을 모두 찾고 각 파일 내 라인 위치를 알려준다면 너무도 작업이 쉬워질 것이다. 물론 검색 결과를 선택하면 바로 해당 파일을 조회나 편집할 수 있으면 금상첨화일 것이다. 바로 이런 기능을 수행할 수 있는 것이 노트패드++의 "파일에서 찾기" 기능이다. 물론 이런 기능을 전문적으로 수행하는..
개인적으로 프로그램을 제작 하거나, 오픈 소스로 자유롭게 코딩하는 경우가 아니라면 대부분의 프로젝트나 개발조직에서는 프로그램 제작 지침이나 표준을 만들어서 개발자들로 하여금 상호 약속한 형식에 맞게 코드를 작성하도록 가이드 하는 경우가 있습니다. 대부분의 개발자들이 짜증내며 힘들어 하는 일이지만, 협업의 효율성을 높이고, 코드의 가독성(Readability)을 향상시키며개발자 스스로에게도 디버깅을 용이하게 하는 장점이 있습니다. 물론 제한적이기는 하지만 일단 개발자는 가이드로 부터 자유롭게 개발하고, 디버깅까지 수행한 다음 Code Beautifier를 통해서 일괄 정리하는 방법이 있기는 합니다. 이번 포스팅에서는 일단 약속한 코드 작성 표준에 따라 코딩하는 과정에서 한줄에 너무 긴 코드 작성이 되지 않..
리눅스나 유닉스 환경에서 개발해본 경험이 있는 개발자라면 grep 툴을 vim, ctags와 같은 도구와 더불어 개발자에게는 없어서는 안될 필수 도구로 뽑는데 대부분 이의가 없을 것입니다. grep은 특정 텍스트 스트링이나 텍스트 조합 형태(정규식 적용 스트링)를 포함하고 있는 파일을 검색하기 위한 도구로 예를들어, 소스 코드에서 #define으로 시작하는 모든 행을 추출 한다거나,function function_name( ) 형태로 기술되어진 모든 함수 정의 문장을 추출한다거나,변수명 aaa를 사용하는 모든 소스 코드명을 추출하는 등의 용도에 grep 도구를 사용할 수 있습니다. 그런데, 윈도우 환경에서 grep을 사용하려면 윈도우 환경에서 리눅스 콘솔 명령을 그대로 사용할 수 있도록 해주는 cygwi..
프로그램 개발자가 프로그램을 분석하는 과정에서 제일 필요한 것은 구문을 분석해서 함수가 정의된 곳을 찾아 가거나 지정한 변수나 함수를 호출하는 모든 곳을 찾는 기능도 유용하지만 특정 디렉토리에 있는 모든 파일에 대해서 특정 텍스트를 검색하는 기능은 필수 도구라 해도 과언이 아닙니다. 리눅스/유닉스에서는 grep 도구를 통해서 간단하게 사용할 수 있지만 윈도우의 경우에는 개발자 나름의 도구를 사용해야 합니다. 노트패드 ++(이하 NPP)에서는 찾기>파일에서 찾기 메뉴나 Ctrl+Shift+F 단축키를 통해서 사용할 수 있습니다. 개발자가 여러 파일에서 특정 텍스트를 찾는 경우 찾아진 결과를 일목요연하게 볼 수 있는 기능도 중요하지만 결과에서 특정 파일의 특정 라인 위치로 간편하게 이동할 수 있는 연동 기능..
노트패드++(이하 NPP)를 사용하는데 있어 별다른 설정없이 간편하게 설치하여 사용할 수도 있지만(노트패드++ 한글 사용 환경 준비하기 참조) NPP 사용 환경과 관련한 몇가지 중요한 설정에 대해서 알아두면 여러가지로 효과적인 작업에 도움이 될 수 있습니다. 설정>환경설정 메뉴를 통해서 설정 창을 위의 그림과 같이 띄우고 "일반" 섹션을 선택하면 NPP 창의 기본 구조에에 대한 설정을 할 수 있습니다. 한국어를 기본 언어로 설정하고 다른 언어는 모두 삭제했기 때문에 "표시 언어"에서 선택할 다른 언어는 발견할 수 없습니다. "도구 모음" 상단의 아이콘으로 표시하고 있는 기능 모음을 지칭하는 것으로 아이콘의 크기를 조정할 수 있을 뿐만 아니라 "숨기기"를 선택하면 사용자 인터페이스에서 도구모음이 보이지 않..
텍스트 편집기에서 다중창을 사용할 수 있는지 없는지는 생산성에 상당한 영향을 비칩니다. 오랜 기간 발전을 거듭해온 노트패드++(이하 NPP)도 다중창 또는 창 분할 기능이 있습니다. 창분할 관련 기능은 상단 탭을 우측 마우스 버튼을 클릭하여 컨텍스트 메뉴를 사용합니다. 같은 파일을 양쪽 창에 동시에 보면서 작업하고 싶을 경우에는 "분할 창으로 복사"를 선택하고 좌우 분할 창간의 이동은 "분할 창으로 이동"을 선택하면 좌에서 우로 또는 우에서 좌로 분할 창을 이동할 수 있습니다. 분할 창이 생기면 위의 그림과 같이 점선으로 표시된 "분할 크기 조정바"를 통해서 좌우 분할창의 크기를 끌어다놓기(Drag and Drop) 방식으로 조정할 수 있습니다. 또한 "분할 크기 조정바" 상하단에 있는 작은 좌우 화살표..
위의 첨부파일 링크는 아래에서 언급하는 내용들을 반영한 배포 패키지 입니다. 한국어만을 남겨두고 다른 언어들과 테마 파일을 삭제하고 아래에서 언급할 번역 적용과 폰트 설정등을 감안한 파일입니다. 다운로드 받으셔서 압축 해제하면 바로 한글 환경에서 작업할 수 있습니다. 노트패드++(이하 NPP)를 설치하고 설정>환경설정을 통해서 "한국어"를 사용자 인터페이스의 언어로 선택할 수 있는 것은 NPP 설치 폴더의 localization 폴더에 있는 korean.xml 파일이 있기 때문입니다. 위의 그림은 localization/korean.xml 파일을 NPP로 열어본 예제로 "Native-langue" 태그의 name 속성에 "한국어"로 정의되어 있는데 이 이름이 환경설정>속성창에 표시됩니다. 번역 내용을 수..