오늘 읽은 범위
- 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 |
댓글