반응형

컴퓨터 과학 Computer Science/디자인 패턴 Design Patterns 5

개방-폐쇄 원칙(The Open Closed Principle, OCP)이란?

The Open Closed Principle(OCP)란?The Open Closed Principle(OCP)는 개방-폐쇄 원칙을 말한다. 로버트 C 마틴의 글에서 소개되었다. (출처: Design Principles and Design Patterns(https://web.archive.org/web/20150906155800/http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf)) The Open Closed Principle (OCP) A module should be open for extension but closed for modification.Of all the principles of object orien..

[디자인 패턴] 추상 팩토리 패턴과 파이썬 예제 코드

추상 팩토리 패턴(Abstract Factory Pattern)은?생성 패턴 중 하나로 추상 팩토리 패턴은 관련성 있는 여러 제품군을 한 번에 생성할 수 있도록 도와주는 패턴이다. 팩토리 메소드 패턴은 단일 제품군을 다루지만 추상 팩토리 패턴은 여러 제품군을 한 번에 생성한다. 언제 사용하는가?서로 관련 있는 여러 객체를 한 번에 생성하고 싶을 때 사용한다. 팩토리 메소드 패턴은 예를 들면 소셜 로그인처럼 하나만 다루지만, 추상 팩토리 패턴은 로그인 서비스와 결제 서비스처럼 연관된 여러 제품군을 함께 다루는데 적합하다. 카카오 플랫폼에서는 카카오 로그인과 카카오페이를, 네이버 플랫폼에서는 네이버 로그인과 네이버페이를 함께 사용해야 한다. 이 경우 추상 팩토리 패턴을 사용하면 카카오 제품군과 네이버 제품군..

[디자인 패턴] 팩토리 메소드 패턴과 파이썬 예제 코드

팩토리 메소드 패턴(Factory Method Pattern)은?생성 패턴 중 하나로 팩토리 메소드 패턴은 객체 생성을 서브클래스에 위임해서, 클라이언트 코드가 구체 클래스에 직접 의존하지 않도록 만드는 생성 패턴이다. 객체 생성 코드를 분리함으로써 새로운 타입이 추가되더라도 기존 클라이언트 코드를 수정할 필요 없이 확장할 수 있다. 언제 사용하는가?팩토리Factory란 이름처럼 자동차 공장에서 세단, SUV, 트럭 등 다양한 차를 생산하는 경우를 떠올릴 수 있다. 이처럼 상황에 따라 다른 객체를 생성해야 할 때 유용하다.예를 들어, 소셜 로그인 연동 기능을 구현할 때, 카카오 로그인, 네이버 로그인, 구글 로그인 등 다양한 외부 서비스와 연동이 필요하다. 이때 팩토리 메소드 패턴을 사용하면 객체 생성과..

[디자인 패턴] 심플 팩토리 패턴과 파이썬 예제 코드

심플 팩토리 패턴(Simple Factory Pattern)은?생성 패턴 중 하나로 심플 팩토리 패턴은 클라이언트가 입력한 인자에 따라 객체를 분기해서 생성하는 패턴이다. 클라이언트는 직접 객체를 생성하지 않고, 공장 역할을 하는 클래스에 생성을 위임한다. 언제 사용하는가?팩토리Factory란 이름처럼 자동차 공장에서 세단, SUV, 트럭 등 다양한 차를 생산하는 경우를 떠올릴 수 있다. 이처럼 상황에 따라 다른 객체를 생성해야 할 때 유용하다. 예를 들어, 소셜 로그인 연동 기능을 구현할 때, 카카오 로그인, 네이버 로그인, 구글 로그인 등 다양한 외부 서비스와 연동이 필요하다. 이때 심플 팩토리 패턴을 사용하면, 클라이언트는 어떤 클래스가 생성되는지 알 필요 없이 공장 클래스(Factory Class..

[디자인 패턴] 싱글턴 패턴과 파이썬 예제 코드

싱글턴 패턴은?생성 패턴 중 하나로 전역에서 접근 가능한 하나의 객체를 제공하는 패턴이다. 언제 사용하는가?로깅이나 데이터베이스 작업, 설정값처럼 단일 객체가 필요한 경우에 사용한다.설정값을 예로 들어보자. 설정은 프로그램 전역에서 사용하며 당연히 같은 값을 반환해야 한다. 굳이 여러 객체를 만들어서 사용해야 할 이유가 없다. 사례파이썬 웹프레임워크인 장고의 설정 사례를 살펴보자.장고에서 설정값을 불러와서 사용할 때from django.conf import settings식으로 불러와서 사용하게 된다. 이 settings가 싱글턴 패턴으로 되어 있다. django/conf/__init__.py 파일을 보면 아래처럼 선언되어 있다.settings = LazySettings() 출처: https://gith..

반응형