프레임워크(Framework)란?
위키백과
소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다.
간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다.
Ralph Johnson의 정의
소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것.
- 설계의 기반이 되는 부분을 기술한 '확장 가능한 기반 코드'와 사용자가 이 코드를 필요에 맞게 확장하는 데 필요한 라이브러리 두 가지 요소가 통합되어 제공되는 형태
- 원하는 기능 구현에만 집중하여 빠르게 개발 할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것
라이브러리(Library)란?
위키백과
라이브러리(영어: library)는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다.
여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함할 수 있다.
- 자주 쓰일 만한 기능들을 모아 놓은 유틸들의 모음집
- 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합
- 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진 것
정리
프레임워크는 자동차의 프레임, 즉 기본적으로 구성하고 있는 뼈대를 말한다.
라이브러리는 자동차의 기능을 하는 부품을 의미한다. (ex) 바퀴, 헤드라이트, 와이퍼 등
한 번 정해진 자동차의 프레임은 바꿀 수 없다.
소형차를 만들기 위해 뼈대를 사용하는데, 이 뼈대로 SUV를 만들 수는 없다.
하지만 바퀴나 헤드라이트 등은 비교적 다른 종류로 쉽게 바뀔 수 있다.
프레임과 부품을 일일이 만들어서 자동차를 만들어도 되지만, 많은 시간과 비용을 소모한다.
그래서 프레임워크와 라이브러리가 존재한다.
내가 원하는 기능을 구현하기 위해 기본적인 뼈대와 부품을 가져다 쓰는 것이다.
자동차에 하늘을 나는 기능을 온전히 구현하기 위해 자동차의 프레임과 부품을 아웃소싱 하는 것처럼.
Attach
'개발 지식 > computer science' 카테고리의 다른 글
서블릿의 동작원리와 라이프 사이클 Servlet life cycle (0) | 2020.07.26 |
---|---|
C와 Java의 특징과 차이점 (0) | 2020.07.25 |