이미 소장하고 있다면 판매해 보세요.
|
PART 1 애자일 개발
CHAPTER 1 애자일 실천방법 _ 4 CHAPTER 2 익스트림 프로그래밍 소개 _ 15 CHAPTER 3 계획 세우기 _ 27 CHAPTER 4 테스트 주도 개발 _ 34 CHAPTER 5 리팩토링 _ 45 CHAPTER 6 프로그래밍 에피소드 _ 59 PART 2 애자일 설계 CHAPTER 7 애자일 설계란 무엇인가? _ 110 CHAPTER 8 단일 책임 원칙(SRP) _ 124 CHAPTER 9 개방 폐쇄 원칙(OCP) _ 130 CHAPTER 10 리스코프 치환 원칙(LSP) _ 144 CHAPTER 11 의존 관계 역전 원칙(DIP) _ 166 CHAPTER 12 인터페이스 분리 원칙(ISP) _ 177 PART 3 급여 관리 사례 연구 CHAPTER 13 커맨드와 액티브 오브젝트 패턴 _ 199 CHAPTER 14 템플릿 메소드와 스트래터지 패턴: 상속과 위임 _ 211 CHAPTER 15 퍼사드 패턴 _ 226 CHAPTER 16 싱글톤과 모노스테이트 패턴 _ 231 CHAPTER 17 널 오브젝트 패턴 _ 244 CHAPTER 18 급여 관리 사례 연구: 반복의 시작 _ 248 CHAPTER 19 급여 관리 사례 연구: 구현 _ 263 PART 4 급여 관리 시스템 패키징 CHAPTER 20 패키지 설계의 원칙 _ 321 CHAPTER 21 팩토리 패턴 _ 345 CHAPTER 22 급여 관리 사례 연구(2부) _ 354 PART 5 기상 관측기 사례 연구 CHAPTER 23 컴포지트 패턴 _ 379 CHAPTER 24 옵저버 패턴: 패턴으로 돌아가기 _ 383 CHAPTER 25 추상 서버, 어댑터, 브리지 패턴 _ 408 CHAPTER 26 프록시 패턴 프록시와 천국으로의 계단 패턴: 서드파티 API 관리 _ 421 CHAPTER 27 사례 연구: 기상 관측기 _ 454 PART 6 ETS 사례 연구 CHAPTER 28 비지터 패턴 _ 497 CHAPTER 29 스테이트 패턴 _ 533 CHAPTER 30 ETS 프레임워크 _ 561 APPENDIX A UML 표기법 I: CGI 예제 _ 597 APPENDIX B UML 표기법 II: 스태트먹스 _ 629 APPENDIX C 두 기업에 대한 풍자 _ 655 APPENDIX D 소스 코드는 곧 설계다 _ 671 찾아보기 _ 685 |
|
프로세스와 툴보다 개인과 상호작용이 우선이다. 사람은 성공의 가장 중요한 요소다. 팀에 뛰어난 팀원이 없으면 좋은 프로세스가 있다 해도 프로젝트를 실패에서 구원할 수 없지만, 엉터리 프로세스는 가장 뛰어난 팀원조차 비효율적인 작업을 하게 만들 수 있다. 뛰어난 팀원들이 모여 있다 해도, 그들이 팀으로서 함께 일하지 않으면 비참하게 실패할 수 있다.
--- p. 6 리팩토링의 목표는 이 장에서 설명한 것처럼 매일 코드를 청소하는 것이다. 우리는 문제가 쌓이고 쌓여서, 오랜 시간 동안 축적된 것을 파내고 문질러 닦아야 하는 것을 원하지 않는다. 최소한의 노력으로 시스템을 확장하고 수정할 수 있기를 바란다. 이를 위한 가장 중요한 요소는 코드의 깔끔함이다. --- p. 58 다음 몇 장에서는 급여 관리 시스템(payroll system)의 설계와 구현을 다룰 텐데, 시스템의 기본적인 명세는 나중에 다시 언급될 것이다. 설계와 구현 과정의 일부로서 커맨드, 템플릿 메소드, 스트래터지, 싱글톤, 널 오브젝트, 팩토리, 퍼사드 같은 다양한 디자인 패턴을 사용하는데, 이 패턴들이 바로 다음 몇 장에서 다룰 주제다. 그리고 18장에서는 급여 관리 문제의 설계와 구현 작업을 차근차근 해나갈 것이다. --- p. 194 지금까지 급여 관리 문제에 대해 많은 양의 분석, 설계, 구현을 해왔다. 하지만 그래도 여전히 결정해야 할 일이 많다. 하나만 예로 들어보면, 지금까지 이 문제를 작업한 프로그래머는 한 명(나 자신)뿐이었다. 사실, 지금의 개발 환경 상태도 프로그래머가 한 명뿐이라는 이 사실과 일치한다. 모든 프로그램 파일은 디렉토리 하나에 위치해 있으며, 더 높은 차원의 구조는 잡혀 있지 않다. 패키지도 없고, 서브시스템도 없으며, 전체 애플리케이션을 통째로 릴리즈하는 것 말고는 릴리즈 단위도 존재하지 않는다. 이대로는 더 이상 진전할 수 없다. --- p. 354 유한 상태*1오토마타(finite state automata)는 소프트웨어 무기 창고에서 꺼내 쓸 수 있는 가장 유용한 추상 개념 중 하나다. 유한 상태 오토마타는 복잡한 시스템의 행위를 조사하거나 정의할 수 있는 간결하면서도 명쾌한 방법을 제공한다. 그리고 이해하기도 쉽고 고치기도 쉬운 강력한 구현 전략도 제공한다. 나는 유한 상태 오토마타를 상위 수준의 GUI로부터 가장 하위 수준의 통신 프로토콜에 이르기까지 시스템의 모든 수준에서 사용한다. 유한 상태 오토마타는 거의 어디에나 적용할 수 있다. --- p. 533 |
|
소프트웨어 개발을 위한 사려 깊은 조언으로 가득한 책!
『클린 코드』를 비롯한 베스트셀러 저자이자 소프트웨어 개발 전문가로 저명한 로버트 C. 마틴은 이 책을 통해 소프트웨어 개발자, 프로젝트 관리자, 소프트웨어 프로젝트 리더들이 안고 있는 문제에 대한 해결책을 제시하고 있다. 애자일 개발 방식의 창시자 중 한 명이기도 한 저자는 이 책을 통해 애자일 개발 방식과 익스트림 프로그래밍에 대해 포괄적이고 실용적인 튜토리얼을 제공한다. 이 책의 주요 특징 -소프트웨어 개발자와 프로젝트 관리자에게 애자일 개발 방식을 통해 프로젝트를 예산과 일정에 맞게 끝내는 방법을 안내한다. -익스트림 프로그래밍을 사용해 계획하고, 테스트하고, 리팩토링하고, 짝 프로그래밍하는 방식을 보여주기 위해 실제 사례 연구를 사용한다. -재사용 가능한 풍부한 C++와 자바 코드를 담고 있다. -UML과 디자인 패턴을 사용해 고객 지향적 시스템의 문제를 해결하는 데 초점을 맞춘다. |