[Web] 용어 정리 (3) 라이브러리 vs 프레임워크

seon·2024년 2월 26일

Web

목록 보기
20/33

라이브러리 vs 프레임워크

정리

누가 누구를 컨트롤 하는가

  • 너가 코드를 컨트롤 하는건가? 모든 결정을 다 내리는 건가?
  • 누군가 정해준 규칙을 따라하고 있는가?

1. 라이브러리

예) jQuery는 내가 필요할 때 불러온다.
예2) React

  • 코드 집합(함수, 클래스, 모듈로 구성됨)
  • 개발자가 필요한 기능을 호출하여 사용할 수 있다. 필요할 때만 부르는 것.

2. 프레임워크(Framework)

  • 프레임워크는 내가 불러오는 것이 아니다. 프레임워크가 나를 부른다.
  • 개발자는 프레임워크가 제공하는 규칙과 인터페이스에 따라 코드를 작성해야 한다.
  • 프레임워크는 애플리케이션의 흐름과 제어를 관리하며, 필요한 기능과 도구를 제공한다.
  • 벡엔드 프레임워크에는 Spring, 프론트엔트 프레임워크에는 angular, vue가 있다.
    예) django 장고 웹 프레임워크 장고의 규칙에 따라 코드를 쓰면 장고가 그것들을 실행시켜 준다.
  • 규칙과 문서가 따라오는 것이며, 내가 적극 수용해야 한다.

라이브러리와 프레임워크의 공통점은 이미 작성된 코드를 활용하여 개발을 빠르고 효율적으로 진행할 수 있도록 도와준다는 것이다.
차이점은 제어의 주체가 누구인가.
프레임워크는 프레임워크에게 제어권이 있다. 개발자는 프레임워크를 충실히 규칙을 따라야 한다.
"프레임워크"가 나를 부른다.
라이브러리는 개발자가 필요한 것을 가지고 와서 자신의 코드에서 활용하는 방식으로 개발자에게 제어권이 있다.
"내가" 라이브러리를 부른다.

+ React를 사용하는 이유

개발자가 사용자 인터페이스를 쉽게 구현할 수 있도록 설계하였다. 리액트는 사용자 인터페이스(UI) 개발에 초점을 맞춘 라이브러리이다. 사용자 인터페이스의 개발을 돕는 도구와 기능을 제공한다. 리액트는 애플리케이션의 전체 구조나 아키텍처를 결정하지 않으며, 개발자는 필요한 부분에 리액트를 적용하여 ui를 구성하고 관리할 수 있다. 리액트는 컴포넌트 기반 아키텍처를 기반으로 하여 재사용성과 유지보수성을 높일 수 있도록 도와준다. 필요한 부분에만 적용할 수 있기 때문에 기존 프로젝트에 리액트를 통합하기 쉽게 만들어준다. 다른 프레임워크나 라이브러리와의 혼용도 가능하기 때문에 기존 코드를 변경하지 않아도 리액트를 도입할 수 있다. 리액트의 ui를 만드는 기능을 확장하여 웹이 아닌 플랫폼에서 활용할 수 있도록 기술을 확장했다. react native는 안드로이드와 아이폰의 모바일 앱을 만드는 대표적인 기술로 널리 사용되고 있다. 이러한 이유로 많은 개발자들이 리액트를 선택하여 웹 및 모바일 애플리케이션을 개발하고 있다.

핵심 요소인 Virtual DOM 때문이다.

웹 브라우저가 웹사이트의 텍스트 문서를 읽어서 DOM이라는 트리 구조로 바꾸어 사용자에게 보여주게 되는데, 웹 개발자들은 사용자의 반응에 따라 이 DOM 트리를 변경하여 웹 사이트의 내용을 갱신한다.
하지만 매번 작은 변화가 있을 때마다 전체 화면을 새로 그리는 것은 성능에 좋지 않다. React는 이 문제를 해결하기 위해 virtual DOM을 도입하였다.

DOM

  • Document Object Model
  • = 문서 객체 모델
  • 웹 페이지 문서를 트리 구조의 노드로 표현한다.
  • javascript를 사용하여 이러한 노드를 조작할 수 있다.
  • 웹 페이지의 요소에 동적으로 접근하고 수정하는 데 사용된다.
  • 웹 애플리케이션의 동적인 기능을 구현하다.

virtual dom은 실제 dom의 복제본으로, 웹 개발자들이 변화를 주고 싶은 부분만 virtual dom에서 수정하게 된다. 그 후, react는 virtual dom과 dom 사이의 차이점을 찾아내어, 그 차이점만 실제 dom에 반영하게 된다. 불필요한 화면의 갱신을 최소화하여 성능을 향상시키는 이 방법이 react라는 라이브러리의 선택 이유이다.

  • 엥귤러(angular)와 뷰(vue)는 프레임워크, 리액트는 라이브러리이다.

  • 하지만 리액트는 우리의 컴포넌트를 부르긴 한다.리액트는 프레임워크이다.
    ??

  • 리액트가 프레임워크인지, 라이브러리인지 명확하게 규정할 필요는 없다!!

  • 하지만 리액트를 하나로 규정하는 것과는 상관없이,
    프레임워크라는 것과 라이브러리라는 것의 차이점은 명확하게 알고 있어야 한다.

profile
🌻

0개의 댓글