2022/01/09 TIL
2021 유스콘 회고 작성
GoF의 디자인 패턴 1장 서론
디자인 패턴이란? 어떤 상황의 문제에 대한 해법
동일한 문제가 발생했을 때 같은 방법으로 해결할 수 있다면 그것이 디자인 패턴이라는 것을 강조한다.
하나의 패턴은 아래의 4가지 요소를 반드시 포함한다.
- 패턴이름
- 문제(사용시기와 그 배경)
- 해법
- 결과(적용해서 얻은 결과와 장단점)
앞으로 책을 볼 때 위의 4가지를 염두에 두고 보면 좋을 것 같다.
디자인 패턴의 분류
목적은 '생성', '구조', '행동' 으로 나누어 진다.
범위는 '클래스'와 '객체'로 나누어 진다.
앞으로 학습할 패턴이 어디에 속하는지 염두에 두고 보면 좋을 것 같다.
시그니처란? 연산의 이름, 매개변수로 받아들이는 객체들, 연산의 반환 값을 명세한 것
인터페이스란? 객체가 정의하는 연산의 도믄 시그니처들
동적바인딩이란? 어떤 요청과 그 요청을 처리할 객체를 런타임에 연결 짓는 것
평소에 들어봤지만 정확히 몰랐던 용어를 정리합니다.
클래스 상속 : 객체가 어떻게 구현되느냐를 정의
인터페이스 상속 : 객체가 응답할 수 있는 요청의 집합을 정의
앞으로 학습할 디자인 패턴에서 위의 두 가지를 구분하는 것이 좋을 것 같다.
상속 보다는 합성을 사용하고, 합성을 사용할 때는 위임을 사용하자
위임을 통해 합성을 보다 잘 사용할 수 있다는 것을 알게 되었습니다.
Spring Runner Section 12
스프링은 Lifcycle Callbacks 라는 생명 주시게 관여할 수 있는 확장 지점을 제공한다.
그 중 대표적으로 InitializingBean과 DisposableBean이라고 하는 인터페이스이다.InitializingBean은 afterPropertiesSet 메소드만 가지고 있다.
DisposableBean은 destroy 메소드만 가지고 있다.
위의 두 가지 인터페이스를 상속받으면 원하는 빈의 생명주기 중 처음과 끝에 관여할 수 있다.
Jsr 250이란? 자바 플랫폼을 위한 공통 애노테이션에 관한스펙
위의 두가지 인터페이스를 상속 받는 것보다 Jsr 250에 있는 @PostConstruct와 @PreDestroy를 사용하는 것이 좋다.
Why? 특정 규약과 환경에 종속되지 않도록 객체를 작성하기 위함 (공식문서도 Jsr250을 권장)
의존성을 줄이기 위해 항상 고려해야 한다는 것을 느끼게 되는 계기였습니다.
'TIL' 카테고리의 다른 글
2022/01/11 TIL (0) | 2022.01.12 |
---|---|
2022/01/10 TIL (0) | 2022.01.11 |
2022/01/08 TIL (0) | 2022.01.09 |
2022/01/07 TIL (0) | 2022.01.07 |
2022/01/06 TIL (0) | 2022.01.06 |