토비의 스프링을 읽으면서 스프링에 다양한 디자인 패턴이 적용된 것을 보고 공부를 시작했다. 토비 선생님이 주신 디자인 패턴 학습 방법에 대한 교훈을 최대한 지키려고 했다.
패턴에서 가장 중요한 것은 각 패턴의 핵심이 담긴 목적 또는 의도다. 패턴을 적용할 상황, 해결해야 할 문제, 솔루션의 구조와 각 요소의 역할과 함께 핵심 의도가 무엇인지를 기억해둬야 한다.
새로운 패턴을 접할 때마다 이 패턴이 해결하려고 하는 문제 상황은 무엇이며, 패턴을 적용했을 때 어떤 효과를 볼 수 있는지에 집중했다. 구현은 이 목적을 달성할 수만 있다면 개발자의 책임이라고 하길래, 구현에 너무 얽매여있지 않으려고 했다. 그래도 코드는 다 따라쳤다. 손에 익어야 나중에 필요할 때 사용할 수 있을 것 같고, 이해도 더 잘 된다. 구현을 살펴보면서 객체지향적인 접근과 자바 문법에 익숙해질 수 있어 좋았다.
연초에 헤드퍼스트 디자인 패턴을 보며 공부했고, 여름방학 때 백기선 님의 디자인 패턴을 다시 들었다. 헤드퍼스트 시리즈 답게 쉽고 짜임새 있는 설명 덕분에 거부감 없이 학습할 수 있었다. 마지막 장에서 복합 패턴인 MVC를 다루었는데, 옵저버, 컴포지트, 전략 패턴이 인터페이스 뒤로 잘 캡슐화된 것이 인상적이었다. 백기선 님의 강의는 생성, 구조, 행동으로 나누어 패턴을 학습했는데, 책임과 관련된 행동 패턴들이 흥미로웠다. 패턴을 통해서 객체지향 원리가 어떻게 코드로 구현되는지 더 잘 이해할 수 있었다.
헤드 퍼스트 디자인 패턴 | Notion
헤드 퍼스트 디자인 패턴
uncovered-chocolate-cea.notion.site
Java Design Pattern | Notion
코딩으로 학습하는 GoF의 디자인 패턴
uncovered-chocolate-cea.notion.site
'JAVA' 카테고리의 다른 글
자바와 JUnit 테스트 만들기 (0) | 2024.01.18 |
---|---|
실습으로 배우는 선착순 이벤트 시스템 (0) | 2024.01.18 |
재고시스템으로 알아보는 동시성 이슈 해결방법 (0) | 2024.01.18 |