오늘 TIL 3줄 요약
- 각 도구마다 개성이 있기 때문에 거기에 걸맞게 다루어라. - 특정 IDE만 고집하지 마라.
- 명령어 셸의 힘을 이용하라.
- 디버깅 - 단위 테스트 또는 다른 테스트의 중요성
TIL (Today I Learned)
2022.03.23
오늘 읽은 범위
3장 기본 도구
책에서 기억하고 싶은 내용을 써보세요.
자신의 도구 상자에 주기적으로 뭔가를 추가하게 될 것을 예상하라. 더 나은 방법 찾기. => IDE 가 갖는 한계를 넘어서야 한다.
지식을 일반 텍스트(plain text)로 저장하라.우리가 지식을 저장하는 최고의 포맷은 일반 텍스트이다. => 우리가 포맷을 잘 모르더라도 파싱할 수 있기 때문. => 일반 텍스트를 버전 관리 시스템에 보관하면 변경 사항 관리에 용이하다. (책에서는 블록체인 기반 시스템에서도 일반 텍스트는 살아남을 거라고 예측함.)
GUI의 한계를 보완하는 좋은 방법은 셸에 익숙해지는 것이다.=> 생산성 높이기.
: 색깔 조합 설정
: 프롬프트 설정
: 별칭(alias) 만들어 작업을 단순화 하기
ㄴ update와 upgrade 순서가 헷갈린다면 :
=> alias apt-up = 'sudo apt-get update && sudo apt-get upgrade'
ㄴ 삭제할 때 확인작업 거치도록 하려면 :
=> alias rm = 'rm-iv'
: 명령어 자동 완성
에디터를유창하게 쓸 수 있게 하라.=> 시간 절약. 자동 반복 줄임.
언제나 버전관리 시스템을 사용하라.
: 소스코드가 아닐지라도 모든 것(각종 문서, 전화번호 목록, 외부 업체에 보내는 메모, 로그 파일 등등 )을 버전관리 시스템에 저장한다.
ㄴ 언제든지 roll back (되돌리기) 가능.
ㄴ 브랜치 사용하기 => 다른 브랜치와 격리와 병합(merge, pull request)을 이용하여 여러 사람이 하나의 브랜치에서 함께 작업할 수 있다.
ㄴ 별도 서버를 두지 않아도 되지만, 분산하여 협업하는 것보다 중앙 저장소를 두는 방식을 검토해 보는게 좋다. => 많은 확장 기능을 이용할 수 있기 때문.
디버깅 전략
: 테스트를 작성하는 행위가 해결책을 알려준다.
: 옆에 종이와 펜을 두고 메모하면 도움이 될 때가 많다.
: 이진 분할(binary chop) 방법보다 분할 정복(devide and conquer) 방식이 버그 찾는데 더 빠르다.
ㄴ 현재 릴리스에서 버그 발생할 때.
중간 정도에 위치한 릴리스를 골라라.
테스트를 수행한 후 결과에 따라 어느쪽을 탐색할지 골라라. 이 과정을 반복하여 문제를 찾는다.
ㄴ 거대한 스택 트리이스에 프레임이 64개라면 이 방법을 사용하여 6번 안에 답을 찾을 수 있다.
: 소거법 OS나 컴파일러 혹은 외부 제품에 버그가 있을 가능성보다 내가 개발하고 있는 애플리케이션의 코드에 버그가 존재할 가능성이 훨씬 더 크다.
: 업그레이드를 고려할 때 일정을 면밀히 살펴라.
ㄴ OS나 컴파일러 혹은 외부 제품, API 등 버전이 바뀌면 코드가 완전히 쑥밭이 될 수 있다. 따라서 새로운 버그 생길 가능성이 있음.
: 버그를 미리 잡기 위해 단위 테스트나 다른 테스트를 수정할 필요가 있는지 고민해 봐라.
ㄴ 버그를 고치는 데 시간이 오래 걸린다면 고민하기.
ㄴ 더 나은 테스트 훅 만들거나 로그 파일 분석기 이용하기.
텍스트 처리하기. => 어려운 변환 작업 등을 하기 위해 방법 익히기.
엔지니어링 일지 작성하기 => 기억보다 메모하는게 믿을만 하다. 기록하면 일의 순서대로 현재 작업에 집중 가능 등등
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.
역시 셸 명령어를 익숙하게 다뤄야 겠다고 다시 다짐한다. 단위 테스트 코드 습관을 길러야 하는 것도.
오늘 읽은 다른사람의 TIL : https://www.notion.so/Assignment-04-984567452e2247e1af668fc478048c43 혜원님
''실용주의 프로그래머' 리뷰' 카테고리의 다른 글
실용주의프로그래머 7일차 . 5장 구부러지거나 부러지거나 (0) | 2022.03.27 |
---|---|
실용주의 프로그래머 6일차. 실용주의 편집증 (0) | 2022.03.25 |
실용주의 프로그래머 3일차. 2장 실용주의 접근법 (0) | 2022.03.23 |
실용주의 프로그래머 2일차. 서문~1장 실용주의 철학 (0) | 2022.03.20 |
실용주의 프로그래머 책 구입 (0) | 2022.03.18 |
댓글