[CS] 디자인패턴

do yeon kim·2022년 10월 6일
0

디자인패턴이란?

라이브러리나 프레임워크의 기본이 되는 디자인패턴

라이브러리 vs 프레이워크

공통으로 사용하는 특정한 기능을 모듈화

라이브러리와 프레임워크는 공통으로 사용하는 특정한 기능을 모듈화 한것을 의미한다.
라이브러리의 주체는 "나"이고, 프로임워크의 주체는 "프레임워크"이다.

라이브러리는 내가 필요한 순간, 특별한 제한 없이 바로 불러와서 사용할 수 있다.
반면, 프레임워크는 사용에 있어서 제한이나 지켜야할 규칙이 있어서, 프레임워크가 정한 규칙에 따라서 사용해야 한다.

request라이브러리 vs Django 프레이워크

python에는 requests라이브러리가 있다.
requests라이브러리를 이용해서 원격으로 API를 호출할 수 있다.
이때 우리는 requests에서 제공하는 메서드 get()등 을 이용해서 필요할 때 자유롭게 사용할 수 있다.

djnago는 python의 프레임워크이다.
django를 사용하기 위해서는 project를 만들고 project안에 app을 만들어서 사용하게 된다. 이때 개발자 마음대로 만드는 것이 아닌 django에서 제공하는 django-admin startprojectdjango-admin startapp과 같은 명령어를 이용해서 생성을 해야 한다. 또한 django를 사용하면서도 views나 url, setting등 규칙을 지켜야지 제대로 동작한다.



그래서 디자인패턴이란...

디자인패턴은 프로그램을 설계할 때 발생하는 문제를 객체간의 상호관계를 이용하여 해결할수 있도록 하는 규약이다. 디자인패턴을 이용한 설계는 유연하고, 유지보수가 용이하며, 확장성, 재사용성도 높다.

디자인패턴을 사용하는 이유는 잘못된 설계의 경우 개발보다 유지보수에 들어가는 비용이 더 커지기 때문이다. 그렇기 때문에 디자인패턴은 설계의 가이드라인으로 참고해서 사용되어지는 것이다.

반드시 디자인패턴을 이용해서 프로그램을 설계할 필요는 없으나, 많은 개발자들이 프로그램을 구현하면서 맞닥들이 여러 문제들을 해결하는 과정에서 비슷한 구현을 통해서 문제가 해결되었고, 그렇게 데이터가 쌓이면서 만들어진 것이 디자인패턴이라고 할 수 있다.

디자인패턴은 크게 3가지로 구분될 수 있다.

  • creational pattern
  • structural pattern
  • behavioral pattern


creational pattern

생성패턴으로 클래스에서 객체의 구성 방법에 관련된 디자인패턴이다.

Builder Pattern
Prototype Pattern
Singleton Pattern
Abstract Factory Pattern


structural pattern

구조패턴으로 클래스의 구성과 관련된 디자인패턴이다.

Adapter Pattern
Bridge Pattern
Composite Pattern
Decorator Pattern
Facade Pattern
Flyweight Pattern
Proxy Pattern


behavioral pattern

행위패턴으로 객체와 클래스간의 상호작용에 관련된 디자인패턴이다.

Interpreter Pattern
Template Pattern
Chain of Responsibility Pattern
Command Pattern
Iterator Pattern
Mediator Pattern
Memento Pattern
Observer Pattern
State Pattern
Strategy Pattern
Visitor Pattern

0개의 댓글