Web Development

프레임워크 vs 라이브러리

쟤리 2024. 9. 12. 13:37
728x90
반응형

프레임워크라이브러리는 둘 다 소프트웨어 개발에서 사용하는 도구이지만, 그 사용 방식과 목적에서 차이가 있다. 차이를 이해하려면 제어권이라는 개념을 중심으로 설명할 수 있다.

1. 라이브러리 (Library)

  • 정의: 라이브러리는 특정 기능을 쉽게 구현할 수 있도록 제공되는 재사용 가능한 코드 모음이다. 개발자가 필요할 때 직접 호출해서 사용하는 방식이다.
  • 제어권: 제어권은 개발자에게 있다. 즉, 개발자가 필요할 때 라이브러리의 기능을 가져와서 사용한다. 코드 흐름을 개발자가 결정한다.
  • 예시:
    • React: React는 UI를 만들기 위한 라이브러리이다. 개발자가 원하는 방식으로 React를 호출해서 컴포넌트를 만들고 화면에 렌더링한다.
    • Lodash: 자바스크립트 배열, 객체 처리와 같은 기능을 쉽게 해주는 라이브러리이다. 개발자가 특정 함수를 사용하기 위해 호출한다.

비유: 요리할 때 사용하는 레시피조리 도구와 비슷하다. 레시피(라이브러리)는 특정 요리법을 제공하지만, 요리를 만드는 순서와 방법은 요리사(개발자)가 결정한다.

 

2. 프레임워크 (Framework)

  • 정의: 프레임워크는 특정한 애플리케이션을 만들기 위한 전체적인 구조기본 틀을 제공한다. 개발자는 이 틀 안에서 코드를 작성한다.
  • 제어권: 제어권은 프레임워크에 있다. 프레임워크는 애플리케이션의 흐름을 제어하고, 개발자는 그 흐름에 맞춰서 필요한 부분을 작성한다. 개발자는 프레임워크가 요구하는 규칙에 따라 코드를 작성해야 한다.
  • 예시:
    • Vue.js: Vue는 웹 애플리케이션을 만들기 위한 프레임워크이다. Vue가 제공하는 구조 안에서 컴포넌트를 만들고, Vue가 애플리케이션의 흐름을 제어한다.
    • Django (Python): Django는 웹 애플리케이션 개발을 위한 프레임워크로, 특정한 방식으로 데이터베이스와 상호작용하고, URL 라우팅을 관리하는 기본 구조를 제공한다.

비유: 요리할 때 사용하는 주방과 비슷하다. 주방(프레임워크)에는 이미 필요한 도구와 구조가 마련되어 있으며, 요리사는 주방에 맞춰 요리할 수밖에 없다.

 

핵심 차이

  • 제어 흐름:
    • 라이브러리는 개발자가 필요한 때에 사용하고 제어한다.
    • 프레임워크는 큰 틀을 제공하고, 그 틀 안에서 개발자가 코드를 작성한다.
  • 구조:
    • 라이브러리는 개별적인 기능을 제공하며, 개발자는 원하는 방식으로 조립할 수 있다.
    • 프레임워크는 애플리케이션의 구조를 제공하며, 그 구조에 맞게 코드를 작성해야 한다.

간단한 비교:

제어권 프레임워크가 코드 흐름을 제어한다 개발자가 제어한다
사용 방식 프레임워크의 규칙에 맞춰 코드를 작성한다 개발자가 필요한 기능을 직접 호출한다
유연성 상대적으로 제한적이다 더 유연한 방식으로 사용 가능하다
예시 Vue.js, Django, Angular React, Lodash, jQuery

따라서, 프레임워크는 "이렇게 해야 한다"고 강제하는 방식이고, 라이브러리는 "필요하면 사용해"라는 방식으로 더 자유롭게 선택할 수 있는 도구이다.

728x90
반응형

'Web Development' 카테고리의 다른 글

스코프 scope  (0) 2024.09.30
[콜럼Vue스]this  (0) 2024.09.30
async / await  (0) 2024.09.30
동기(Synchronous) 비동기(Asynchronous)  (1) 2024.09.30
구글 코랩 한글 폰트 설치  (0) 2024.08.21