책책책book/실용주의프로그래머

[실용주의 프로그래머] 스터디 5주차_3강 기본 도구

햄❤️ 2022. 5. 30. 13:41
728x90

✏️ 범위: 103p~144p

사용하는 도구는 재능을 증폭한다. 생산성을 높여준다. 도구의 사용법을 배우는데 시간을 투자하라. 도구가 손의 연장이 될 것이다.

 

Topic 16. 일반 텍스트의 힘

  • 프로그래머의 기본 재료는 지식이다. 이 지식을 설계, 구현, 테스트, 문서로 표현한다. 이 중 최고의 포맷은 일반 텍스트(plain text)
  • HTML, JSON, HTTP, SMTP 등이 모두 일반 텍스트이다.
  • 왜 일반 텍스트를 쓰면 좋은가? 
    1. 사람이 읽을 수 있는 형태는 계속 쓰일 확률이 높다. 지원 중단될 리스크가 적다.
    2. 대형 어플리케이션을 설치해도 설정 파일을 버전 관리 시스템에 넣는다면 기존 도구를 활용할 수 있다.
    3. 특별한 도구 없이 더 쉽게 테스트가 가능하다.

 

Topic 17. 셀 가지고 놀기

  • GUI만을 사용하는것은 권장하지 않는다.  일반 작업을 자동화할 수 없고, 매크로 도구를 만들기 어렵다.
    GUI의 장점은 WYSIWYG(What You See Is What You Get) but 단점은 WYSIAYG(What You See Is All You Get)
  • 별칭(alias)를 만들어 작업을 단순화하라. 

 

Topic 18. 파워 에디팅

  • 에디터를 유창하게 쓰면 에디터 사용법을 생각하지 않고 자유로운 프로그래밍에 도움이 된다. 
  • 아래와 같은 기능들이 유창해지면 좋다.
     단어, 문자 단위로 이동하기, 자동 들여쓰기, 주석, 실행 취소 및 복구, 에디터 창 쪼개기, 특정 줄 번호 이동, 컴파일 오류 표시
  • 단축키를 외우려 하지 말고 반복을 통해 익숙해져라
  • 마우스나 트랙패드를 치워라. 키보드로만 에디터를 사용해보라(1주일만..)

 

Topic 19. 버전 관리(VCS = Version Control System)

  • 버전 관리 시스템은 일종의 거대한 "실행취소" 키와 같다. 
  • 변경사항 추적이 가능하다. 버그 추척, 감사, 품질관리에 유용하다. 
  • 팀으로 일할 때는, branch를 이용하여 서로의 작업을 방해하지 않고 함께 작업할 수 있다. 
     - 스터디 팀원분은 jira 이슈의 numbering으로 이슈마다 branch를 항상 따신다고 한다!! 

 

Topic 20. 디버깅

  • 디버깅은 단지 문제 풀이일 뿐이다. 비난 대신 문제를 해결하는데 집중해야한다.
  • 당황하지말고 눈 앞에서 몇단계 떨어져서 문제를 보려고 하자. 근본 원인을 찾으려고 노력하라.
  • 경계 조건과 실제 최종 사용자의 사용 패턴을 모두 테스트해야한다. 
  • 디버깅의 시작은 버그를 재현하는 것이다. 
  • 스택 트레이스가 크다면 스택 트레이스를 이진 분할하여 접근하라.
  • 문제가 없었던 버전 중 가장 최근 버전과 현재 버전 사이에서 중간 정 도에 위치한 릴리스를 골라라. 테스트를 수행한 후결과에 따라 어느 쪽을 탐색할지 고른다.
  • 놀라운 버그를 마주하면, 왜 이 문제가 더 일찍 발견되지 않았을까를 고민해야한다.

     🥺 팀원들의 tip: 제일먼저 중간지점에서 디버깅을 해라!! 디버깅 속도가 빨라진다.

 

Topic 21. 텍스트 처리

  • 텍스트 처리 언어를 하나 익혀라. (루비, 파이썬, 펄)

     🥺 텍스트 처리 언어가 뭐지? 

 

Topic 22. 엔지니어링 일지

  • 회고를 쓰는 것, 하던 일을 돌아보면서 새로운 발상이나 더 좋은 아이디어를 얻을 수 있다. 
728x90