둘이 같은게 아닌가?: 라이브러리와 프레임워크
프레임워크(framework)
원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 기능을 갖추고 있는 골격, 뼈대를 의미한다.
프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리증, DB연동과 같은 기능을 위해 어느 정도 구조(뼈대)를 제공하고, 이러한 구조위에서 사용자가 코드를 작성하여 애플리케이션을 개발
앱/서버 등의 구동, 메모리관리, 이벤트 루프 등 공통된 부분은 프레임워크가 관리하고, 사용자는 프레임워크가 정해준 방식대로 클래스, 메소드를 구현, 소프웨어의 특정 문제를 해결하기 위해서 상호협력하는 클래스와 인터페이스의 집합
프레임워크의 기능
- 코드 재사용성: 프레임워크는 공통 기능을 제공하여 코드재사용에 용이하다.
- 일정한 구조 제공: 프레임워크는 어플리케이션 구조를 정의하여 개발자가 그 구조를 따르도록 한다.
- 모듈화: 프레임워크는 기능을 모듈화하여 독립적인 컴포넌트로 나룰 수 있게 한다.
- 생상선 향상: 반복적인 작업을 자동화하고 개발 생산성을 높인다.
- 유지보수성: 일관된 코드 구조를 유지하여 유지보수성을 향상시킨다.
라이브러리(Library)
라이브러리는 단순 활용가능한 도구들의 집합이다 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비 휘발성 자원의 모음 미리 작성된 코드, 변수, 함수, 클래스가 포함
라이브러리의 기능
- 코드 재 사용성: 라이브러리는 특정 작업을 처리하는 코드의 재사용을 촉진
- 추상화: 복잡한 작업을 간단한 함수 호출로 추상화한다.
- 모듈화: 라이브러리는 기능별로 모듈화 되어 필요에 따라 가져다 쓸 수 있다.
- 유연성: 개발자가 필요에 따라 라이브러리를 선택하여 사용할 수 있다.
프레임워크와 라이브러리의 차이점
제어의 역전
라이브러리와 프레임워크의 가장 큰 차이는 제어흐름에 대한 주도성이 누구에게/어디에 있는가에 있다. 즉, 애플리케이션 Flow(흐름)을 누가 가지고 있느냐에 달려있다.
프레임워크는 전체적인 흐름을 프레임워크가 가지고 있으며 사용자는 그 안에 필요한 코드를 짜 넣으면 되고, 반면에 라이브러리는 사용자가 전체적인 흐름을 직접 만들고 필요에 따라 라이브러리를 가져다 쓰는 것
구조 제공 유뮤
프레임워크는 전체 애플리케이션의 구조를 정의하여 일정한 패턴을 따르게 한다.
라이브러리는 특정 기능만을 제공할 뿐 애플리케이션의 전체 구조에는 관여하지 않는다. 사용하는 개발자 스스로 우너 하는 방식으로 구조를 설계할 수 있다.
[결과]
프레임워크가 흐름을 제어하고 사용자가 만든 코드를 사용하고
라이브러리는 사용자가 흐름을 제어하고 라이브러리를 가져다 사용
[느낀 점]
프레임워크와 라이브러리의 차이점 같이 같은 것 같으면서 다른 것들이 많은 것 같다
참조사이트
[개발상식] 프레임워크(Framework)와 라이브러리(Library)의 차이
프레임워크 라이브러리 차이. 라이브러리 프레임워크 차이.
idkim97.github.io