프레임워크와 라이브러리

nemo·2022년 7월 1일
0

Programming

목록 보기
2/4

프레임워크와 라이브러리는 프로그래밍을 쉽게 할 수 있도록 도와주는 역할을 한다. 이 둘의 차이점과 특징에 대해 정리해보고자 한다.

프레임워크

프레임워크는 일정한 형태와 필요한 기능을 갖추고 있는 코드의 집합이다.
프레임워크는 정해진 규칙이 있다. 개발자는 정해진 규칙에 따라 작업을 해야 한다.

프레임워크 예시

  • 웹 개발에 사용되는 Vue, Angular
  • JavaScript Node.js
  • Python 서버 개발에 사용되는 Django, Flask
  • Java 서버 개발에 사용되는 Spring

프레임워크 장점

  • 시간과 비용을 아낄 수 있다.
  • 코드 길이가 줄어든다.
  • 이미 다수의 개발자들이 수정하고 보완하여 만든 것을 사용하기 때문에 완성도가 높아진다.
  • 코드의 정형화로 유지보수가 용이해진다.

프레임워크 단점

  • 학습을 필요로 한다. (러닝커브)
  • 기능을 추가하고 수정하는 데에 한계가 있다. (유연성이 떨어진다.)
  • 자유도 저하
  • 필요하지 않은 기능도 포함되므로 용량이 커질 수 있다.

제어의 역전(IoC: Inversion of Control)
프레임워크에 프로그램 제어 권한을 위임하는 것.
즉, 프로그램 제어를 개발자가 아닌 프레임워크가 하여 제어 흐름 구조가 뒤바뀐 것을 말한다.


라이브러리

라이브러리는 개발 시 활용 가능한 특정 기능을 모아둔 코드와 함수들을 모아 모듈화한 것을 말한다.

개발 시 반복되어 사용되는 기능을 매번 코드로 구현한 다는 건 매우 비효율적이다. 따라서 잘 만들어진 모듈화된 코드를 가져다 사용하는 것이다.

라이브러리 예시

  • 웹에서 사용자 인터페이스 개발에 사용되는 React
  • HTML의 클라이언트 사이드 조작을 단순화하는 jQuery
  • Python pip로 설치한 패키지/모듈 (beautifulsoup 등)
  • C++의 표준 템플릿 라이브러리 (STL)
  • Node.js npm으로 설치한 모듈

라이브러리 특징

  • 코드의 중복을 줄인다.
  • 프로그래밍 시간을 줄인다. (생산성 향상)
  • 다른 라이브러리로 대체가 가능하다.

React는 자유도가 높은 라이브러리이다.
라우터나 상태 관리 등의 기능이 내장되어 있지 않으며 공식적인 라이브러리가 있는 것도 아니다.
라우터가 필요하다면 react-router, 상태 관리가 필요하다면 Redux, Recoil 같은 라이브러리를 설치하면 된다.
React는 뷰만 관리하고 나머지 기능은 써드파티 라이브러리를 통해 관리하는 것이다.


요약

프레임워크와 라이브러리는 자유도제어의 흐름에 차이가 있다.

프레임워크를 사용한다면, 프레임워크가 원하는 방식 대로 코드를 작성해야 한다. (규칙 존재)

라이브러리는 내가 원하는 대로 코드를 작성한다. 내가 코드를 컨트롤할 수 있다.

예시

프레임워크는 밀키트 🥙
라이브러리는 펜트리에 있는 식재료 🥕🥦

0개의 댓글