Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 3장 기본 도구
#pragmatic
2년 전
513

오늘 TIL 3줄 요약

  • 도구는 여러분의 재능을 증폭한다. 사용하는 도구로 다룰 수 없는 문제를 마주쳤다는 생각이 들면, 도움이 될 만한 뭔가 다른 것이나 더 강력한 것을 찾아보아야 한다.

  • 기본 도구 들을 언제나 곧바로 사용할 수 있도록 예리하게 유지하라.

  • 아무리 흐린 먹물일지라도 가장 훌륭한 기억력보다 낫다. 여러분의 생각과 역사를 기록으로 남겨라.

TIL (Today I Learned) 날짜

  • 2022.03.23


오늘 읽은 범위

  • 3장 기본 도구


책에서 기억하고 싶은 내용을 써보세요.

Topic 16 일반 텍스트의 힘

  • 실용주의 프로그래머로서 우리의 기본 재료는 나무나 쇠가 아니라 지식이다.

  • 우리가 만드는 일반 텍스트는 사람이 이해할 수 있어야 한다.

  • 지식을 일반 텍스트로 저장하라.

  • 사람이 읽을 수 있는 것과 사람이 이해할 수 있는 것에는 차이가 있다.

Topic 17 셸 가지고 놀기

  • 명령어 셸의 힘을 사용하라.

  • 셸에 익숙해지면 여러분의 생산성이 급상승할 것이다.

  • 별칭과 셸 함수. 맨날 사용하는 명령어에 간단한 별칭을 만들어서 작업을 단순화하라.

Topic 18 파워 에디팅

  • 에디터를 유창하게 쓸 수 있게 하라.

  • 유창해지는 것의 가장 큰 이점은 더는 에디터 사용법을 생각하지 않아도 된다는 것이다.

  • 모든 동작을 일일이 생각하면서 운전하는 초보 운전자와 의식하지 않고 차를 모든 경험 많은 운전자는 완전히 다르다.

  • 여러분의 삶을 편하게 해 주는 명령어를 배워라.

  • 유용한 기능을 새로 찾았다면 이 기능을 여러분의 몸이 기억하도록 만들어야 한다.

  • 마우스나 트랙패드를 치워라. 1주일 동안 키보드로만 에디터를 사용하라. => 타격, 충격

Topic 19 버전 관리

  • 진보라는 것은 변화와는 거리가 멀고 오히려 기억에 의존한다. 과거를 기억하지 못하는 사람을 과거를 반복할 운명이다.

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

  • 버전 관리 시스템은 소스 코드나 문서의 모든 변경 사항을 기억한다. 소프트웨어 이전 버전으로 언제든지 되 돌아갈 수 있다.

  • VSC를 사용하면 소프트웨어의 특정 릴리스를 찾을 수 있다.

  • 버전 관리 시스템을 사용하면 둘 이상의 사용자가 동일한 파일들을 동시에 작업할 수 있다.

  • 언제나 버전 관리 시스템을 사용하라.

  • VSC의 매우 강력하고 유용한 기능으로, 개발 중인 내용을 섬처럼 따로 데어 격리하는 '브랜치'가 있다.

  • 중앙 저장소가 있으면 프로젝트 업무 흐름을 원활하게 해 주는 수많은 확장 기능을 이용할 수 있다.

  • 안전하게 롤백하는 명령어를 익히자.

Topic 20 디버깅

  • 디버깅은 단지 문제 풀이일 뿐이라는 사실을 받아들이고, 그런 마음으로 공략하라.

  • 디버깅 1법칙: 당황하지 말라.

  • 실제 문제는 여러분 눈앞에 있는 것에서 몇 단계 떨어져 있고, 또 다른 여러 가지와 연관되어 있을 확률이 다분하다.

  • 자세한 정보를 충분히 얻으려면 해당 버그를 보고한 사용자가 시연하는 것을 눈으로 직접 확인해야 할 수도 있다.

  • 처음에 받은 자료 이상을 얻기 위해서 버그를 보고한 사용자를 인터뷰할 필요가 있다.

  • 경계 조건과 실제 최종 사용자의 사용 패턴 모두를 철저히 테스트해야 한다.

  • 버그를 고치는 첫걸음으로 가장 좋은 것은 그 버그를 재현할 수 있게 만드는 것이다.

  • 코드를 고치기 전 실패하는 테스트부터.

  • 그놈의 오류 메시지 좀 읽어라.

  • 디버거에서 호출 스택 위아래로 어떻게 이동하고, 스택의 지역 변수를 어떻게 확인하는 지 숙지하라.

  • 스택 프레임을 일일이 조사하는 것보다 더 빠른 방법이 '이진 분할'을 하는 것이다.

  • 문제의 크기가 조금만 커지더라도 이진 분할이 훨씬 더 빠르다.

  • 고무 오리: 그냥 누군가에게 문제를 설명하라.

  • 예상치 못한 '놀라운' 실패를 대면했을 때 자신이 세운 가정이 적어도 하나는 잘못되었다는 것을 받아들여야 한다.

  • 놀라운 버그를 마주쳤을 때, 단순히 그걸 고치는 것을 넘어서 왜 이 문제가 더 일찍 발견되지 않았을까 생각해 봐야 한다.

  • 버그를 수정하는 김에, 혹시 이것과 동일한 버그가 있을 법한 다른 코드가 있는지 살펴봐라.

  • 디버깅은 그 자체만으로도 충분한 도전 거리다.

Topic 21 텍스트 처리


Topic 22 엔지니어링 일지

  • 일지를 쓰면 좋은 점: 기억보다 더 믿을 만하다. 위대한 발상을 잊어버릴 걱정 없이 지금 하는 일에 계속해서 집중할 수 있다. 하던 일을 돌아보기에 알맞은 기회가 생긴다.

  • 엔지니어링 일지를 남겨 보라. 파일이나 위키말고 종이를 사용하라.


오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 이번 3장을 읽으면서 github의 엄청난 장점에 대해서 다시 한 번 더 생각할 수 있었고 앞으로 더 깃허브라는 버전 관리 시스템을 적극 사용해봐야겠다.

  • 파워 에디팅에 나온 마지막... 마우스나 키패드 없이 코딩을 하라는 도전 과제가 충격적이다. 아마 현재의 나로는 마우스, 트랙패스 없이 코딩하는 것은 셸로 에디터를 키는 것 부터 엄청난 시간이 걸리지 않을까 싶다ㅎㅎ 그래도 마스터하기 위해서는 도전해 볼 만한 과제인 거 같다!

  • 마지막으로 디버깅에 대해서 다른 Topic보다 많은 글을 정리했다. 지금 내게 필요한 것은 바로 디버깅이 아닐까 싶다.