프레임 워크
컴퓨터 프로그래밍에서 프레임워크는 구조적으로 고정된 부분을 재사용할 수 있도록 하고, 응용별 특정 기능을 추가적인 사용자 작성 코드에 의해 선택적으로 구현 가능하도록 하는 포괄적인 추상 구조, 그리고 이를 지원하는
플랫폼을 말한다. ;즉, 소프트웨어의 개발에 필수적이고 표준적인 부분에 해당하는 설계와 구현을 재사용 가능하도록, 일련의 협업화된 형태의 클래스들로 제공하는 반제품 소프트웨어 모듈이라고 볼 수 있다. 소프트웨어 프레임워크는 지원 프로그램,
, 코드 라이브러리, 도구 세트,
등과 같이 프로젝트나 솔루션 개발을 가능하게 하는 여러 가지 서로 다른 컴포넌트들을 포함한다.프레임워크 기반으로 개발을 수행하는 경우, 기반 구조를 그대로 재사용하고 비즈니스 로직과 관련된 부분을 추가적으로 구현하면 되기 때문에 빠른 어플리케이션 구축이 가능하다. 또한 동일 프레임워크를 사용하는 어플리케이션들은 비슷한 뼈대 구조를 가지기 때문에 관리 및 테스트가 용이하다.프레임워크는 명확하게 정의된 API를 가지고 코드를 재사용 가능한 형태로 구조화한다는 점에서 라이브러리와 비슷하다. 그러나 라이브러리에서는 호출 측이 전체 프로그램 제어 구조를 지정할 수 없지만, 프레임워크에서는 이러한 제어의 반전(inversion of control)이 가능하다. 또한 라이브러리와 달리 프레임워크는 사용자가 선택적 오버라이딩(overriding, 상속받은 함수를 재정의 하는 것)이나 특정 기능을 수행하는 사용자 코드로 특수화하여 코드를 확장 재사용할 수 있다.프레임워크는 프로그래머들이 어플리케이션에 세부적인 사항을 제외한 공통 부분들의 개발에 드는 시간을 줄이고 세부 요구사항 구현에 집중할 수 있도록 하는 것을 목표로 한다. 예를 들어, 은행 웹 사이트 구축 시 웹 어플리케이션 프레임워크를 사용한다면, 개발팀은 은행 업무와 관련된 특정 기능 개발에만 주력할 수 있는 것이다. 하지만 프레임워크 내의 API가 복잡하게 얽혀 있어서 프레임워크 사용 시 코드가 비대화 되고, 프레임워크의 초기 학습 시간이 많이 소요된다는 비판도 있다. 또한 프레임워크는 서로 다른 플랫폼 제품이나 특정 공급 업체와 버전에 의존적이 될 위험이 있다. 따라서 초기에 소프트웨어 개발에 필요한 적절한 프레임워크를 선택하고 최대한 변경 및 전환할 위험을 줄이는 것이 필요하다.사용자 응용 프로그램을 개발하기 위한 프레임워크의 예로써 다음과 같은 것들이 있다.- 의사 결정 지원 시스템- 웹 애플리케이션 프레임워크-
- 금융 모델링 애플리케이션- 멀티미디어 프레임워크- 엔터프라이즈 아키텍처(enterprise architecture) 프레임워크
'Javascript & Typescript' 카테고리의 다른 글
[Typescript] any 타입을 가능한 좁은 범위에서 사용하기 (0) | 2022.01.07 |
---|---|
JS Garbage Collection (0) | 2022.01.02 |
JS - Function (0) | 2020.07.21 |
JS - Object (0) | 2020.07.21 |