디자인 패턴
: 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로,
소프트웨어 개발과정에서 발견된 Know-How를 축적하여 이름을 붙이고
이후에 재사용하기 좋은 형태로 특정 규약을 묶어서 정리한 것.
※ 이 용어를 소프트웨어 개발 영역에서 구체적으로 처음 제시한 곳은,
GoF(Gang of Four)라 불리는 네 명의 컴퓨터 과학 연구자들이 쓴 서적
'Design Patterns : Elements of Reusable Object-Oriented Software'
(재사용 가능한 객체지향 소프트웨어의 요소 - 디자인 패턴) 이다.
디자인 패턴을 사용하는 이유
1. 요구사항은 수시로 변경 → 요구사항 변경에 대한 Source Code 변경을 최소화
2. 여러 사람이 같이 하는 팀 프로젝트 진행 → 범용적인 코딩 스타일을 적용
3. 상황에 따라 인수 인계하는 경우 발생 → 직관적인 코드 사용
프레임워크
: 비기능적(Non-Funtional) 요구사항 (성능, 보안, 확장성, 안정성 등)을 만족하는 구조와 구현된 기능을
안정적으로 실행하도록 제어 해주는 잘 만들어진 구조의 라이브러리 덩어리
※ 프레임워크는 애플리케이션들의 최소한의 공통점을 찾아 하부 구조를 제공함으로써
개발자들로 하여금 시스템의 하부 구조를 구현하는데 들어가는 노력을 절감하게 해줌.
프레임워크를 사용하는 이유
1. 비기능적인 요소들을 초기 개발 단계마다 구현해야 하는 불합리함을 극복해준다.
2. 기능적인(Functionall) 요구사항에 집중할 수 있도록 해준다.
3. 디자인 패턴과 마찬가지로 반복적으로 발견되는 문제를 해결하기 위해 특화된 Solution을 제공한다.
디자인패턴과 프레임워크의 관련성
디자인 패턴은 프레임워크의 핵심적인 특징이고, 프레임워크를 사용하는 애플리케이션에 그 패턴이 적용된다는
특징을 가지고 있다. 하지만 프레임워크는 디자인 패턴이 아니다.
※ 디자인 패턴은 애플리케이션을 설계할 때 필요한 구조적인 가이드라인이 되어 줄 수는 있지만
구체적으로 구현된 기반코드를 제공하지는 않는다.
※ 프레임워크는 디자인 패턴과 함께 패턴이 적용된 기반 클래스 라이브러리를 제공해서
프레임워크를 사용하는 구조적인 틀과 구현코드를 함께 제공한다.
'Backend' 카테고리의 다른 글
프레임워크의 구성요소와 종류 (0) | 2024.02.21 |
---|---|
SW 재사용 방안들 (0) | 2024.02.21 |