[22.09.07] Daily 회고록 (TemplateCallback 패턴, 영어 스피치)
일간 회고록(TIL)

[22.09.07] Daily 회고록 (TemplateCallback 패턴, 영어 스피치)

[일일회고]

매 주 수요일은 저녁에 영어 스피치를 다니고 있다. 인스턴트 클럽이라는 곳인데 1회에 5000원으로 영어 스피치에 대한 장벽을 낮추고 오픽 준비를 돕도록 하는 컨텐츠들을 주로 한다. 하루 다녀오면 기가 빨리는 기분.. 1학기에는 외국인들과 했었는데 외국인들과 얘기하다보면 스피킹보다 리스닝에 더 집중하게 된다.. 원어민 교사님들이 우리를 엄청 배려해줬다는 것을 느끼는게 하나도 들리지가 않는다 . 그래서 2학기에 진행하는 스피치는 외국인이 없어서 좀 더 스피킹에 치중할 수 있는 것 같아 개인적으로 더 좋은 것 같다. 올해 겨울방학에는 꼭 오픽을 따야겠다.

 

[개인공부]

디자인 패턴 - TemplateCallback

- 기존에 전략 패턴을 이용해 만들었던 로그 추적기를 TemplateCallback 패턴으로 재 구성하는 시간을 가졌다. TemplateCallback 패턴에서 callback은 코드가 호출되는데 그것이 코드를 넘겨준 곳의 뒤에서 호출된다는 뜻이다. 이를 이용해 전략 패턴에서 템플릿과 콜백 부분을 강조하여 리팩토링한 것인데 스프링에서 주로 사용된다. (JdbcTemplate, RestTemplate, TransactionTemplate .. )

전략패턴은 알고리즘을 내부에서 선택할 수 있도록 만든 패턴이다. 그래서 내부에서 넘겨줄 Context를 선택하는 클라이언트가 필요한데 이를 주입하는 형태(DI)로 만든 것이 전략 패턴이고, 이를 익명 내부 클래스 혹은 람다를 이용해 template을 만들어 넘겨주는 것이다. 그렇기에 장점으로는 전략 패턴에 비해 코드를 줄여 깔끔한 코드를 가질 수 있었고, 단점으로는 아직도 상속관계이기 때문에 상위 인터페이스의 기능이 변경되면 모든 코드에서 직접 수정을 해주어야 한다는 것이다.

전(Strategy)
후(TemplateCallback)