본문 바로가기
[TIL] 8장 프로젝트 전에 , 9장 실용주의 프로젝트 8장 프로젝트 전에 | 9장 실용주의 프로젝트 노마드 북클럽은 끝난지 좀 되었고, 나는 결국 완주해내지는 못했다. 그래도 책을 마무리를 지어야 하기 때문에 올려보는 실용주의 프로그래머 마지막 TIL. 좀 더 정리해야하는 TIL들이 남아있기는 한데 마무리도 지어야 새로운 책을 읽어나갈 수 있어서 일단 마무리를 해본다. 오늘의 TIL 3줄 요약 프로그래머의 역할은 더 나은 결과를 낼 수 있도록 노력하는 문제해결사이다. 팀을 더 가치있게 만들 수 있는 프로그래머가 되어야 한다. 내 코드와 나의 결과물에 자부심을 가져야 한다. 1. 책에서 기억하고 싶은 내용 완성이라는 것은 더 이상 더할 것이 없을 때가 아니라, 더 이상 뺄 것이 없을 때 달성되는 것이다. - 앙투안 드 생텍쥐페리 [ 자신이 뭘 원하는지 정확히.. 2022. 6. 25.
[TIL] 7장 코딩하는 동안 7장 코딩하는 동안 오늘의 TIL 3줄 요약 개발자는 우연에 맡기거나 막연하게 가정해서는 안된다. 증명해내야 한다. 개발일정이나 스스로에게 코드를 합리화 시키면 안된다. 기본원칙과 올바른 규칙을 지켜라. 1. 책에서 기억하고 싶은 내용 코딩은 기계적인 작업이 아니다. 코딩할 때는 매 순간 결정을 내려야 하는데, 프로그램이 정확하게 생산적으로 작동하면서 천수를 누리도록 하려면 사려 깊은 생각과 판단으로 결정을 내려야 한다. 오직 인간만이 무언가를 직접 보고, 정확한 예측에 필요한 모든 정보를 획득하고, 심지어 순간적으로는 정확한 예측을 한 후에도, 그런데 그것이 아니라고 말할 수 있다. 프로그래머로서 경험이 늘어 갈수록 여러분의 뇌에는 암묵적인 지식이 켜켜이 쌓인다. 잘 되는 방법, 잘 안 되는 방법, 오.. 2022. 5. 29.
[TIL] 6장 동시성 6장 동시성 오늘의 TIL 3줄 요약 공유상태는 틀린 상태다. 1. 책에서 기억하고 싶은 내용 동시성(병행성) : 동시에 실행 중인 것처럼 행동하는 것. (fiber, thread, process를 통한 구현) 병렬성 : 실제로 동시에 실행되는 것. (하드웨어적 장치의 필요) 세상은 비동기적이므로 코드 상에서는 동시성이 필요하다. 시간적 결합(temporal coupling) 소프트웨어의 설계요소로서 시간의 역할 - 동시성과 순서 사람들은 보통 직선적인 사고를 한다. 하지만 이렇게 생각하다 보면 시간적 결합을 필연적으로 만들어 낸다. 따라서 우리는 이러한 시간적 결합들을 끊어내어 현실세계와 같은 동시성을 확보해야 한다. 작업흐름을 모델 화하고 분석하여 동시성을 개선할 수 있다. 이런 과정에서 쓰이는 도구.. 2022. 5. 26.
[TIL] 5장 구부러지거나 부러지거나 5장 구부러지거나 부러지거나 오늘의 TIL 3줄 요약 결합도를 줄이기 위한 방법 상속을 맹목적으로 하지 말아야 하는 이유 프로그램과 분리해야하는 것을 명확하게 정할 것 1. 책에서 기억하고 싶은 내용 [28. 결합도 줄이기] - 관계없는 개념들을 분리하여 결합도를 낮추는 방법 결합에 대한 증상 1) 관계없는 모듈이나 라이브러리 간의 희한한 의존 관계 2) 한 모듈의 '간단한' 수정이 이와 관계없는 모듈을 통해 시스템 전역으로 퍼져 나가거나 시스템의 다른 곳에서 무언가를 깨뜨리는 경우 3) 개발자가 수정하는 부분이 시스템에 어떤 영향을 미칠지 몰라 코드의 수정을 두려워하는 경우 4) 변경 사항에 누가 영향을 받는지 파악하고 있는 사람이 없어서 결국 모든 사람이 참석해야 하는 회의 우리는 이러한 결합의 증상.. 2022. 5. 22.
[TIL] 4장 실용주의 편집증 4장 실용주의 편집증 1. 책에서 기억하고 싶은 내용 여러분은 완벽한 소프트웨어를 만들 수 없다. 이 말에 상처받았는가? 그러면 안 된다. 삶의 공리로 인정하고 받아들여라. 그리고 축하하라. 완벽한 소프트웨어는 존재하지 않기 때문이다. -145p 실용주의 프로그래머는 방어적인 코딩에서 한 걸음 더 나아간다. 실용주의 프로그래머는 자기 자신 역시 믿지 않는다. 어느 누구도, 심지어는 자기 자신도 완벽한 코드를 작성할 수 없음을 알기 때문에 실용주의 프로그래머는 자신의 실수에 대비한 방어책을 마련한다. -146p [23. 계약에 의한 설계] 정직한 거래를 보장하는 최선의 해법 중 하나는 '계약'이다. 소프트웨어 모듈이 서로 소통하는 것을 돕기 위해 계약과 동일한 개념을 사용할 수 있다. -147p DBC(D.. 2022. 5. 20.
[TIL] 3장 기본도구 2022년 5월 19일 3장 기본도구 오늘의 TIL 3줄 요약 IDE, 마우스(트랙패드)에 의존하지 말아야 한다. 항상 문제의 본질을 파악하고 조급함을 가져선 안 된다. 고무오리를 책상에 두어라. 1. 책에서 기억하고 싶은 내용 IDE가 갖는 한계를 넘어설 수 있어야 한다. 유일한 방법은 기본도구들을 언제나 곧바로 사용할 수 있도록 예리하게 유지하는 것이다.-104p [16. 일반 텍스트의 힘] 지식을 일반 텍스트로 저장하라. 일반 텍스트라면 데이터 그 자체만으로 의미가 드러나는 데이터를 만들 수 있다. -105,106 p 데이터가 남아 있는 한 그걸 사용할 기회는 찾아오기 마련이며 사람이 읽을 수 있는 형태의 데이터와 그 자체만으로 의미가 드러나는 데이터는 다른 어떤 형태의 데이터보다, 심지어 그 데이.. 2022. 5. 19.
728x90
반응형