본문 바로가기
프로그래밍/Code Craft

[2부 코드의 비밀스러운 일생] Chapter7 프로그래머의 도구 상자

by Ohdumak 2017. 10. 28.
728x90

훌륭한 기술자로 만드는 것은 이런 도구의 사용이다.

멋진 코드를 다듬어내기 위해서는 숙련된 기술자, 훌륭한 , 코드를 다듬는 방법의 마스터가 필요

프로그래밍은 정말로 툴이 없으면 되는 분야

그럼 eclipse 무슨 IDE 만들었을까?

 

소프트웨어 툴이란?

프로그램을 빌드하는 프로그램

복잡성

아주 특정한 작업을 수행하는 것부터 전체 프로젝트에 관련된 것까지

사용 빈도

계속 사용되고, 필요할 엄청난 가치가 있다

인터페이스

예쁜 GUI 혹은 명령행 인터페이스

통합

그래픽 통합 개발 환경

비용

무상에서 유상까지

품질

 

걱정을 해야 하지?

툴은 우리가 일을 있게 만들어줄 뿐이다.

적절한 일에 적절한 툴을 적용할 아는 것도 능숙한 프로그래머가 되기 위한 조건 하나

생활을 편하게 만들 경우에만 툴을 사용하자

 

파워

주변에 어떤 툴들이 있는지 알아두는 것이 중요하다

새로운 툴을 구했으면 그것을 시험해 보고 배우는 시간을 들일 각오를 하자

툴로 무엇을 있는지 알아둬라

어떻게 조종하는지 배워라

툴의 능력을 이용하는 방법과 상호 작용하는 방법을 알게 되면, 단계 높은 방식으로 툴을 사용 있다

어떤 일에 좋은지 알아둬라

sed(stream editor), yacc(파서 생성기) 알아두기

제대로 작동하는지 체크하라

라이브러리는 버그를 숨기고 있다. 머리카락을 쥐어뜯기 전에 눈에 띄는 고장의 체크 방법부터 배워라

많은 툴을 찾을 분명한 루트를 확보하라

새로운 버전이 언제 나오는지 알아내라

당신의 툴이 버전에 뒤떨어지지 않게 하고, 업그레이드는 신중하게 하자

 

어느 툴을 선택할까?

소스 편집

소스 코드 에디터: 코드 에디터의 선택은 극히 중요하다

소스 조작 : 유닉스 철학의 특징은 작은 명령행 툴들을 모아서 하나의 커다란 모음을 만드는

diff, sed, awk, grep, find/locate, sort, paste, join, cut

소스 내비게이션

리비전 컨트롤

소스 코드 생성

소스 뷰티파이어: 소스 코드를 동질적인 포맷으로 만들고, 공통분모에 해당하는 균질적인 레이아웃을 만드는

코드 구축

컴파일러

링커: 컴파일러가 생성하는 모든 중간 오브젝트 파일들을 가져다가 하나로 붙여서 실행 가능한 코드 덩어리로 만듦

빌드 환경: 빌드 작업의 간소화를 위해서 autoconf automake 사용

테스트 툴체인: 코드 구축 툴이라는 사실! 디버깅 툴이 아니다. 신뢰할 있는 코드를 구출하기 위해서는 코드를 작성하면서 테스트 하는 것이 유일한 방법이다.

디버깅 조사용

디버거: 개발을 하다가 프로그램이 의외의 동작을 그것을 추적하는 시간을 절약해 준다.

프로파일로: 작동 중인 코드 구간의 실행 시간을 재고, 보틀넥을 식별

코드 밸리데이터

측정 : 코드의 품질을 통계적으로 평가한 결과를 산출

역어셈블러

결함 추적: 품질 보장을 위해서 아주 중요한

언어 지원

언어: 언어 자체도 , 대여섯 정도의 언어를 배워 두자

런타임과 인터프리터

컴포넌트와 라이브러리: C++ STL

밖의 잡다한 툴들

문서화

프로젝트 관리

 

사용하는 툴셋을 의식적으로 평가해 보자

올바른 사용방법을 정말로 알고 있는가?

가지고 있어야 중에서 누락된 것은 없는가?

가지고 있는 툴들을 최대한 활용하고 있는가?


728x90

댓글