Design Pattern 3

[디자인 패턴] JDK 동적 프록시와 CGLIB

개요 기존에 정리한 프록시 패턴(https://jaimemin.tistory.com/2016)을 통해 기존 코드를 변경하지 않고 부가적인 기능을 추가할 수 있는 장점이 있었지만 비슷한 구조를 갖는 프록시 클래스를 계속 생성해야 하는 단점이 있었습니다. 클래스를 계속 생성하면 관리 포인트가 늘어난다는 것이 단점인데 이는 자바에서 제공하는 JDK 동적 프록시 기술과 CGLIB와 같은 프록시 생성 오픈소스 기술을 통해 해결 가능합니다. 따라서, 이번 게시글에서는 JDK 동적 프록시 기술과 CGLIB를 소개할 것이며 추가적으로 프록시 기술을 이해하기 위해 알아야 하는 리플렉션 기술 또한 정리해볼 것입니다. 1. 리플렉션 리플렉션 기술을 보다 쉽게 이해하기 위해 우선 예제 코드부터 작성해보겠습니다. 리플렉션 적용..

Design Pattern 2021.12.11

[디자인 패턴] 프록시 패턴과 데코레이터 패턴

개요 이번 게시글에서는 템플릿 메서드 패턴 및 콜백 패턴(https://jaimemin.tistory.com/2014)에 이어 프록시 패턴과 데코레이터 패턴에 대해 간단히 정리해보겠습니다. 우선, 간단하게 프록시가 무엇인지 설명하고 이어서 프록시 패턴과 데코레이터 페턴에 대해 설명해보겠습니다. 1. 프록시 기본적으로 클라이언트는 서버에 필요한 것을 요청하고, 서버는 클라이언트의 요청을 처리합니다. 예를 들어, 컴퓨터 네트워크에서는 웹 브라우저가 서버에 요청을 하고 서버는 클라이언트에서 받은 요청을 처리합니다. 해당 개념을 객체에도 도입시킬 수 있는데 이때 요청하는 객체는 클라이언트가 되고, 요청을 처리하는 객체는 서버가 됩니다. 클라이언트 요청을 서버에 직접 할 수도 있지만 대리자를 통해서 대신 간접적으..

Design Pattern 2021.12.01

[디자인 패턴] 템플릿 메서드 패턴과 콜백 패턴

개요 강의에서 설명해주시는 좋은 설계란 SOLID 원칙 중 단일 책임 원칙(SRP)을 철저히 따라 최소한의 코드 변경을 통해 로직을 변경할 수 있는 구조라고 하셨습니다. 즉, 변경 지점을 한 곳에 모아 변경에 쉽게 대처할 수 있는 구조를 만드는 것이 핵심인데 이를 달성하기 위해 이번 게시글에서는 템플릿 메서드 패턴과 콜백 패턴에 대해 간단히 알아보겠습니다. 1. 템플릿 메서드 패턴 GOF(Gang Of Four) 디자인 패턴에 의하자면 템플릿 메서드의 정의는 아래와 같습니다. "작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기하는 것이 목적입니다. 템플릿 메서드를 사용하면 하위 클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다." 여기서 핵심은 재사..

Design Pattern 2021.11.25