[[TableOfContents]] * [https://sites.google.com/site/xperdokdo/ xper dokdo]참고 == 들어가며 == * p.44 * 스프링을 사용하는 개발자들은 자연스럽게 자바와 엔터프라이즈 개발의 기본에 충실한 베스트 프랙티스를 적용할 수 있고, 이상적인 개발 철학과 프로그래밍 모델을 이해하게 되고, 좋은 개발 습관을 체득하게 된다. * 스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두 가지 중요한 가치가 있다면 그것은 '''단순함'''과 '''유연성'''이다. == 이해 == === 오브젝트와 의존관계 === * p.61 * 잘 동작하는 코드를 굳이 수정하고 개선해야 하는 이유는 뭘까? * 이런 말이 생각나네요 ''컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러'' - [서지혜] * p.62 * 가장 좋은 대책은 변화의 폭을 최소한으로 줄여주는 것이다. * p.70 * 그런데 디자인 패턴은 설계 전략이기도 하지만 굉장히 편리한 커뮤니케이션 수단이기도 하다. * p.73 * 변화의 성격이 다르다는 건 변화의 이유와 시기, 주기 등이 다르다는 뜻이다. === 테스트 === === 템플릿 === * p.211 * 템플릿이란 이렇게 바뀌는 성질이 다른 코등 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법이다. * p.217 * 이 문제의 핵심은 변하지 않는, 그러나 많은 곳에서 중복되는 코드와 로직에 따라 자꾸 확장되고 자주 변하는 코드를 잘 분리해내는 작업이다. * p.223 * 전략 패턴에 따르면 Context가 어떤 전략을 사용하게 할 것인가는 Context를 사용하는 앞단의 Client가 결정하는 게 일반적이다. * Context는 전달받은 그 Strategy 구현 클래스의 오브젝트를 사용한다. * p.226 * DI의 가장 중요한 개념은 제3자의 도움을 통애 두 오브젝트 사이의 유연한 관계가 설정되도록 만든다는 것이다. * 일반적으로 DI는 의존관계에 있는 두 개의 오브젝트와 이 간계를 다이내믹하게 설정해주는 오브젝트 팩토리(DI 컨테이너), 그리고 이를 사용하는 클라이언트라는 4개의 오브젝트 사이에서 일어난다. * p.250 * 고정된 작업 흐름을 갖고 있으면서 여기저기서 자주 반복되는 코드가 있다면, 중복되는 코드를 분리할 방법을 생각해보는 습관을 기르자. ---- [토비의스프링3], [Spring/탐험스터디]