Community

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

← Go back
TIL 3장. 기본 도구
#pragmatic
2년 전
617
1

실용주의 프로그래머 #6일차

🧑🏻‍💻 오늘 TIL 3줄 요약

  • 셸 스크립트에 익숙해지고 본인이 다룰 에디터(IDE)를 유창해지도록 학습하자.

  • 복잡하고 귀찮다고 피하지말고 버전 관리 툴은 한번 확실하게 학습해두자.

  • 디버깅은 즐거운 마음으로^^ 사소한것도 기록을 남겨 뇌의 부하를 덜자.

TIL (Today I Learned)

  • 2022. 3. 23.

📕 오늘 읽은 범위

  • 3장. 기본 도구

🙂 책에서 기억하고 싶은 내용

* 일반 텍스트의 힘

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

  • 사람이 읽을 수 있는 형태의 데이터와 그 자체만으로 의미가 드러나는 데이 터는 다른 어떤 형태의 데이터보다, 심지어 그 데이터를 생성한 애플리케이션보다 더 오래 살아남을 것이다. _p.107

* 셸 가지고 놀기

  • GUI의 장점은 WYSIWYG(What You See Is What You Get), 즉 여러분이 보는 것이 여러분이 얻는 것이라는 점이지만, 단점은 WYSIAYG(What You See Is All You Get), 즉 여러분이 보는 것이 여러분이 얻는 전부라는 것이다. _p.111

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

* 파워 에디팅

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

  • 유창해지는 것의 가장 큰 이점은 더 는 에디터 사용법을 생각하지 않아도 된다는 것이다. 뭔가를 생각하는 것에서 에디터 화면에 그게 뜰 때까지의 거리가 확 줄어든다. _p.115

  • 무언가 같은 일을 반복하는 것을 발견할 때마다 이렇게 생각하는 습관을 들여라. ‘분명 더 나은 방법이 있을 텐데.’ 그리고 더 나은 방법이 있는지 찾아보라. _p.116

* 버전 관리

  • 버전 관리 시스템은 일종의 거대한 ‘실행 취소’ 키와 같다. 프로젝트 전체에 걸쳐서 코드가 실제로 컴파일되고 실행되던 지난주의 평화로운 시절로 돌려줄 수 있는 타임머신이다.

    이 정도가 VCS 사용의 전부인 이들이 많을 것이다. 하지만 그렇다면 공동 작업과 배포 파이프라인, 이슈 추적에다 일반적인 팀 상호작용까지 아우르는 훨씬 더 큰 세상을 놓치고 있는 것이다. _p.119

  • 언제나. 혼자서 한 주짜리 프로젝트를 진행하는 경우일지라도, 나중에 ‘버리 기로 한’ 프로토타입일지라도, 심지어 여러분이 작업하는 것이 소스 코드가 아닐지라도, 모든 것을 버전 관리 아래에 둬라. _p.121

* 디버깅

  • 소프트웨어 결함은 요구 사항을 오해하는 것부터 코딩 오류에 이르기까지 여러 모습으로 나타난다. 안타깝지만 지금도 컴퓨터 시스템은 여전히 여러분이 명령하는 것을 할 뿐, 여러분이 원하는 것을 알아서 하지 않는다. _p.126

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

  • 겉으로 드러난 특정한 증상만 고치려고 하지 말고, 항상 문제의 근본 원인을 찾으려고 노력하라. _p.127

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

  • 가정하지 말라. 증명하라. _p.137

  • 버그를 수정하는 김에, 혹시 이것과 동일한 버그가 있을 법한 다른 코드가 있는지 살펴보자. 바로 지금 그것들을 찾아서 고쳐야 한다. 어떤 일이 일어났 든지 간에 똑같은 일이 다시 발생하면 그 사실을 알 수 있도록 하라. _p.137

* 엔지니어링 일지

  • 기억보다 더 믿을 만하다.

  • 진행 중인 작업과 직접적인 관계가 없는 발상을 일단 쌓아 놓을 수 있는 곳이 생긴다.

  • 무언가를 쓰기 위 해 하던 일을 멈추면 여러분의 뇌도 기어를 바꾼다. 누군가에게 이야기를 하는 것과 비슷하다. 하던 일을 돌아보기에 알맞은 기회가 생기는 것이다. _p.143

🤔 오늘 읽은 소감은?

* 파워 에디팅

  • 텍스트 편집기나 IDE 같은 툴은 은근 개발자들 사이에서 선호도 호불호가 갈린다. 어떤 사람들은 클래식하게 vim 으로 해결하는 사람이 있고, 우스겟소리겠지만 무거운 이클립스를 비 선호한다며 vscode를 쓰기위해 c언어를 공부했다는 사람도 있다. 본인도 한때 취미생활로 vim을 학습하다가 일정이 바빠져서 그만뒀었는데 지금이라도 짬날때 조금씩 살펴보아야겠다.

* 버전 관리

  • 생각 외로 버전 관리 툴 없이 마치 대학교 레포트 과제 꼬리표처럼 '\_final' 혹은 '최종'이라는 이름으로 프로젝트 소스를 관리하는 팀이 실제로 있다. 관련 종사자들 간에도 마찬가지고 적어도 IT업계에서 일한다고 하면 git이나 svn 같은 소스 관리 툴들을 기본으로 익혀야할 필요성이 있다고 생각한다.

* 디버깅

  • '가장 속이기 쉬운 사람은 자기 자신이다.' -에드워드 불워-리턴


    우리 모두 본인이 작성한 코드 앞에서 예상한 바와 엉뚱한 결과값을 내놓는 화면을 보면서 분노를 표출해 본적이 있을 것이다. 책에서 처럼 '그건 불가능해.', '하지만 정말 그럴 리가 없는데.' 는 입에 달기도하고, 본인은 차마 키보드를 내리치진 못하고 주먹을 불끈 쥐었던 적은 있었다. 수 많은 원인들 중에 특히 자괴감이 들었던 부분은 본인이 인식하지도 못한 부분을 한동안 당연한 것인양 받아들여 잘못된 것이라고 인식조차 못하던 경우였다. 과오를 인정하고 문제의 근본 원인을 찾으려 노력을 해야한다.

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


    하하.. 무슨 말이 더 필요할까. 오류 메시지는 적나라하게 우리가 무엇을 잘못했는지를 지적해주고 있다.

    오류 메시지가 무엇을 의미하는 걸까 고민하고 찾아보고 하는것이 계속 쌓이다보면 어디서 무엇이 어떻게 문제가 있는지 감이 오게되는것 같다.

😀 오늘 읽은 다른사람의 TIL

- 'flynnpark'님의 TIL (https://flynndev.notion.site/2022-03-23-DAY-05-5e2efb73d6f444edaf365e02c30980d6)

1 comment