본문 바로가기

실용주의 프로그래머9

8장 : 실용주의 프로젝트 📔실용주의 팀 이 챕터는 팀 전체에게 실용주의 기법들을 어떻게 적용할 수 있는지에 이야기한다. 깨진 창문을 없애라 팀 전체가 깨진 창문을 용납하지 않아야 한다. 삶은 개구리 단단히 통제되는 팀이라도 자기네 프로젝트가 심각하게 변화하는 것에 대해 둔감할 수 있다. 모든 사람이 적극적으로 환경변화를 감시해야 한다. 애초에 합의사항에 있지 않았던 것들을 항상 점검하도록 하라. 새 요구사항에 대해서는 수치를 보유하라. 이미 일어난 변화를 거부할 필요는 없다 단지, 그런 일이 벌어지고 있다는 것을 알고 있으면 된다. 소통하라! 소통이 제일 중요하다! 프로젝트 팀 이름을 유별난 이름으로 지어라! ex) 신화의 도시, 양을 잡아먹는 앵무새 등등 팀은 정체성 확립의 기반을 얻을 것이다. 반복하지 마라 의사소통으로 중복.. 2022. 4. 1.
7장 : 프로젝트 전에 프로젝트를 시작하기도 전에 기본원칙을 정하지 않는다면 망할 수도 있다. 📔요구사항의 구렁텅이 완성이라는 것은 더 이상 더할 것이 없을 때가 아니라, 더이상 빼낼 것이 없을 때 얻게 되는 것이다. -생텍쥐페리- 요구사항을 수집하지 말고 채굴하라. 요구사항은 대게 프로젝트의 초기에 이뤄진다. 요구사항이 지면에 놓여 있는 경우는 드물다. 요구사항은 최대한 일반적 진술로 만들고 나머지 정책에 대한 정보는 개발자에게 구현에서 지원해야 할 것들의 한 예로 넘겨주어야 한다. 사용자의 요구사항 내면 깊이 들어갈 수 있는 기법은 사용자가 되어보는 것이다. 사용자처럼 생각하기 위해 사용자와 함께 일하라. 요구사항을 만들 때 생기는 큰위험은 지나치게 자세한 명세를 하는 것이다. 좋은 요구사항 문서는 추상적이다. 요구사항에 .. 2022. 4. 1.
6장 : 코딩하는 동안 해야 할 일들 코딩은 기계적인 작업이 아니다. 프로그램이 정확하고 생산적으로 작동하기 위해 사려 깊은 생각과 판단을 통한 결정이 필요하다. 그렇지 않은 코드는 우연에 맡기는 프로그래밍으로 생산된 코드이다. 코드가 작동은 하지만 왜 작동하는지 설명을 못한다. 이 챕터에서는 프로그래머가 코딩 과정에서 더 적극적으로 행동하는 방법에 대한 내용이다. 📔우연에 맡기는 프로그래밍 행운과 어쩌다 오는 성공에 의존하는 프로그래밍을 하지 말아야 한다. 대신 의도적으로 프로그래밍을 해야 한다. 지금 잘 동작하는데 괜히 건드렸다 일을 만들 필요가 있을까? 건드려야 할 이유 정말 제대로 돌아가는 것이 아닐지도 모른다. 우리의 화면에서만 그런 것처럼 보일 수 있다. 여러분이 의존하는 조건이 단지 우연인 경우도 있다. 다른 상황(화면 해상도가.. 2022. 4. 1.
5장 : 구부러지거나 부러지거나 삶은 멈추지 않는다. 우리가 작성하는 코드도 마찬가지이다. 현대의 미친 듯이 빠른 변화 속도에 맞추기 위해서는 가능한 느슨하고 유연한 코드를 작성하기 위해 노력해야 한다. 그렇지 않으면 코드는 금세 낡고 수정하기 어려워져 기억 저편으로 사라져 버릴 것이다. 이 챕터에서는 되돌릴 수 있는 의사 결정을 내릴 수 있는 구체적인 방법에 대해 설명한다. 이를 잘 활용하면 여러분이 작성하는 코드가 불확실한 세상에 닥쳐도 유연성과 적응성을 잃지 않게 될 것이다. 📔결합도 줄이기와 디미터 법칙 좋은 울타리는 좋은 이웃을 만든다. 부끄럼 타는 코드를 작성하는 것이 이롭다고 말했었다. 이때 부끄럼 타는 이란 자신을 남에게 들어내지 말고 너무 많은 사람과 상호작용하지 말라는 2가지 의미를 갖는다. 코드를 모듈로 구성하고 이.. 2022. 4. 1.
4장 : 실용주의 편집증 완벽한 소프트웨어는 만들 수 없다. 길지 않은 컴퓨터 역사를 통틀어 어느 누구도 완벽한 소프트웨어를 만들지 못했다. 여러분이 최초가 될 것 같지도 않다. 📔계약에 의한 설계 정직한 거래를 보장하는 최선의 해법 중 하나는 계약이다. DBC 버트란드 마이어는 아이펠이라는 언어를 만들면서 계약에 의한 설계 개념을 개발했다. 이것은 단순하지만 강력한 기법으로 프로그램의 정확성을 보장하기 위해 소프트웨어 모듈들의 권리와 책임을 문서화하는 데에 초점을 맞춘다. 정확한 프로그램이란 무엇인가? 스스로 자신이 하는 일이라고 주장하는 것보다 많거나 적지도 않게 딱 그만큼만 하는 프로그램을 말한다. SW에서 모든 함수와 메서드는 뭔가를 하는데 그것을 어떻게 된다고 설명하는데 필요한 것은 루틴 = 모든 함수와 메소드 선행조건.. 2022. 4. 1.
3장 : 기본적인 도구 모든 장인들은 기본적인 훌륭한 도구들을 몇 개 갖고 자신의 여정을 시작한다. 📔일반 텍스트의 힘 실용주의 프로그래머로서 우리의 기본 재료는 나무나 철이 아니고 지식이다. 우리가 지식을 저장하는 최고의 포맷은 일반 텍스트라고 믿는다 일반 텍스트란? 사람이 직접 읽고 이해할 수 있는 형태의 인쇄 가능한 문자로 이루어진 텍스트 XML, JSON, HTML 등은 잘 정의된 구조를 가진 일반 텍스트의 예다. 지식을 일반 텍스트로 저장하라. 단점 압축된 이진 포맷을 사용하는 것보다 더 많은 공간을 차지함 일반 텍스트 파일을 해석하고 처리하는 데에 더 많은 계산이 필요할 수 있다. 텍스트의 힘 구식이 되는 것에 대한 보험 텍스트는 어떤 다른 형태의 데이터와 그걸 생성한 애플리케이션보다 더 오래 살아남을 것이다. 데이.. 2022. 4. 1.