Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java
- 프로토콜역할
- 테스트케이스
- 오버로딩
- 프로세스와스레드의차이
- QA
- STOMP
- XSS
- 자료구조
- N+1문제
- kafka배포
- selenium
- 헥사고날아키텍처
- 티스토리챌린지
- 엘라스틱서치
- nplus1
- 오블완
- 스프링시큐리티
- 하이브리드접근법
- n8n
- Kafka
- 자동화워크플로우
- springboot
- 한화시스템부트캠프
- 부트캠프
- 자바
- 캐시의 작동 원리
- 메소드
- jwt토큰
- JPA
Archives
- Today
- Total
아쿠의 개발 일지
[OOP] 디자인 패턴(Design Pattern)? 본문
디자인 패턴이란?
소프트웨어 공학에서 자주 발생하는 문제에 대한 재사용 가능한 솔루션을 의미한다. 이는 특정한 설계 문제를 해결하기 위해 모범 사례를 정리한 것으로, 프로그래밍에서 반복적으로 사용할 수 있는 설계 방법을 제공한다.
디자인 패턴은 크게 세 가지 종류로 나눌 수 있다.
1. 생성 패턴 (Creational Patterns) :
객체 생성과 관련된 패턴으로, 객체의 생성 과정을 추상화하여 시스템의 유연성을 증가시킨다.
Singleton 싱글톤 패턴 | Factory Method 팩토리 메서드 패턴 |
Abstract Factory 추상 팩토리 패턴 | Builder 빌더 패턴 |
Prototype 프로토타입 패턴 |
2. 구조 패턴 (Structural Patterns) :
클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴으로, 다양한 클래스의 인터페이스를 조합하여 새로운 기능을 제공한다.
Adapter 어댑터 패턴 | Decorator 데코레이터 패턴 |
Bridge 브릿지 패턴 | Composite 컴포지트 패턴 |
Facade 퍼사드 패턴 | Flyweight 플라이웨이트 패턴 |
Proxy 프록시 패턴 |
3. 행위 패턴 (Behavioral Patterns) :
객체나 클래스 간의 상호작용과 책임 분담에 관한 패턴으로, 시스템의 유연성과 확장성을 높인다.
Observer 옵저버 패턴 | Strategy 전략 패턴 |
Command 커맨드 패턴 | State 상태 패턴 |
Chain of Responsibility 책임 연쇄 패턴 |
Visitor 방문자 패턴 |
Interpreter 인터프리터 패턴 | Memento 메멘토 패턴 |
Mediator 중재자 패턴 | Template Method 템플릿 메서드 패턴 |
Iterator 이터레이터 패턴 |
이러한 디자인 패턴의 장점
- 재사용성 : 반복적인 문제에 대한 일반적인 해결책을 제공하며 이를 재사용하여 코드를 더 쉽게 작성 가능
- 가독성 : 일정한 구조로 정리하기에, 개발자가 코드를 이해하고 유지보수하기 쉬움
- 유지보수성 : 코드를 쉽게 모듈화 할 수 있으며, 수정이 필요한 경우 해당 모듈만 수정하여 유지보수가 쉬움
- 확장성 : 새로운 기능을 추가하거나, 변경할 때 디자인 패턴을 활용하여 기존 코드를 변경하지 않고 새로운 기능 통합
- 안정성과 신뢰성
수많은 디자인 패턴들이 존재하지만 이들 중에서 가장 유명한 GoF 디자인 패턴에 등장하는 23가지 패턴에 대해서 알아보았습니다. 이 디자인 패턴들은 크게 생성, 구조, 행위 패턴으로 분류되고 있습니다.
728x90
'Programming > CS' 카테고리의 다른 글
운영체제(Operating System)의 핵심 개념 (0) | 2025.01.14 |
---|---|
[Network] SSL 인증서 적용 & K8S 클러스터 Ingress-nginx 활용 (1) | 2025.01.08 |
[Network] HTTP/HTTPS 차이점, SSL 인증서 다운로드 받기 (4) | 2025.01.07 |
[Security] UsernamePasswordAuthenticationFilter 인증 과정 (1) | 2025.01.02 |
[Security] JWT(JSON Web Token)토큰이란? (3) | 2024.12.31 |