개발 공부 일지/ETC

프레임워크(Framework)와 라이브러리(Library)의 차이

dev-hpk 2024. 12. 3. 16:23

개발에서는 프레임워크라이브러리라는 용어가 자주 등장합니다. 이 둘은 개발 효율성을 높이고 코드 품질을 향상시키기 위해 사용되지만, 그 개념과 활용 방식에서 명확한 차이가 있습니다.

 

 

목차

1. 프레임워크(Framework)란?

2. 라이브러리(Library)란?

3. 프레임워크와 라이브러리의 차이 - 제어의 역전(Inversion of Control)

4. 프레임워크와 라이브러리 예시

추천글

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

1. 프레임워크(Framework)란?

프레임워크는 애플리케이션의 기본 구조를 제공하며, 개발자가 이를 기반으로 코드를 작성해 나가는 "뼈대"입니다.

앱/서버 등의 구동, 메모리관리, 이벤트 루프 등 공통된 부분은 프레임워크가 관리하고, 사용자는 프레임워크가 정해준 방식대로 클래스, 메소드를 구현하면 됩니다.

특징

  • 개발자는 프레임워크가 제공하는 규칙과 구조를 따르며, 프레임워크가 코드 실행의 흐름을 제어합니다.

장점

  • 생산성 향상 : 공통적인 기능(라우팅, 상태 관리 등)을 미리 제공하여 코드 재사용에 용이, 반복적인 작업을 자동화하고 개발 생산성을 높임
  • 유지보수성 향상 : 표준화된 코드 구조로 협업 용이, 유지보수성 향상
  • 코드 품질 안정성 : 미리 제공되는 코드를 사용하여 일정 수준 이상의 품질을 기대할 수 있다.

 

2. 라이브러리(Library)란?

라이브러리는 특정 기능을 수행하는 도구들의 모음입니다. 개발자가 필요할 때 선택적으로 호출하여 사용하며, 개발자가 코드의 흐름을 완전히 제어합니다.

특징

  • 개발자는 프레임워크가 제공하는 규칙과 구조를 따르며, 프레임워크가 코드 실행의 흐름을 제어합니다.

장점

  • 유연한 사용 : 원하는 기능만 선택적으로 활용 가능
  • 확장성 : 다양한 목적에 맞는 라이브러리 조합 가능

 

3. 프레임워크와 라이브러리의 차이 - 제어의 역전(Inversion of Control)

프레임워크라이브러리를 구분하는 가장 큰 차이는 흐름(Flow)에 대한 제어 권한이 누구에게 있는가에 있습니다. 프레임워크전체적인 흐름을 프레임워크가 쥐고 있으며 사용자는 그 안에 필요한 코드를 짜 넣으면 되고, 반면에 라이브러리는 사용자가 전체적인 흐름을 직접 만들고 필요에 따라 라이브러리를 가져다가 쓰는 것이라고 할 수 있습니다.

 

한마디로 정리하자면, 개발자가 나의 필요에 따라 직접 제어를 할 수 있는지 없는지가 가장 큰 차이입니다.

 

 

4. 프레임워크와 라이브러리 예시

라이브러리 (React.js) 

React는 사용자 인터페이스(UI)를 구축하기 위한 라이브러리입니다.

  • React는 컴포넌트 기반 구조를 제공하며, 개발자가 각 컴포넌트를 조립하여 UI를 만들어 갑니다.
  • 애플리케이션의 흐름을 완전히 제어하는 것은 개발자에게 달려 있습니다.
    예를 들어, 라우팅, 상태 관리, 서버와의 데이터 통신 등은 추가 라이브러리(Redux, React Router 등)를 조합해 구현해야 합니다.

프레임워크 (Next.js)

Next.js는 React 기반의 프레임워크로, React의 기능 위에 서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG), API 라우팅 등을 추가로 제공합니다.

  • Next.js는 애플리케이션의 전반적인 구조를 제어하며, 개발자는 이를 따르는 방식으로 개발을 진행합니다.
  • 예시로, Next.js는 폴더 구조만으로 라우팅을 자동으로 설정할 수 있는 기능을 제공하며, 서버와 클라이언트 모두에서 동작하는 코드를 쉽게 작성할 수 있습니다.

 

추천글

 

[CSS] CSS-in-CSS vs CSS-in-JS

웹 개발에서 스타일링은 UI의 품질과 사용자 경험을 좌우하는 중요한 부분입니다. 이를 구현하는 방법에는 CSS-in-CSS, CSS Module, CSS-in-JS가 대표적입니다. 각각의 방식은 접근 방식과 사용 사례가 다

dev-hpk.tistory.com

 

 

[React] React Hook Form 라이브러리로 Form 간편하게 관리하기

React 애플리케이션에서 폼 관리는 매우 빈번한 작업입니다. React State를 이용해 폼 상태를 관리하고, 유효성을 검증하며, 성능을 최적화하는 것은 번거로울 수 있습니다. React Hook Form은 이러한 작

dev-hpk.tistory.com

 

'개발 공부 일지 > ETC' 카테고리의 다른 글

주소창에 www.google.com을 검색하면 일어나는 일  (4) 2024.12.23
[SVGR] Next.js에서 SVGR 사용하기  (6) 2024.12.13
[JWT] Refresh Token이란?  (7) 2024.12.07
UNIX  (0) 2024.09.09