프로그래밍 29

디자인 패턴 - Template Method (Behavioral Pattern)

Behavioral Pattern인 Template Method Pattern에 대해 정리합니다. Definition Template Method 패턴은 상위 클래스에서 처리의 뼈대를 결정하고, 하위 클래스에서 그 구체적인 내용을 결정하는 디자인 패턴입니다. ※ OOP의 기본인 Abstraction 의 활용 예를 보여주는 대표적인 패턴입니다. Class Diagram AbstractClass는 탬플릿 메소드를 구현. ConcreteClass는 AbstractClass 역할에서 정의되어 있는 추상 메소드를 구체적으로 구현. Sample Case 다음은 Template Method 패턴을 적용한 시나리오입니다. Scenario 사람을 나타내는 AbstractHuman 추상 클래스가 있고, 이 때 speak(..

디자인 패턴 - Interpreter (Behavioral Pattern)

Behavioral Pattern의 첫 번째인 Interpreter Pattern에 대해 정리합니다. 외부에서 만들어놓은 미니 프로그램을 해석하여 실행하는 Interpreter 를 만들어봅시다. Definition Interpreter 패턴에서는 프로그램이 해결하려는 문제를 간단한 '미니 언어'로 표현합니다. Class Diagram Singleton class의 constructor가 private으로 되어 있습니다. ※ 그래서 외부에서 객체를 별도로 생성할 수 없습니다.(중요) member field인 singleton 역시 private으로 되어 있고 class가 memory에 로딩될 때 자신의 객체가 생성됩니다. 생성된 singleton 객체는 오직 getInstance()를 통해서만 참조 가능합..

python - Mixin

Python에서 Mixin 개념을 정리합니다. Mixin네 이렇게 섞는 겁니다.. (포스팅에서는 python class code를 Mixin합니다.) DefinitionMixin은 OOP 프로그래밍 개념으로 특정 클래스의 코드를 다른 클래스에 삽입(혼합) 할 수 있도록 합니다. Python에서는 다중 상속 문법으로 Mixin을 구현합니다. 개념적으로 Mixin 클래스는 부모클래스가 되지 않으면서 어떤 클래스에서 사용할 수 있는 메소드를 포함하는 클래스입니다. 다시 한번, Mixin은 상속의 개념으로 쓰는 것이 아니라 끼워넣는 개념에 가깝습니다. Charateristic1. Mixin 할 때, 동일한 속성 및 메소드는 Overriding이 됩니다. Python 에서 다음처럼 다중 상속을 하면12class ..

디자인 패턴 - Singleton (Creational Pattern)

Creational Pattern의 마지막인 Singleton Pattern에 대해 정리합니다. 세상(Process)에서 유일함을 보장하는 패턴입니다:) Definition Singleton은 instance가 한 개밖에 존재하지 않는 것을 보증하는 패턴입니다. ※ 디자인 패턴 중 가장 간단한 패턴이지만 가장 많이 쓰이는 패턴입니다. Class Diagram Singleton class의 constructor가 private으로 되어 있습니다. ※ 그래서 외부에서 객체를 별도로 생성할 수 없습니다.(중요) member field인 singleton 역시 private으로 되어 있고 class가 memory에 로딩될 때 자신의 객체가 생성됩니다. 생성된 singleton 객체는 오직 getInstance(..

디자인 패턴 - Prototype (Creational Pattern)

Creational Pattern인 Prototype Pattern에 대해 정리합니다. 제국을 습격하기 위해서 대량의 clone을 생성해 봅시다:) Definition Prototype은 instance로 부터 별도의 instance를 만드는 패턴입니다. Class Diagram Sample Case 다음은 Prototype 패턴을 적용한 시나리오입니다. Scenario 우리의 요리사(Cooker)는 호도과자 전문점을 차렸습니다. 다행히 아주 장사가 잘 되어 언제 주문이 들어올지 모르기 때문에 미리 호도과자 포장을 해두려고 합니다. 호도과자 개수에 따라 포장지를 다르게 싸두기 위한 틀을 만들어 놓고,(prepare()) 주문이 들어오는 즉시, 틀로부터 호도과자를 빨리 만들어 내어(create()), 구매..

디자인 패턴 - Builder (Creational Pattern)

Creational Pattern인 Builder Pattern에 대해 정리합니다. Builder는 전체를 만들기 위해 하나씩 부분부터 만들어 갑니다. Definition Builder는 Set of Objects의 생성 과정과, 만들어진 Set of Objects 의 표현 과정을 분리함. - Builder는 Director에 의해서 만들어지는 과정이 encapsulation 됨. - 만들어진 Set of Objects의 결과만 Client가 사용할 수 있도록 함. - Director는 Product가 만들어지는 step은 Builder를 통하여 알 수 있지만, Product가 어떻게 만들어지는지 detail은 모름. Builder는 만드는 부분 위주로 집중합니다. 목적 - 쉽게 교체 가능한 알고리즘을 ..

디자인 패턴 - Abstract Factory (Creational Pattern)

Creational Pattern인 Abstract Factory Pattern에 대해 정리합니다. Definition Abstract Factory 는 추상적인 공장에서 추상적인 부품을 조합해서 제품을 만드는 패턴입니다. 부품의 구체적인 구현에는 주목하지 않고 abstract class의 interface에 주목하여 부품을 조립합니다. Class Diagram factory package의 AbstractFactory는 AbstractProduct1, AbstractProduct2를 만듭니다. factory package의 내용을 바탕으로 concretefactory pacakage에서 구현을 실체화 합니다. Abstract Factory 및 Product의 형태 기반에서 비슷하지만 다양한 형태의 Fa..

디자인 패턴 - Factory Method (Creational Pattern)

Creational Pattern인 Factory Method Pattern에 대해 정리합니다. Factory naming 그대로 공장에서 같은 개체를 찍어 내는 패턴입니다. Definition Factory Method 는 instance를 생성하는 공장을 Template Method 패턴으로 구성한 패턴입니다. instance를 만드는 방법을 상위 class에서 결정하고, 구체적인 내용은 모두 하위 class에서 구현합니다. Class Diagram Creator 가 Product를 생성하는 역할을 합니다. Creator class는 Template Method 패턴으로 구현됩니다. Sample Case 다음은 Factory Method 패턴을 적용한 시나리오입니다. Scenario 이번에 우리 회사..

python - Pandas Dataframe Handling(Creation, Filtering, Translation)

python library인 Pandas의 dataframe 처리에 관해 자주 쓰는 부분을 정리합니다. Creation, Filtering, Translation 등에 관한 정리입니다. Index 1. Creation 2. reset_index 3. Basic filtering 4. Translation Creation 기본 dataframe 생성입니다. pandas.DataFrame class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False) pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html 다음과 같이 dataframe을 만들어서 사..

디자인 패턴 - Proxy (Structural Pattern)

Structural Pattern의 마지막인 Proxy Pattern에 대해 정리합니다. 대리인(proxy)을 사용하는 이유는 내가 아니라도 가능한 일을 맡기기 위해서입니다. 내가 해야만 하는 중요한 일은 내가 하고, 아닌 일은 대리인에게 맡기도록 합시다. Definition Proxy 는 heavy한 작업은 필요할 때 직접하고, 맡길 수 있는 일은 proxy를 통해 하는 패턴입니다. Proxy Pattern은 Structural Pattern에 해당합니다. (Structural Pattern은 이제 마지막이네요^^) Class Diagram Sample Case 다음은 Proxy 패턴을 적용한 시나리오입니다. Scenario 우리는 Database에서 Query를 실행시키려고 합니다. Database에..

반응형