디자인패턴의 정의

프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 소프트웨어 개발과정에서 발견된 노하우를 축적하여 이름을 붙여 이후에 재사용하기 좋은 형태로 특정 규약을 묶어서 정리한 것이다.

디자인패턴을 사용하는 이유

  • 요구사항은 수시로 변경 → 요구사항 변경에 대한 소스코드 변경을 최소화
  • 여러 사람이 같이 하는 팀 프로젝트 진행 시 → 범용적인 코딩 스타일을 적용
  • 상황에 따라 인수인계 하는 경우도 발생 → 객관적인 코드를 사용

프레임워크의 정의

비기능적(Non-Functional) 요구사항(성능, 보안, 확장성, 안정성 등)을 만족하는 구조와 구현된 기능을 안정적으로 실행하도록 제어해주는 잘 만들어진 구조의 라이브러리 덩어리

프레임워크는 애플리케이션들의 최소한의 공통점을 찾아 하부 구조를 제공함으로써 개발자들로 하여금 시스템의 하부 구조를 구현하는데 들어가는 노력을 절감하게 해줌

프레임워크를 사용하는 이유

  • 비기능적인 요소들을 초기 개발 단계마다 구현해야 하는 불합리함을 극복해줌
  • 기능적인(Functional) 요구사항에 집중할 수 있도록 해준다.
  • 디자인 패턴과 마찬가지로 반복적으로 발견되는 문제를 해결하기 위한 특화된 Soultion을 제공함 (ex. 한글 깨짐 → 인코딩 기능 사용)

디자인패턴과 프레임워크의 관련성

디자인 패턴은 프레임워크의 핵심적인 특징이고, 프레임워크를 사용하고있는 애플리케이션에 그 패턴이 적용된다는 특징을 가지고 있다. 하지만 프레임워크는 디자인패턴이 아니다.

  • 디자인 패턴은 애플리케이션을 설계할 때 필요한 구조적인 가이드라인이 되어 줄 수 는 있지만, 구체적으로 구현된 기반코드를 제공하지 않는다.
  • 프레임워크는 디자인 패턴과 함께 패턴이 적용된 기반 클래스 라이브러리를 제공해서 프레임워크를 사용하는 구조적인 틀과 구현코드를 함께 제공한다.

개발자는 프레임워크의 기반코드를 확장하여 사용하면서, 자연스럽게 그 프레임워크에서 사용된패턴(디자인패턴)을 적용할 수 있게 된다.

'etc' 카테고리의 다른 글

시놀로지 나스에 PostgreSQL 설치 및 외부 연결  (0) 2023.08.22
PowerMockup  (0) 2023.06.05
JSON  (0) 2022.12.26
HTTP  (0) 2022.08.21
HTTP 요청과 응답  (0) 2022.08.21

+ Recent posts