프레임워크 / 라이브러리

pengooseDev·2022년 12월 31일
0

개발을 하다보면 프레임워크라이브러리라는 단어를 자주 접하게 된다.
아래의 간단한 예시로 차이점을 알고 넘어가는 것이 좋다.


원화가가 꿈인 미대생

A는 게임 원화가가 꿈이다.
A는 그림을 그리기 위해, 어떤 Tool을 선택해야 할 지 고민하고 있다.

어떤 툴을 선택할 것인가?

  • Photoshop
  • ClipStudio
  • Adobe Illustration

모든 Tool은 그림을 그리기 위한 프로그램이지만, Tool마다 제공하는 기능과 지향점. 그림을 완성해나아가는 작업 방식이 상이하다.
따라서, 해당 프로그램을 사용하는 유저는 그 프로그램에서 제공하는 기능과 방향성에 맞춰 작업을 진행하게 된다.

ClipStudio로 작업툴을 결정한 A는 편안한 작업을 위해 추가적으로 플러그인을 설치했다.
미대생 A는 손떨림 방지 플러그인자동 색보정 플러그인을 추가하여 작업을 원활하게 진행했다.


프레임워크와 라이브러리

위의 예시에서 프레임워크라이브러리는 각각 아래에 해당한다.

프레임워크

  • Photoshop
  • ClipStudio
  • Adobe Illustration

라이브러리

  • 손떨림 방지 플러그인
  • 자동 색보정 플러그인

프레임워크라이브러리 모두 효율적이고 효과적인 작업을 위해 사용한다.
하지만, 작업을 진행 과정에서 통제권이 누구에게 있느냐에 차이점이 발생한다.


규칙이 존재하는가?

개발자의 관점에서 생각해보자.

개발자가 라이브러리를 사용할 경우, 라이브러리를 개발자의 의도대로 원하는 곳에 import를 해, 필요한 곳에서 라이브러리를 사용한다.

반면, 프레임워크개발자의 코드를 불러오기 때문에 프레임워크의 요구대로 파일명을 정하거나, 디렉토리를 구성하거나, 코드를 작성해야한다.

NextJS : page기반 자동 라우팅 방식 등
express : MVC 패턴기반 백엔드 및 라우팅, MiddleWare 방식 등 
socket io : IceCandidate 생성 및 stream 공유 방식 등

위처럼 개발자의 코드는 프레임워크에서 요구하는 규칙에 맞춰 작성된다. 즉, 코드를 작성하는 규칙에 의해 일부분의 코드 제어권이 개발자에서 프레임워크로 넘어간 것이다.

0개의 댓글