모든 프로그래머들이 "툴"을 사용할 것입니다. 정말 수많은 툴들이 있죠. 그런데, 그 툴들에 대해 깊이 생각해보신 적이 있으신지요?
우리에게 도구를 주십시오.
그러면 그 일을 완수하겠습니다.
- 윈스턴 처칠 경
서투른 목수가 연장 탓을 한다는 얘기가 있는데요. 역시 그 안에 진실이 담겨 있습니다.
여러분은 여러분이 사용하는 연장에 대해 얼마나 알고 계시나요? 여기 툴에 대한 생각만으로도
좋은 프로그래머와 나쁜 프로그래머를 나누는 기준을 한번 세워보았습니다.
|
좋은 프로그래머는
- 지루한 일을 하고, 하고, 또 하는 식으로 반복하기보다는, 적절한 툴의 사용 방법을 배우는 편을 택하려고 합니다.
- 여러 가지 툴체인(toolchain)의 모델을 알아두고, 각각을 힘들지 않게 사용할 수 있습니다.
- 자기의 생활을 더 편하게 만들기 위해서 툴을 사용합니다. 하지만 툴의 노예가 되지는 않습니다.
- 자기가 사용하는 모든 것을 툴(교체 가능한 유용한 도구)로 봅니다.
- 생산성이 높습니다. 왜냐하면 툴이 제2의 천성이 되었기 때문입니다. |
나쁜 프로그래머는
- 몇 가지 툴의 사용 방법을 알고 있지만, 모든 문제를 그 툴의 관점에서만 바라보려고 합니다.
- 새로운 툴을 배우기 위해서 시간을 보내는 것 을 꺼려합니다.
- 어떤 개발 환경을 사용하기 시작하면, 그것을 종교처럼 받들고, 절대 다른 것의 사용을 시도하거나 검토조차 하지 않으려 듭니다.
- 가치 있는 새로운 툴을 마주쳐도 자신의 툴박스에 추가하지 않습니다.
|
여러분은 어디에 속해있는지요?
한번 다음 그림을 보세요~~.
ㅋㅋ 혹 자기 툴을 탓하고 계시지는 않겠죠?
다음의 항목들에 한번 답을 내보세요~~. ^^
1. 개발팀에 있는 모든 사람들이 똑같은 IDE를 사용하는 것과 각자 자기한테 맞거나 선호하는 IDE를 선택하는 것 중 어느 것이 더 중요할까요?
2. 모든 프로그래머가 자기 재량에 따라서 보유할 수 있는 최소한의 툴 집합은 무엇일까요?
3. 명령행 툴과 GUI 기반의 툴 중에 어느 것이 더 파워풀할까요?
4. 프로그램 형태가 아닌 구축 툴도 있을까요?
5. 툴이 갖추어야 할 가장 중요한 특성은 무엇일까요?
a. 상호 운용성
b. 유연성
c. 커스텀화 가능성
d. 파워
e. 사용과 습득의 용이성
아래 질문들에 대해서 여러분은 어떻게 하고 계십니까?
1. 당신의 도구 상자(툴박스)에 있는 일반적인 툴로는 어떤 것들이 있습니까? 매일매일 사용하는 것은 어느 것입니까? 일주일에 몇 번만 사용하는 것은 어느 것입니까? 이따금씩만 필요한 것은 어느 것입니까?
a. 당신은 그런 툴들의 사용 방법을 얼마나 잘 알고 있습니까?
b. 당신은 그 모든 툴들을 최대한 활용하고 있습니까?
c. 당신은 툴의 사용 방법을 어떻게 배웠습니까? 툴을 사용하는 스킬을 향상시키기 위해서 시간을 보낸 적이 있습니까?
d. 그것이 당신이 사용할 수 있는 최고의 툴들이었을까요?
2. 당신의 툴은 얼마나 최신입니까? 최첨단 버전이 아니면 문제가 된다고 생각합니까?
3. 당신은 (비주얼 개발 환경 같은) 통합된 툴셋을 선호합니까, 아니면 불연속적인 툴체인을 선호합니까? 당신이 덜 선호하는 접근 방법에는 어떤 이점이 있을까요? 당신은 이 두 가지 작업 방식에 대한 경험이 얼마나 많이 있습니까?
4. 당신은 디폴트 댄(Default Dan)이거나 트위커 탐(Tweaker Tom)입니까? 다시 말해서 에디터의 디폴트 세팅을 그대로 받아들입니까, 아니면 완전히 때려눕히는 식으로 커스터마이징을 합니까? 어느 것이 더 “나은” 접근 방법일까요?
5. 당신은 소프트웨어 툴에 대한 예산을 어떻게 잡습니까? 툴이 그 비용 만큼의 가치가 있는지 어떻게 압니까?
이상, 툴들에 대한 생각이었습니다.
참고로 위의 내용은 <Code Craft: 코드의 기술>이라는 책에서 일부 내용을 발췌하였습니다.
곧 출간됩니다~~~. 9월말에 추석이 껴서,,,10월초쯤,,,,,,,,,,^^
이 글의 트랙백 주소 :: http://blog.hanb.co.kr/trackback/13