💡 김영한님의 스프링 핵심 원리 고급편 강의를 듣고 정리한 내용입니다.데코레이터 패턴 적용 전Componentpublic interface Component { String operation();} RealComponent@Slf4jpublic class RealComponent implements Component { @Override public String operation() { log.info("RealComponent 실행"); return "data"; }}DecoratorPatternClient@Slf4jpublic class DecoratorPatternClient { private Component component; publi..
Spring/디자인 패턴
💡 김영한님의 스프링 핵심 원리 고급편 강의를 듣고 정리한 내용입니다.프록시 기본 개념프록시에 대해서 알아보자 클라이언트(Client)와 서버(Server)라고 하면 개발자들은 보통 서버 컴퓨터를 생각한다.사실 클라이언트와 서버의 개념은 상당히 넓게 사용된다. 클라이언트는 의뢰인이라는 뜻이고, 서버는 '서비스나 상품을 제공하는 사람이나 물건'을 뜻한다. 따라서 클라이언트와 서버의 기본 개념을 정의하면 클라이언트는 서버에 필요한 것을 요청하고, 서버는 클라이언트의 요청을 처리하는 것이다. 이 개념을 우리가 익숙한 컴퓨터 네트워크에 도입하면 클라이언트는 웹 브라우저가 되고, 요청을 처리하는 서버는 웹 서버가 된다. 이 개념을 객체에 도입하면, 요청하는 객체는 클라이언트가 되고, 요청을 처리하는 객체는 서버..
💡 김영한님의 스프링 핵심 원리 고급편 강의를 듣고 정리한 내용입니다.Overview앞서 전략 패턴에서 ContextV2는 변하지 않는 템플릿 역할을 한다. 그리고 변하는 부분은 파라미터로 넘어온 Strategy의 코드를 실행해서 처리한다. 이렇게 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 콜백(callback)이라 한다.콜백 정의프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다. (위키백과 참고)쉽게 이야기해서 callback은 코드가 호출( call )은 되는데 코드를 넘겨준 곳의 뒤(..
💡 김영한님의 스프링 핵심 원리 고급편 강의를 듣고 정리한 내용입니다.Overview이번에는 동일한 문제를 전략 패턴을 사용해서 해결해보자.@Slf4jpublic class ContextV1Test { @Test void templateMethodV0() { logic1(); logic2(); } private void logic1() { long startTime = System.currentTimeMillis(); // 비즈니스 로직 실행 log.info("비즈니스 로직1 실행"); // 비즈니스 로직 종료 long endTime = System.currentTimeMillis(); ..