책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > .NET > C#
· ISBN : 9791185890371
· 쪽수 : 480쪽
· 출판일 : 2015-11-27
책 소개
목차
PART I 애자일의 기본기 갖추기
CHAPTER 1 스크럼을 소개합니다 3
스크럼 vs. 폭포수 4
역할과 책임 7
산출물 11
스프린트 34
마치며 50
CHAPTER 2 의존성과 계층화 51
의존성의 정의 52
의존성 관리하기 66
계층화 96
마치며 108
CHAPTER 3 인터페이스와 디자인 패턴 111
인터페이스란 무엇인가? 112
적응형 디자인 패턴 121
인터페이스의 또 다른 활용법 133
마치며 146
CHAPTER 4 단위 테스트와 리팩토링 147
단위 테스트 148
리팩토링 176
마치며 193
PART II SOLID 원칙에 기반한 코드 작성하기
CHAPTER 5 단일 책임 원칙 197
문제의 정의 198
SRP와 데코레이터 패턴 214
switch 구문 대신 전략 패턴 사용하기 236
마치며 239
CHAPTER 6 개방/폐쇄 원칙 241
개방/폐쇄 원칙이란? 242
확장점 244
변화로부터의 보호 249
마치며 252
CHAPTER 7 리스코프 치환 원칙 253
리스코프 치환 원칙에 대한 이해 253
계약 256
공변성과 반 공변성 278
마치며 290
CHAPTER 8 인터페이스 분리 291
인터페이스 분리 예제 292
인터페이스를 분리하는 이유 311
마치며 325
CHAPTER 9 의존성 주입 327
간편한 예제 328
조금 더 복잡한 예제 355
마치며 373
PART III 적응형 예제
CHAPTER 10 적응형 예제 ─ 소개 377
트레이 리서치 378
최초의 백로그 382
CHAPTER 11 적응형 예제 ─ 스프린트 1 391
계획하기 392
나는 대화를 분류하기 위해 채팅방을 개설하고 싶습니다 394
나는 개설된 채팅방의 목록을 보고 싶습니다 404
나는 채팅방에 전송된 메시지를 보고 싶습니다 409
나는 채팅방의 다른 참여자에게 평문 텍스트 메시지를 전송하고 싶습니다 412
스프린트 데모 414
스프린트 회고 415
CHAPTER 12 적응형 예제 ─ 스프린트 2 421
계획하기 422
나는 마크다운으로 꾸며진 텍스트를 전송하고 싶습니다 423
나는 메시지 콘텐츠를 적절하게 필터링하고 싶습니다 427
나는 수백 명의 동시 접속 사용자들에게 서비스를 제공하고 싶습니다 431
스프린트 데모 433
스프린트 회고 434
APPENDIX A 적응형 도구들 439
Git을 이용한 소스 제어 439
지속적 통합 445
APPENDIX B GitHub 예제 소스 (온라인 제공)
찾아보기 448
책속에서
스크럼 프로젝트의 일상을 관리하는 중심은 스크럼 보드(Scrum board)이다. 스크럼 보드는 벽에 적당한 크기로 자리해야 한다. 만일 보드가 너무 작으면 중요한 내용을 자꾸 생략하고 싶은 유혹에 빠지기 쉽다. 어쩌면 독자의 사무실 벽은 그만한 공간을 마련하기가 쉽지 않을 수도 있다. 이런 경우에는 그냥 방치된 화이트보드를 스크럼 보드로 활용하면 된다. 자석을 이용하면 금속으로 된 서류함도 스크럼 보드로 사용할 수 있다.
이전 절에서 설명한 의존성을 퍼스트파티(first-party) 의존성이라고 한다. 콘솔 애플리케이션과 애플리케이션이 종속성을 가지는 클래스 라이브러리는 같은 비주얼 스튜디오 솔루션 내에 구현되어 있다. 이 경우, 의존성을 제공하는 프로젝트는 필요하다면 언제든 다시 빌드할 수 있기 때문에 의존성 모듈에 항상 액세스가 가능하다.
검증 코드를 추가한 테스트는 전체 거래내역을 모두 합하여 계좌의 잔액을 확인하고 있다. 그런데 지금까지의 과정을 통해 계좌의 잔액을 관리하기 위해 작성한 코드는 가장 마지막 거래 내역의 값을 계좌의 잔액으로 취급하고 있다. 당연히 이 구현 방식은 올바르지 않기 때문에 이번 테스트 역시 실패하게 된다. 예제 4-11은 모든 단위 테스트를 성공할 수 있도록 구현을 수정한 AddTransaction 메서드의 코드이다.