- Published on
노마드코더 북클럽 실용주의 프로그래머 TIL 세번째
- Authors
- Name
- Gibo Ryu
- @ryugibo
2022년 3월 23일 TIL
오늘 TIL 3줄 요약
- 일반 텍스트를 활용하자.
- 현재에 만족하지 말고 생산성을 올릴 수 있는 기능(셸 스크립트, IDE의 확장 등)을 찾고, 만들어 쓰자.
- 생산하는 모든 것에 VCS를 적용하자.
오늘 읽은 범위
- 3장. 기본 도구 (128/477 ~ 169/477)
책에서 기억하고 싶은 내용을 써보세요.
- 실용주의 프로그래머로서 우리의 기본 재료는 나무나 쇠가 아니라 지식이다. (130/477)
- 모든 소프트웨어는 작성되자마자 레거시가 된다. (132/477)
- 언제나. 혼자서 한 주짜리 프로젝트를 진행하는 경우일지라도, 나중에 '버리기로 한' 프로토타입일지라도, 심지어 여러분이 작업하는 것이 소스 코드가 아닐지라도, 모든 것을 버전 관리 아래에 둬라. (146/477)
- 기술의 전당에서는 남을 비난하기보다 문제를 고치는 데에 집중해야 한다. (151/477)
- 디버깅에서 이진 분할 활용
- 중간 즈음에서 스택 프레임을 하나 골라서 값이 정상이지 확인한다. 정상이라면 그 위의 프레임들을 확인해야 하고, 아니라면 그 밑의 프레임들을 확인해야 한다. 다시 이진 분알을 반복한다. (157/477)
- 데이터 세트를 둘로 나누고, 각각을 프로그램에 넣었을 때 문제가 발생하는지 살펴보라. 문제가 발생하는 가장 작은 데이터 세트를 만들 때까지 나누기를 반복하라.(157/477)
- 현재 릴리스에서 실패하는 테스트를 만들어라. 문제가 없었던 버전 중 가장 최근 버전과 현재 버전 사이에서 중간 정도에 위치한 릴리스를 골라라. 테스트를 수행한 수, 결과에 따라 어느 쪽을 탐색할지 골라라. (158/477)
- 발굽 모양을 보면 말을 생각해야지 얼룩말부터 떠올리지 말라. OS는 아마 망가지지 않았을 것이고,
select
도 아마 괜찮을 거다. (160/477) - 놀라운 버그를 마주쳤을 때, 단순히 그걸 고치는 것을 넘어서 왜 이 문제가 더 일찍 발견되지 않았을까 생각해 봐야 한다. 버그를 미리 잡을 수 있도록 단위 테스트나 다른 테스트를 수정할 필요가 있는지 고민해 보라.(162/477)
- 엔지니어링 일지를 남겨 보라. 파일이나 위키말고 종이를 사용하라. 글씨를 쓰는 것은 키보드를 두드리는 것과는 다른 무언가 특별한 것이 있다. 일단 한 달만 써 보고 어떤 이득을 얻었는지 살펴보라.(168/477)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 일반 텍스트로 된 데이터가 수명이 없다는 부분은 너무나 공감하는 내용이다. 아무리 정돈되더라도
json
,yaml
,toml
은 한눈에 알아보기 어려운 경우가 종종있다. - 주석으로 달린 짧은 내용이지만
모든 소프트웨어는 작성되자마자 레거시가 된다.
.. 맞다. 히스토리도 소실된 몇 년 묵은 낡은 코드도 어제 내가 만들어서 올린 코드도 모두 레거시다. - 디버깅에 이진분할은 활용하는 경우는 보통 그 단계까지 가기 전에, 호출 스택이나 데이터를 펼쳐서 살펴보다가 버그 원인을 찾은 경우가 많았는데 살펴보기 전에 이진분할을 하면서 찾아나갔으면 더 빨리 찾았을까..? 잘 모르겠다.
- 엔지니어링 일지는 써보고 싶은데 막상 써보려고하면 그냥 낙서만 남을 뿐 그 이상도 이하도 아닌 것 같다. 얼마 전에도 몇달 전에 메모했던 내용을 다시 살펴봤는데 A라고 써놓은건지 B라고 써놓은건지 명확하지 않아서 결국 다시 관련 내용을 처음부터 확인하기도 했다.
- 현재 개인적으로는
git
, 업무는perforce
로 하고있어서 방식이 다른 두 VCS를 모두 사용하고 있는데, 오직 프로그래머 입장에서 보기에는git
이 편한것이 사실이다. 이전 직장에서는gitlab
을 적극 활용해서issue
,merge request
,gitlab ci
를 모두 활용해서 코드 리뷰부터 테스트까지 통과 해야main
(당시엔master
) 브랜치에 내용을 반영되었다. 반면에 지금은 코드 리뷰도 없이 올리고 있다...