본문 바로가기

디자인 패턴7

[디자인 패턴] 템플릿/콜백(Template/Callback) 패턴 0. 이 글을 쓰게 된 이유 토비의 스프링을 공부하면서 템플릿/콜백 패턴에 대해서 접하게 되었다. 스프링에서 제공하는 코드를 보니 굉장히 많이 활용되고 있었고 활용하기 좋은 패턴이어서 정리하게 되었다. 참고로 이 패턴은 GoF의 디자인 패턴에서는 나오지 않는 패턴이다. 1. 템플릿/콜백 패턴이란? 템플릿/콜백 패턴은 전략 패턴의 일종이다. 전략 패턴의 기본적인 구조에 변화되는 부분을 매번 클래스로 만들지 않고, 익명 내부 클래스를 이용해 바로 생성하여 이용하는 식이다. 1.1 용어 정리 템플릿 템플릿은 어떤 목적을 위해 미리 만들어둔 모양이 있는 틀이다. 프로그래밍에서는 고저오딘 틀 안에 바꿀 수 있는 부분을 넣어서 사용하는 경우에 템플릿이라고 부른다. JSP는 HTML이라는 고정된 틀에 EL과 스크립릿.. 2022. 9. 30.
[디자인 패턴] 전략(Strategy) 패턴 0. 이 글을 쓰게 된 이유 전략 패턴은 평소에 많이 사용하고 기본적인 패턴 중 하나이다. 이 전에도 정리한 적이 있었는데 부족한 내용이 있었기도 하고, 템플릿/콜백 패턴을 공부 하는데에 일단 전략 패턴부터 다시 정리하고 넘어가면 좋겠다 생각이 들어 정리한다. 1. 전략 패턴이란? 전략 패턴이란 행동 패턴 중 하나로, 동일 계열의 알고리즘 군을 정의하고, 각 알고리즘을 캡슐화하며(인터페이스를 통해), 이들을 상호교환이 가능하도록 만든다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있다. Context 클래스는 Strategy 인터페이스 타입의 클래스를 필요하도록 설계 되었다고 하자. Strategy 인터페이스를 구현하는 클래스인 ConcreteStrategyA, C.. 2022. 9. 29.
[디자인 패턴] 팩토리 메소드(Factory Method) 패턴 0. 이 글을 쓰게된 이유 토비의 스프링을 공부하던 중 팩토리 메소드 패턴에 대한 이야기가 나왔다. 경험해본 패턴이라 알고는 있었지만 정리가 되지 않은거 같아 이 글을 쓰게 되었다. 1. 팩토리 메소드 패턴이란? 팩토리 메소드 패턴은 생성 패턴 중 하나로, 객체를 생성할 때 어떤 클래스의 인스턴스를 만들지 서브 클래스에서 결정하게 되는 패턴이다. 추상 클래스인 Creator는 factoryMethod를 통해 Product 인터페이스 타입의 인스턴스를 생성하도록 설계되어있다고 하자. 추상 클래스인 Creator를 상속 받은 서브 클래스 Creator1이 factoryMethod를 오버라이딩해서 Product 인터페이스 타입의 클래스 중 어떤 구체 클래스를 사용하여 인스턴스를 만들지 결정하는 구조이다. 2... 2022. 9. 28.
[디자인 패턴] 디자인 패턴(Design Pattern)이란? 디자인 패턴(Design Pattern)이란? 소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다. - 위키백과 - 디자인 패턴이란 개발하면서 생기는 문제들을 먼저 경험한 선배 개발자들이 만들어 놓은 해결책이다. 그래서 우리는 디자인 패턴을 잘 익혀두었다가 비슷한 문제가 발생할 여지가 있을 때 디자인 .. 2022. 9. 28.
[디자인 패턴] 싱글톤(Singleton) 패턴 이 글을 쓰게 된 이유 이번 글에서는 디자인 패턴의 종류 즁 하나인 싱글톤 패턴에 대해서 알아보자. 싱글톤 패턴은 디자인 패턴 중 가장 유명한 패턴 중 하나로, OOP를 공부한 사람이라면 알고 있는 패턴이다. 하지만 정작 사용하려고 하면 어슬프게 적용을 하거나 왜 써야하는지 모르는 경우가 많은 것 같다. 이번 글을 통해서 디자인 패턴 관점에서 개념과 역할에 대해 살펴보고, Java를 통해 예시 코드까지 작성해보자. 생성 패턴(싱글톤 패턴의 종류) 생성 패턴은 객체의 생성에 관련된 패턴으로 인스턴스의 생성 절차를 추상화하는 패턴이다. 객체를 생성, 합성, 표현 방법을 시스템과 분리한다. 생성 패턴은 다음과 같은 2가지 특징이 있다. 생성 패턴은 시스템이 어떤 구체 클래스(concrete class)를 사용.. 2022. 9. 28.
[디자인 패턴] 전략(Strategy) 패턴 이 글을 쓰게된 이유 이번 글에서는 디자인 패턴의 종류 즁 하나인 전략 패턴에 대해서 알아보자. 전략 패턴은 우리가 코드에서 은근히 많이 쓰는 패턴이다. 하지만 전략 패턴이 정확하게 무엇인지 알고 쓰는 경우가 많다. 이번 글을 통해서 전략 패턴에 대해서 자세하게 알아보고 적절하게 활용할 수 있도록 해보자. 행동패턴(Behavioral Patterns) 이란? 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴이다. 한 객체가 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하며 객체 사이의 결합도 최소화에 중점을 둔다. 패턴을 주로 클래스에 적용하는지 아니면 객체에 적용하는지에 따라 구분되는 패턴이다. 전략(Strategy) 패턴이란? 전략 패턴은 알고리즘을 특정 기준에 따라 분류해 정의하고,.. 2022. 9. 28.