디자인 패턴이 SW에 끼치는 영향

Heejeong Choi·2021년 10월 4일
0

웹개발

목록 보기
4/6
해당 포스팅은 '한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online'을 보고 작성되었습니다. 혹시라도 참고하실 부분이 있으시다면 출처를 꼭 남겨주시면 감사하겠습니다🙏🏼

디자인 패턴

자주 사용하는 설계 패턴을 정형화 해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계이다. 알고리즘과는 유사하지만, 명확하게 정답이 있는 형태는 아니고 프로젝트 상황에 따라 맞춰 적용이 가능하다.
  • SW를 설계 할 때 기존의 경험이 매우 중요한데, 이러한 경험을 모든 사람이 갖고 있을 수 없기 때문에 이러한 지식을 공유하기 위해 나온 것이 GOF(Gang of Four)의 디자인 패턴이다.
  • OOP 개념에 따른 설계 중 재사용할 경우 유용한 설계를 패턴으로 정리해둔 것. Gof의 디자인 패턴은 총 23개이지만 다 자주 사용될 것은 아니고, 이러한 디자인 패턴을 잘 활용하면 좋은 SW 설계가 가능함.

디자인 패턴의 장단점

장점단점
개발자간의 원활한 소통👌🏼OOP 설계 및 구현을 해야함
SW 구조 파악이 쉬워짐초기 투자 비용이 부담됨
한번 만들어진 OOP를 통한 개발 시간 단축
설계 변경 요청에 대한 유연하게 대처가능

디자인 패턴의 종류

  1. 생성 패턴 : 생성패턴은 인스턴스를 만드는 절차를 추상화하는 패턴. 시스템으로부터 객체의 생성 방법을 분리해내기 위한 패턴. 생성패턴은 시스템이 어떤 구체 클래스를 사용하는지, 또한 인스턴스들이 어떻게 만들어지고 어떻게 합성되는지에 대한 정보를 완전히 가려주기도 한다.

    Factory Method, Singleton, Prototype, Builder, Abstract Factory, Chaining
  2. 구조 패턴 : 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램 구조를 설계하는데 활용 될 수 있는 패턴 클래스, 객체들의 구성을 통해 더 큰 구조도 만들 수 있게 해주는 패턴. 큰 규모의 시스템에서는 많은 클래스들이 서로 의존성을 갖는데 이런 복잡한 구조를 개발하기 쉽게 만들어주고 유지보수 또한 쉽게 한다.

    Adapter, Composite, Bridge, Decorator, Facade, Flyweight, Proxy
  3. 행위 패턴 : 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것으로, 클래스나 객체들의 상호작용 하는 방법과 책임을 분산할 때 사용하는 패턴. 행위 관련 패턴을 사용해 독립적으로 일을 처리하고자 할 때 사용됨.

    Template Method, Interpreter, Iterator, Observer, Strategy, Visitor, Chain of responsibility, Command, Mediator, State, Memento
profile
Welcome to my velog! I love learning something new to build up my ability in development field. I don't think it is shame not to know, but it is shame to pretend to know about something you don't know.

0개의 댓글