본문 바로가기
실용주의 프로그래머

3장. 기본 도구

by 아토로 2022. 3. 23.

오늘 읽은 범위

  • 3장. 기본 도구

기억하고 싶은 내용

Topic 16. 일반 텍스트의 힘

우리는 지식을 설계와 구현, 테스트, 문서로 표현하며, 지식을 저장하는 최고의 포맷이 일반 텍스트(plain text)라고 믿는다.

지식을 일반 텍스트로 저장하라.
  • 지원 중단에 대한 보험
    • 사람이 읽을 수 있는 형태의 데이터와 그 자체만으로 의미가 드러나는 데이터는 다른 어떤 형태의 데이터보다 더 오래 살아남을 것이다.
  • 기존 도구의 활용
    • 버전 관리 시스템에서 일반 텍스트를 보존해 줄 것이다.

Topic 17. 셸 가지고 놀자

텍스트 파일을 다루는 프로그래머에겐 명령어 셸이 작업대이다.

명령어 셸의 힘을 사용하라
  • 자신만의 셸
    • 색깔 조함 설정
    • 프롬프트 설정
    • 별칭(alias)과 셸 함수
    • 명령어 자동 완성

Topic 18. 파워 에디팅

텍스트는 프로그래밍의 기본 원재료이므로 텍스트를 최대한 손쉽게 조작할 수 있어야 한다.

에디터를 유창하게 쓸 수 있게 하라.
  • 유창해지는 것의 가장 큰 이점은 더는 에디터 사용법을 생각하지 않아도 된다는 것이다.
  • 유창해지기
    • 같은 일을 반복하는 것을 발견할 때마다 더 나은 방법이 있는지 찾아보라.
    • 사용 중이 ㄴ에디터에 필요한 기능을 추가하는 확장 기능을 찾아보라.

Topic 19. 버전 관리

버전 관리 시스템은 일종의 거대한 ‘실행 취소' 키와 같다.

언제나 버전 관리 시스템을 사용하라.
  • 키보드로 입력하는 거의 모든 것에 대해 일상적으로 버전 관리 시스템을 사용하라.
  • 브랜치 사용하기
    • 브랜치를 사용하면 다른 브랜치로부터 격리할 수 있으므로 다른 개발자를 방해하지 않을 수 있다.
  • 프로젝트 허브로서의 버전 관리

Topic 20. 디버깅

안타깝지만 지금도 컴퓨터 시스템은 여전히 여러분이 명령하는 것을 할 뿐, 여러분이 원하는 것을 알아서 하지 않는다.

비난 대신 문제를 해결하라.
  • 남을 비난하기보다 문제를 고치는 데에 집중해야 한다.
당황하지 말라.
  • 디버깅할 때 근시안의 함정에 주의하라.
  • 항상 문제의 근본 원인을 찾으려고 노력하라.
  • 실마리 찾기
    • 버그를 보고한 사용자를 인터뷰할 필요도 있다.
    • 경계 조건(boundary condition)과 실제 취종 사용자의 사용 패턴 모두를 철저히 테스트해야 한다.
코드를 고치지 전 실패하는 테스트부터.
  • 버그가 발생하는 상황을 다른 것들로부터 분리하다 보면 어떻게 고쳐야 할지에 대한 통찰을 얻기도 한다.
그놈의 오류 메시지 좀 읽어라.
  • 로깅과 트레이싱
    • 트레이싱(tracing) 구문은 화면 혹은 파일에 출력하는 작은 진단용 메시지를 일컫는다.
    • 트레이싱 구문으로 남기는 메시지는 규칙적이고 일관된 형식이어야 한다.
  • 고무 오리
    • 그냥 누군가에게 문제를 설명해라.
가정하지 말라. 증명하라.
  • 버그를 미리 잡을 수 있도록 단위 테스트나 다른 테스트를 수정할 필요가 있는지 고민해보라.

Topic 21. 텍스트 처리

텍스트 처리 언어를 익혀라.
  • 텍스트 처리 언어를 활용하여 다양한 프로그램을 작성할 수 있다.

Topic 22. 엔지니어링 일지

  • 일지를 쓰면 좋은 점이 크게 세 가지 있다.
    • 기억보다 더 믿을 만하다.
    • 진행 중인 작업과 직접적인 관계가 없는 발상을 일단 쌓아 놓을 수 있는 곳이 생긴다.
    • 고무 오리와 같은 역할을 할 수 있다.

소감 및 생각

  • 내가 쓰고 있는 도구들을 정말 잘 활용해야겠구나 생각이 들었다. IDE, 셸 등을 사용하고는 있지만 매번 단축키나 사용 방법이 기억나지 않아서 검색해보거나, 단순 무식한 방법으로 해결한 경우가 있었다. 그렇게 넘어갈 것이 아니라 사용 방법을 확실히 인지하고 다음 상황에서도 그 방법을 사용할 수 있도록 연습을 해야 될 것 같다.
  • 고무 오리 하나 장만해야겠다.

'실용주의 프로그래머' 카테고리의 다른 글

4장. 실용주의 편집증  (0) 2022.05.19
2장. 실용주의 접근법  (0) 2022.03.21
1장. 실용주의 철학  (0) 2022.03.19

댓글