728x90
오랜 시간이 걸리는 새로운 일과 마주치면?
1. 맨손으로 힘들여 노가다를 한다.
2. 스크립트 언어를 이용해서 그 일을 자동으로 수행하는 툴을 작성한다.
3. 이미 작성되어 있는 툴을 찾기위해 여러 시간을 보낸다.
=== 잠깐동안 툴을 찾아보고 없으면 더이상 미련을 가지지 말고 간단히 스크립트 언어로 자동 수행 환경을 만들도록 하자.

새로운 툴을 발견하면?
원하는 만큼 알게될 때까지 만지작 거리지 말고 관련 문서를 정확하게 읽어보자.
읽으라고 친절히 설명서까지 만들어놨는데 쳐다보지도 않고 혼자 만지작 거리면서 모르겠다고 투정부리는 일은 하지말자.

툴에 구애받지 않는 실력을 가지는 것도 중요하지만 세상에는 툴이 엄청 많다. 똑똑한 툴을 잘 다루는 프로그래머는 더 똑똑한 프로그래머가 된다. C코드를 툴을 사용하지 않고 어셈블리어로 변환하는 사람이 있다면 정신과 상담이 필요하다.

* 어떠한 툴 들이 있는지 알아보고 어디서 구할 수 있는지 확인해보자. 지금 사용하지 않더라도 충분한 보험이 될 수 있다.

툴의 사용법
* 툴로 무엇을 할 수 있는지 알아둬라.
* 어떻게 조종하는지 배워라.
* 어떤 일에 좋은지 알아둬라. (어떤 일을 할 때 사용하면 유용한지)
* 어떤 문제점을 가지고 있는 확인하라.
* 더 많은 툴을 찾을 분명한 루트를 확보하라.
    메뉴얼, 릴리즈 노트, 온라인 지원, 툴 내부의 도움말 파일, man 페이지 등
* 새로운 버젼이 언제 나오는지 알아내라. (최신 버젼이 무조건 좋은 것은 아니다)
===== 하지만 지금 당장 할 일은 툴들의 정보를 공유하는 커뮤니티를 찾는 것일지도

소스코드 편집용 에디터를 선택할 때의 팁
* 포괄적인 문법 컬러링(여러 언어를 지원)
* 간단한 문법 체킹(강력하면 더 좋겠지만)
* 우수한 검색 / 변환 (찾기, 바꾸기 등이 앞뒤로 가능하도록)
* 키보드 매크로 기능(꽤 유용하다)
* 원하는 플랫폼에서 작동하는지(유닉스, 윈도우계열 등 작업환경에서 돌아가야 한다)

TIP 유닉스 계열에서 사용하는 소스 조작 툴
diff : 두 파일을 비교, 서로 다른 부분을 하이라이트 표시
sed : stream editor; 한줄씩 읽어서 변환하는 것을 원칙으로 하는 툴, 항목의 재정렬이나 global 검색이나 치환, 혹은 행 안에 패턴을 삽입할 때도 사용
awk : sed와 비슷한데 이건 text file을 대상으로 작업한다.
grep : 파일 내의 문자패턴을 검색
find/locate : 파일을 찾는다. 이름, 날짜, 그 밖의 기준을 가지고 검색
wc : 단어와 문자를 세는 일을 한다
sort : 원하는 정렬 기준에 맞추어 재정렬한다
paste, join, cut 등 유용한 것들 꽤 많다. 유닉스의 기본 철칙은 작은 툴들이 모여서 큰 작업을 한다는 것이다.

좋은 프로그래머
* 지루한 일을 반복하기 보다는 적절한 툴의 사용 방법을 배우려고 한다.
* 여러가지 toolchain의 모델을 알아두고, 각각을 힘들지 않게 사용할 수 있도록 한다.
* 편의를 위해 툴을 사용하지만 툴의 노예가 되진 않는다.
* 사용하는 모든 것을 교체 가능한 유용한 도구(툴)로 본다

나쁜 프로그래머
* 몇가지 툴의 사용법을 알고있지만, 모든 문제를 툴에 맞추어 생각하려고 한다.
* 새로운 툴을 배우기 위해 시간내는 것을 꺼려한다.(익숙한 것만 하려고 든다.)
* 어떤 개발환경을 사용하기 시작하면, 그것을 종교처럼 받들고 절대 다른 것의 사용을 시도하려고 들지 않는다.
* 가치있는 새로운 툴을 발견해도 자신의 툴박스에 추가하지 않는다.
728x90

+ Recent posts