[TIL] 프레임워크 & 라이브러리

이현동·2023년 5월 10일
0

TIL

목록 보기
45/59

프레임워크 & 라이브러리

프레임워크와 라이브러리에 대해서 알아보려고 한다.
어느정도는 알고 있지만 둘의 정확한 차이점에 대해서는 잘 알지 못하기에 알아보기로 했다.

프레임워크 (Framework)

프레임워크(Framework)는 '소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합'이라 할 수 있습니다. 이러한 집합은 완성된 어플리케이션이 아니라 프로그래머가 완성시켜야 합니다. 프레임워크는 뼈대나 기반 구조를 뜻하며, 제어의 역전(IoC) 개념이 적용된 대표적인 기술입니다. 대표적인 프레임워크로는 Spring, Django, Ruby on Rails 등이 있습니다.

IoC ?

IoC(제어의 역전)이란 어떠한 일을 하도록 만들어진 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경 써야 할 것을 줄이는 전략입니다.
이것을 제어가 역전 되었다 라고 합니다. 일반적으로 라이브러리는 프로그래머가 작성하는 클라이언트 코드가 라이브러리의 메소드를 호출해서 사용하는 것을 의미 합니다.

특징 정리

  • 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있습니다.
  • 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의합니다.
  • 컴포넌트들은 재사용이 가능합니다.
  • 높은 수준에서 패턴들을 조작화 할 수 있습니다.

라이브러리 (Library)

라이브러리(Library)는 '프로그래머가 개발에 사용할 수 있는 도구들의 모음'이라 할 수 있습니다. 라이브러리는 개발자가 필요할 때마다 호출하여 사용할 수 있으며, 개발자가 직접 코드를 작성해야 합니다. 라이브러리는 특정 기능을 수행하기 위한 함수나 클래스의 집합으로 이루어져 있으며, 개발자가 필요한 기능을 선택적으로 호출하여 사용할 수 있습니다. 대표적인 라이브러리로는 jQuery, React, NumPy 등이 있습니다.

특징 정리

  • 개발자가 필요할 때마다 호출하여 사용할 수 있습니다.
  • 개발자는 직접 코드를 작성해야 합니다.
  • 특정 기능을 수행하기 위한 함수나 클래스의 집합으로 이루어져 있습니다.
  • 사용자는 필요한 기능을 선택적으로 호출하여 사용할 수 있습니다.

프레임워크 vs 라이브러리

라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있습니다.
즉, 어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐에 달려 있습니다.
프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 개발자는 그 안에서 필요한 코드를 짜 넣는 반면에 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있습니다.
다시 말해, 라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있으며 프레임워크는 그 틀안에 이미 제어 흐름에 대한 주도성이 내재(내포)하고 있습니다.
프레임워크는 가져다가 사용한다기보다는 거기에 들어가서 사용한다는 느낌/관점으로 접근할 수 있습니다.


참고자료

Webclub | KimJaeHee

profile
https://hdlee.dev

0개의 댓글