개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned) 날짜
2022. 05. 18
오늘 읽은 범위
3장. 기본 도구
책에서 기억하고 싶은 내용을 써보세요.
- Tip> 지식을 일반 텍스트로 저장하라.
- 이질적인 환경에서는 일반 텍스트의 장점이 모든 단점을 보상하고도 남는다. 모든 참가자가 공통의 표준을 사용해서 소통하도록 할 필요가 있다면, 일반 텍스트가 바로 그 표준이다.
- 명령줄은 쿼리나 기타 다른 작업을 수행하기 위해 몇 개의 명령어를 재빨리 결합하려 할 때 사용하기 좋다.
- 셀 명령어들을 결합해서 스크립트 파일(혹은 윈도우 시스템 하에서는 명령어 파일이라는 이름으로)을 만들 수 있기 때문에, 여러분이 자주 하는 일을 일련의 명령어로 자동화할 수 있다.
- Tip> 명령어 셀의 힘을 사용하라.
- Tip> 하나의 에디터를 잘 사용하라.
- 에디터 하나를 골라서 완전히 마스터하고, 모든 편집 작업에 그 에디터를 사용하라.
- 선택한 에디터가 사용하는 모든 플랫폼에서 가능한지 확인하라.
- Tip> 언제나 소스코드 관리 시스템을 사용하라.
- 디버깅은 단지 문제 해결이라는 사실을 포용하고, 그 방식으로 공략하라.
- Tip> 비난 대신 문제를 해결하라.
- 디버깅을 시작하기에 앞서서 올바른 사고방식을 갖는 게 중요하다.
- Tip> 디버깅을 할 때 당황하지 마라
- 디버깅을 할 때 근시를 조심하라. 표면에 보이는 증상만 고치려는 욕구에 저항하라. 항상 문제의 근본적인 원인을 발견하려고 노력하고 그 문제의 특정한 증상만 고치려고 하지 말라.
- 종종 프로그램이 뭘 하는지 혹은 뭘 할 것인지 알아내는 가장 쉬운 방법은 그 프로그램이 다루는 데이터를 잘 살펴보는 것이다.
- 트레이싱은 동시(concurrent) 프로세스, 실시간(real-time) 시스템, 이벤트 기반 애플리케이션 등 시간 자체가 중요한 요소가 되는 시스템에서라면 값을 매길 수 없을 정도로 귀중하다.
- 문제의 원인을 찾는데 매우 단순하지만 꽤나 유용한 기법으로, 누군가에게 그걸 설명하는 단순한 방법이 있다.
- 누군가에게 문제를 설명하게 되면 혼자 코드를 살펴볼 때는 당연히 여기고 지나갈 것을 명시적으로 이야기해야 한다. 이런 가정들 몇 가지를 발화하게 되면, 문제에 대한 새로운 통찰을 별안간 얻을 수 있다.
- Tip> 'select' 는 망가지지 않았다.
- Tip> 가정하지 마라. 증명하라.
- Tip> 텍스트 처리 언어를 하나 익혀라.
- Tip> 코드를 작성하는 코드를 작성하라
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 리눅스를 처음 접했을 때, 윈도우 환경에 익숙해진 나는 왜 검은화면에 마우스도 없이 파일복사 하려면 파일명부터 명령어 까지 일일히 작성해야 할까? 그냥 마우스로 드래그 하면 되는데~ 했던 기억이 난다.
- 단순 복사만을 봤을때는 윈도우 환경의 마우스 드래그가 편하겠지만, 필요한 파일들만(검색) 특정 폴더를 생성해서 특정 시간에 반복적으로 복사하려면 등 여러 복합적인 요구사항이 필요할 때는 명령어로 스크립트 파일을 생성 후 사용이 얼마나 편리하고 막강한지 알게 되었다.
- 이번 챕터의 주제처럼 일반 텍스트를 잘 활용하고 쉘 기능과 에디터 기능을 적절히 사용하고 그걸 가능한 자동화 생성하고 관리 하는 도구를 잘 활용할 수 있는 실용적인 습관을 항상 기억해야 겠다.