-
디자인 패턴이란 무엇인가(Design Pattern)CS/디자인 패턴 2022. 12. 1. 23:47728x90
1. 패턴
패턴(pattern)이란 어떤 규칙에 따라 반복되는 사물, 사건 등의 형태를 의미합니다.

2. 디자인 패턴이란?
정보처리기사를 공부했다면 들어봤을 디자인 패턴 그리고 Gang of Four.
1994년 에릭 감마, 리처드 헬름, 랄프 존슨, 존 블리시디스 4명이 "디자인 패턴 : 재사용 가능한 객체 지향적 소프트웨어의 요소"라는 책을 발간했습니다.
이 책은 기존에 존재하는 디자인 패턴을 프로그래밍에 적용하는 내용을 담고 있으며 23가지의 패턴을 소개했습니다.
이 책이 베스트셀러에 등극하며 너무 긴 제목 대신 '저자 4명이 쓴 그 책'이라고 부르게 되면서 "GoF 디자인 패턴"이라는 이름으로 불리게 된 것입니다.
디자인 패턴은 소프트웨어 개발 시 발생할 수 있는 문제점을 해결하기 위해 등장한 해결책이며,
프로그래밍 시 객체 간의 상호 관계 등을 이용하여 문제를 해결할 수 있도록 만든 규약입니다.
3. 디자인 패턴을 배워야 하는 이유는?
소프트웨어 개발은 디자인 패턴을 몰라도 할 수 있습니다.
하지만 개발을 하면서 맞닥뜨릴 문제점들을 해결하기 위해 많은 시간과 노력을 투자해야 할 것입니다.디자인 패턴은 여러 사람들이 프로그래밍 시 발생한 문제들을 해결하기 위해 시도하고 결과적으로 성공적이었던 방법들을 종합하여 규약화한 것입니다.
이미 누군가 시도했고 검증까지 완료된 방법을 배우지 않을 이유가 있나요?개발의 꽃은 협업이라고 해도 과언이 아닙니다.
이 때문에 개발자라면 필히 소통능력을 갖추고 있길 기대합니다.
POJO(Plain Old Java Object)라는 말을 사용한 마틴 파울러의 말을 빌리자면,우리는 사람들이 자기네 시스템에 보통의 객체를 사용하는 것을 왜 그렇게 반대하는지 궁금하였는데, 간단한 객체는 폼 나는 명칭이 없기 때문에 그랬던 것이라고 결론지었다. 그래서 적당한 이름을 하나 만들어 붙였더니, 아 글쎄, 다들 좋아하더라고.
- 마틴 파울러즉, 어떤 문제를 해결하기 위한 해결책에 이름을 붙여 사용하게 되면서
보다 효율적인 의사소통이 가능해졌고, 이로써 팀 업무의 효율성이 증가되었습니다.전체적 구조나 세부사항 등을 설명하느라 많은 시간을 투자하지 않아도
패턴 이름을 통해 바로 전달하게 되니 절약된 시간이 도대체 얼마나 될까요?그리고 앞서 말했듯 디자인 패턴은 문제를 해결하기 위한 방법이기 때문에
협업뿐만 아니라 개인에게도 프로그래밍 시 해결해 나갈 문제들을 보다 효과적으로 풀어나갈 수 있게 됩니다.4. 디자인 패턴 대분류
디자인 패턴은 총 3개의 대분류로 나뉩니다.
- 생성 패턴
→ 코드의 재활용과 유연성을 증가시키는 객체 생성 구조 방법
→ 예) 싱글톤(singleton), 추상 팩토리(Abstract Factory), 빌더(Builder) 등 - 구조 패턴
→ 객체와 클래스를 조합하여 더 크고 효율적인 구조로 만드는 방법
→ 데코레이터(Decorator), 브리지(Bridge), 파사드(Facade) 등 - 행동 패턴
→ 객체 간 책임 분배 방식에 따라 구분되는 방법
→ 전략(Strategy), 책임 연쇄(Chain of Responsibility), 커맨드(Command), 옵서버(Observer) 등
5. 디자인 패턴 개별 정리는 다음 글에서...
728x90 - 생성 패턴