[WEB] 프레임워크 vs 라이브러리

웨다(Weda)·2024년 11월 23일
1
post-thumbnail

프레임워크(Framework)와 라이브러리(Library)의 차이점에 대해 알아보자✨

코딩 공부를 하다보면 기본적인 단계를 넘어 자연스레 프레임워크와 라이브러리를 활용하게 된다

이 과정 중에서는 프레임워크와 라이브러리의 차이에 대해 의문점이 생기기 마련이다

왜냐하면 언뜻 보기에 코딩을 '보조'해주는 역할이라는 부분에 있어 이 둘은 비슷해 보이기 때문이다

그렇다면 프레임워크와 라이브러리의 차이는 무엇일까?

지금부터 알아보자!

📚 1. 사전적 정의

대게의 IT용어들은 의미하는 바를 직관적으로 표현하여 명칭을 정하는 경우가 많다

이러한 특징을 따라 프레임워크와 라이브러리의 사전적 정의부터 살펴보자

📌 프레임워크(Framework)?

프레임워크(Framework)란 '뼈대, 틀, 체계'이라는 뜻이다
프레임워크를 활용하면 코드를 편하게 짤 수 있도록 보조하는 틀이 주어진다
따라서 개발자는 프레임워크에서 정해준 규칙을 기반으로 코드를 구성하면 되는 것이다

  • 개발 진행 시, "(일반적으로 자주 쓰는) 기본 코드", "class", "method", "Back 단 연동" 등 기능 등을 편리하게 사용하기 위한 구조 제공 *자동완성 제안 형식
  • ex) Vue, Spring, Django 등

✅ Example: 주방(Kitchen)

보다 풀어서 설명하자면, 프레임워크는 주방에 비유할 수 있다!
우리가 음식을 만들기 위해서는 주방이라는 공간에 들어가야 인덕션, 오븐, 싱크대 등 요리를 하기 보다 수월한 환경이 제공되기 때문이다

📌 라이브러리(Library)?

라이브러리(Library)란 '도서관, 서재'라는 뜻으로 코드를 짤 때, 바로 꺼내다가 쓸 수 있는 완성된 기능을 의미한다

따라서 개발자는 특정한 기능을 따로 개발할 필요없이 이미 배포된 라이브러리를 가져다가 코드에 활용한다면 보다 수월하게 개발을 할 수 있다

  • 특정한 기능을 모아 둔 코드 및 함수 형태의 오픈소스 집단 *package, module 등
  • ex) React.js, JQuery, STL, pandas 등

✅ Example: 주방 용품(Kitchen utensils)

프레임워크가 주방이라면 라이브러리는 주방 내 주방 용품이라 표현할 수 있다
주방에서 요리를 할 땐 다양한 주방 용품을 활용하면 보다 수월하게 요리를 진행할 수 있기 때문이다

대표적인 예시로 달력 기능의 라이브러리를 가지고 왔다
상단에 공식 사이트(데모, 깃허브) 링크를 첨부해 두었으니 참고하길 바란다
이처럼 프로젝트 진행시, 라이브러리를 적절히 활용하면 개발 소요시간을 단축할 수 있다는 점이 가장 큰 장점이다!

📚 2. 프레임워크 vs 라이브러리 차이점

프레임워크와 라이브러리의 차이점은 '제어 흐름의 주도권'에 있다!

즉, "누가 주체(main)가 되어 코드를 짜는가?"라는 것이 핵심이다

✔️ 프레임워크

  • 프레임워크의 제어 흐름 주도권: 프레임워크
  • 프레임워크는 프레임워크에서 정해준 규칙(틀) 내에서 코드를 짜기에 주도권이 개발자가 아닌 프레임워크에 있다

✔️ 라이브러리

  • 라이브러리의 제어 흐름 주도권: 개발자
  • 라이브러리는 개발자가 필요시에만 라이브러리 오픈소스를 가지고 와 코드를 짜기에 주도권이 라이브러리가 아닌 개발자에 있다

📚 3. 마무리

마지막으로 웹 페이지의 구성요소를 기준으로 프레임워크와 라이브러리를 도식화하여 마무리하면 다음과 같다

프레임워크는 전체 기능 지원 수단인 구조를 지원하고,
라이브러리는 특정 기능 지원 수단을 지원한다.

이상 프레임워크와 라이브러리의 차이점에 대한 포스팅을 마치겠다😀

profile
인문학도 IT PM

0개의 댓글