개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
생각과 역사를 기록으로 남겨라.
모든 것을 버전 관리 아래에 둬라.
가정하지 말라. 증명하라.
TIL (Today I Learned) 날짜
2022년 5월 18일
오늘 읽은 범위
3장 기본 도구
책에서 기억하고 싶은 내용을 써보세요.
IDE가 갖는 한계를 넘어설 수 있어야 한다. 유일한 방법은 기본 도구들을 언제나 곧바로 사용할 수 있도록 예리하게 유지하는 것이다
<항목20 디버깅>의 고수가 되기 전에는 위대한 프로그래머가 될 수 없다.
도구들의 사용법을 배우는 데에 시간을 투자하라.
GUI의 장점은 WYSIWYG(Wht You See Is What You Get) 즉 여러분이 보는 것이 여러분이 얻는 것이라는 점이지만, 단점은 WYSIAYG(What You See Is All You) 즉 여러분이 보는 것이 여러분이 얻는 전부라는 것이다.
명령어 셸의 힘을 사용하라
여러분은 셸 안에서 많은 시간을 보내게 될 것이다. 소라게처럼 조개 껍데기 그러니까 셸을 여러분의 집으로 만들어라
유용한 기능을 새로 찾았다면 이 기능을 여러분의 몸이 기억하도록 만ㄷ들어야 한다. 그래야 반사적으로 사용할 수 있다.
유일한 방법은 반복이다
사용하는 에디터의 확장 기능 언어를 파헤쳐 보라. 여러분이 늘 하는 반복적인 일을 자동화할 방법을 연구해 보라. 한두 줄만으로 가능한 경우가 많다.
버전 관리 시스템은 소스 코드나 문서의 모든 변경 사항을 기억한다. 바르게 설정된 버번 관리 시스템이 있으면 소프트웨어의 이전 버전으로 언제든지 되돌아갈 수 있다.
프로젝트 이외의 것에도 버전 관리를 사용하라.
아무도 완벽한 소프트웨어를 작성하지 못하므로 하루 대부분을 디버깅으로 보낼 것이라는 건 기정사실이다.
디버깅은 단지 문제 풀이일 뿐이라는 사실을 받아들이고, 그런 마음으로 공략하라.
기술의 전당에서는 남을 비난하기보다 문제를 고치는 데에 집중해야 한다.
표면에 보이는 증상만 고치려는 욕구를 이겨 내라
코드를 고치기 전 실패하는 테스트부터.
그놈의 오류 메시지 좀 읽어라.
트레이싱 구문은 ‘여기까지 도달’이나 ‘X값 = 2’ 같이 화면 혹은 파일에 출력하는 작은 진단용 메시지를 일컫는다. 트레이싱은 여러 프로세스가 동시에 작동하는 경우, 실시간 시스템, 이벤트 기반 어플리케이션 등, 시간 자체가 중요한 요소가 되는 시스템에서 이루 말할 수 없이 소중하다.
버그와 관련된 루틴이나 코드가 제대로 작동하는 걸 ‘안다’고 해서 대충 얼버무리고 지나치지 말라. 그것을 증명하라. 이 맥락 안에서, 이 데이터로, 이 경계 조건하에서 증명하라.
버그를 수정하는 김에, 혹시 이것과 동일한 버그가 있을 법한 다른 코드가 있는지 살펴보자. 바로 지금 그것들을 찾아서 고쳐야 한다. 어떤 일이 일어났든지 간에 똑같은 일이 다시 발생하면 그 사실을 알 수 있도록 하라.
테스트 훅은 테스트 대상 코드의 동작이 테스트 시에만 달라지도록 하는 메커니즘을 뜻한다.
디버깅은 그 자체만으로도 충분한 도전 거리다.
텍스트 처리 언어를 익혀라.
엔지니어링 일지는 기억보다 더 믿을 만하다. 진행 중인 작업과 직접적인 관계가 없는 발상을 일단 쌓아 놓을 수 있는 곳이 생긴다.
누군가에게 이야기를 하는 것과 비슷하다. 하던 일을 돌아보기에 알맞은 기회가 생기는 것이다.
엔지니어링 일지를 남겨 보라. 파일이나 위키말고 종이를 사용하라, 글씨를 쓰는 것은 키보드를 두드리는 것과는 다른 무언가 특별한 것이 있다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
에디터를 유창하게 사용하는지에 대해 확인할 과제들을 보았는데, 절반정도밖에 단박에 떠오르지 않았다.. 개발자의 길을 시작할때 입문한 이클립스를 십년넘게 사용하고 있고, ( 간단한 텍스트나 로그파일은 에디터플러스로 보지만,, ) 인텔리제이를 사용하려고 시도했지만, 어색함에 다시 이클립스로 돌아왔던지라… 이번에 다시 꼭 도전해 봐야지!!!
에디터의 확장 기능을 찾아볼 생각도, 내가 확장 기능을 만들 수 있다는것도 생각해보지 않았다는게 참 부끄러웠다… 단순하게 사용하는 현실이란… ㅠ_ㅠ
마우스를 쓰지 않고 코딩이 가능할까???? 도저히 상상할 수 없는 일이다…….. 단 몇시간도 힘들거 같은데… 이건 사실 자신이 없다..;
디버깅챕터는 그냥 가슴이 다 와닿는 말로 쿡쿡쿡 찔렀다. 눈 앞의 오류만 급급하게 해결하고 지나갔던 시간들과 나는 분명히 오류가 없었는데, QA에서 반려된 테스트건들.. 적절한 테스트가 이루어지지 않아서 발생한 일들.. 반성하자
니꼬쌤의 강의중에서 파이썬을 배워보려고 신청했는데,,, 텍스트 처리 언어를 익히라고 조언이 나왔으니. 불태워보자..
엔지니어링 일지는 프로젝트 초반에는 부지런히 적으려고 하다가 일이 바빠지면서 항상 흐지부지 되기 마련이었는데, 생각해보면 초반의 기록이라도 있어서 그나마 다행이라고 느꼈던 적이 많다. 뭐든 처음과 끝이 같아야 하는데… 어떻게 된게 이 책은 읽을 수록 반성할 것들만 많아지는지….
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
트레이싱이라는 개념?
오늘 읽은 다른사람의 TIL
is0408님의 TIL (url 링크)