Java

둘이 같은게 아닌가?: 라이브러리와 프레임워크

prodonghwa 2024. 7. 7. 13:59

이미지 출처: https://medium.com/swlh/the-easiest-concept-between-library-and-framework-f7c6134dcc6c

 

프레임워크(framework)

원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 기능을 갖추고 있는 골격, 뼈대를  의미한다.

프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리증, DB연동과 같은 기능을 위해 어느 정도 구조(뼈대)를 제공하고, 이러한 구조위에서 사용자가 코드를 작성하여 애플리케이션을 개발

앱/서버 등의 구동, 메모리관리, 이벤트 루프 등 공통된 부분은 프레임워크가 관리하고, 사용자는 프레임워크가 정해준 방식대로 클래스, 메소드를 구현, 소프웨어의 특정 문제를 해결하기 위해서 상호협력하는 클래스와 인터페이스의 집합

 

프레임워크의 기능

  1. 코드 재사용성: 프레임워크는 공통 기능을 제공하여 코드재사용에 용이하다.
  2. 일정한 구조 제공: 프레임워크는 어플리케이션 구조를 정의하여 개발자가 그 구조를 따르도록 한다.
  3. 모듈화: 프레임워크는 기능을 모듈화하여 독립적인 컴포넌트로 나룰 수 있게 한다.
  4. 생상선 향상: 반복적인 작업을 자동화하고 개발 생산성을 높인다.
  5. 유지보수성: 일관된 코드 구조를 유지하여 유지보수성을 향상시킨다.

 

라이브러리(Library)

라이브러리는 단순 활용가능한 도구들의 집합이다 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비 휘발성 자원의 모음 미리 작성된 코드, 변수, 함수, 클래스가 포함

 

라이브러리의 기능

  1. 코드 재 사용성: 라이브러리는 특정 작업을 처리하는 코드의 재사용을 촉진
  2. 추상화: 복잡한 작업을 간단한 함수 호출로 추상화한다.
  3. 모듈화: 라이브러리는 기능별로 모듈화 되어 필요에 따라 가져다 쓸 수 있다.
  4. 유연성: 개발자가 필요에 따라 라이브러리를 선택하여 사용할 수 있다.

 

프레임워크와 라이브러리의 차이점

 

제어의 역전

라이브러리와 프레임워크의 가장 큰 차이는 제어흐름에 대한 주도성이 누구에게/어디에 있는가에 있다. 즉, 애플리케이션 Flow(흐름)을 누가 가지고 있느냐에 달려있다.

프레임워크는 전체적인 흐름을 프레임워크가 가지고 있으며 사용자는 그 안에 필요한 코드를 짜 넣으면 되고, 반면에 라이브러리는 사용자가 전체적인 흐름을 직접 만들고 필요에 따라 라이브러리를 가져다 쓰는 것 

구조 제공 유뮤

프레임워크는 전체 애플리케이션의 구조를 정의하여 일정한 패턴을 따르게 한다.

라이브러리는 특정 기능만을 제공할 뿐 애플리케이션의 전체 구조에는 관여하지 않는다. 사용하는 개발자 스스로 우너 하는 방식으로 구조를 설계할 수 있다.

 

 

 

[결과]

프레임워크가 흐름을 제어하고 사용자가 만든 코드를 사용하고 

라이브러리는 사용자가 흐름을 제어하고 라이브러리를 가져다 사용

 

[느낀 점]

프레임워크와 라이브러리의 차이점 같이 같은 것 같으면서 다른 것들이 많은 것 같다

 

 

참조사이트

https://idkim97.github.io/2022-08-16-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%20vs%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/#google_vignette

 

[개발상식] 프레임워크(Framework)와 라이브러리(Library)의 차이

프레임워크 라이브러리 차이. 라이브러리 프레임워크 차이.

idkim97.github.io