-
[Design Pattern] 개발 디자인 패턴기술면접 스터디 2024. 4. 17. 16:24
Design Pattern
개발 디자인 패턴이란?
: 개발 디자인 패턴은 소프트웨어 설계 과정에서 자주 발생하는 문제들을 해결하기 위해 일반화된 재사용 가능한 솔루션을 제공한다.
이러한 패턴은 특정 문제를 해결하는 방법론으로, 코드를 더욱 유지보수하기 쉽고 확장 가능하며 효율적으로 만들 수 있도록 도와준다. 디자인 패턴은 소프트웨어 엔지니어링의 베스트 프랙티스로 여겨지며 개발 과정을 가속화하고 복잡한 설계 문제를 보다 쉽게 해결할 수 있게 한다.
- 생성 패턴 (Creational Patterns)
생성 패턴은 객체 생성 메커니즘을 중심으로 한다, 즉 객체 생성과 관련된 복잡성을 캡슐화하고 클라이언트 코드가 특정 인스턴스가 아닌 인터페이스에 의존하도록 만든다. 이로 인해 시스템의 유연성과 재사용성이 향상된다.
대표적인 생성 패턴으로는 싱글턴(Singleton), 팩토리 메서드(Factory Method), 추상 팩토리(Abstract Factory), 빌더(Builder), 프로토타입(Prototype) 등이 있다.
- 구조 패턴 (Structural Patterns)
구조 패턴은 클래스나 객체를 조합하여 더 큰 구조를 만드는 방법에 초점을 맞춘다. 이 패턴은 다른 객체들 간의 관계를 정립하여 복잡한 시스템을 구축하거나 확장하기 쉽게 만든다.
대표적인 구조 패턴으로는 어댑터(Adapter), 브리지(Bridge), 컴포지트(Composite), 데코레이터(Decorator), 퍼사드(Facade), 플라이웨이트(Flyweight), 프록시(Proxy) 등이 있다.
- 행동 패턴 (Behavioral Patterns)
행동 패턴은 객체들이 서로 효과적으로 소통하는 방법, 즉 객체들 사이의 책임 분배와 협력 방법에 관련된 패턴이다. 이 패턴은 객체들이 서로 독립적으로 협력할 수 있도록 하여 시스템의 유연성을 높인다.
대표적인 행동 패턴으로는 전략(Strategy), 옵저버(Observer), 커맨드(Command), 이터레이터(Iterator), 중재자(Mediator), 메멘토(Memento), 상태(State), 방문자(Visitor), 체인 오브 리스폰서빌리티(Chain of Responsibility), 인터프리터(Interpreter) 등이 있다.
디자인 패턴 관련 참고하기 좋은 자료
https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8616098823
'기술면접 스터디' 카테고리의 다른 글
[Data Structure] Array, LinkedList / Stack, Queue, Priority Queue(우선순위 큐) / Heap(힙), heapq 모듈 (0) 2024.04.29 [Data Structure] Array vs LinkedList (0) 2024.04.23 [Development common sense] 함수형 프로그래밍, MVC패턴 (0) 2024.04.16 [Development common sense] TDD - 기본 사이클, 장단점, 의문점 (1) 2024.04.16 [Development common sense] 객체 지향 프로그래밍, RESTful API (0) 2024.04.15