////
Search
Duplicate
🌇

30. 프로그래밍 도구

인간의 가장 좋은 친구는 반려견이고 개발자의 가장 좋은 친구는 훌륭한 도구다.

1. 설계 도구

설계 도구는 설계 다이어그램을 만드는 그래픽 도구가 주요하다.

2. 소스코드 도구

편집

IDE
다중 파일 문자열 검색 및 바꾸기
차이 비교 도구
병합 도구
소스코드 정돈 도구
인터페이스 문서화 도구
템플릿
참조 도구
클래스 계층 구조 생성기

코드 품질 분석

까다로운 문법 및 의미 검사기
메트릭 보고 도구

소스코드 리팩토링

리팩토링 도구
재구성 도구
코드 변환 도구

버전 관리

다음 경우에 버전 관리 도구를 사용하면 소프트웨어 버전을 적절히 다룰 수 있다.
소스코드 제어, 프로젝트 문서 버전 관리, 요구사항 코드

데이터 사전

데이터 사전은 주로 데이터베이스 스키마를 다룬다.

3. 실행 코드 도구

코드 생성

컴파일러와 링커
빌드 도구
코드 라이브러리
코드 생성 마법사
설정과 설치
전처리기

디버깅

컴파일러 경고 메시지, 테스트 더블, Diff 도구, 실행 프로파일러, 추적 모니터

테스트

XJunit 같은 자동화된 테스트 프레임워크
자동화된 테스트 생성기
테스트 케이스 기록과 실행 유틸리티
커버리지 모니터
심볼릭 디버거
Diff 도구
비계법

코드 튜닝

실행 프로파일러
프로그램이 실행되는 동안 코드를 감시한 후 각 명령문의 실행 횟수나 각 명령문을 실행하는 데 걸린 시간 또는 실행 결로를 말해준다.
어떻게 작동하는지, 가장 문제가 될 만한 곳은 어딘지, 그리고 어느 코드의 성능을 개선해야 하는지 알려준다.
어셈블러 소스와 디스어셈블러

4. 도구 지향적인 환경

몇몇 환경은 다른 환경보다 도구 지향적인 프로그래밍에 훨씬 적합하다.
UNIX 환경은 grep, diff, sort와 같이 유기적으로 잘 작동하는 재밌는 이름의 작은 도구를 잘 모아둔 것으로 유명한다.

5. 자신만의 프로그래밍 도구 개발

프로젝트에 특화된 도구

데이터 파일의 품질을 검증하기 위해 특별한 종류의 테스트 데이터를 만드는 도구나 아직 존재하지 않는 하드웨어를 흉내내느 도구가 필요할 수 있다.
프로젝트의 계획을 세울 때는 필요한 도구를 생각하고 그러한 도구를 작성하는데 시간을 충분히 할애해야 한다.

스크립트

반복적인 작업을 자동화하는 도구다.
5자 이상의 문자열을 하루에 몇 번 이상 반복해서 입력하고 있다면 그것이 레이아웃 파일이나 스크립트로 만들 수 있는 좋은 예시다.

6. 프로그래밍 도구에 대한 환상

도구가 계속 변화하는 이유는 좋은 도구의 도움을 받더라도 본질적으로 프로그래밍은 어렵기 때문이다.
아무리 좋은 도구들이 만들어지더라도 개발자들은 복잡한 현실 세계와 싸워야할 것이다.
순서와 의존성, 예외에 대해서 정확하게 생각해야 하고 갈팡질팡하는 고객을 상대해야 한다.
항상 해결되어야 할 현실 세계 문제와 그러한 문제를 해결하기 위한 컴퓨터 사이를 연결해줄 수 있는 사람이 필요하다.

요점 정리

개발자들은 때로는 수년 동안 간과하고 있다가 가장 강력한 도구를 발견하기도 한다.
좋은 도구를 사용하면 삶이 더 편해진다.
편집, 코드 품질 분석, 리팩토링, 버전 관리, 디버깅, 테스트, 코드 튜닝에 사용할 수 있는 도구가 있다.
프로젝트에 종속되는 특수한 목적을 가진 도구를 많이 만들 수 있다.
좋은 도구가 소프트웨어 개발에서 지루한 작업을 줄여줄 수는 있으나 프로그래밍에 대한 본질적인 필요성을 없앨 수는 없다.
그것들이 프로그래밍이라는 형태를 새로이 만들어도 그 본질에는 변함이 없다.