[TIL] 프레임워크와 라이브러리의 차이

Leesu·2023년 1월 24일
0

[TIL] : Today I Learned

목록 보기
1/21
post-thumbnail

프레임워크란?

소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것을 '프레임워크'라고 합니다.
앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래서, 메서드들을 구현하면 됩니다.

  • 즉, 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 "골격", "뼈대"를 의미한다.

  • 프레임워크는 파일 이름이나 구조 등을 정해진 규칙을 따라야만 하는데,

  • 예를 들어 NextJS 에서 pages 폴더 안에 'index.js','about.js' 와 같은 파일을 만든다면,
    NextJS 의 규칙에 따라 '/' 홈페이지와 '/about' URL 페이지가 생성된다.

  • 추가적인 예시로, python 서버 개발에 사용되는 Django 와, Node.js 에서 가장 인기가 많은 Express.js 가 있다.

  • 장점으로는...

    • 가이드를 제공하므로 프로그램을 체계적으로 관리할 수 있다.
    • 코드의 재사용성이 높고 확장성을 가진다.
  • 단점

    • 자유롭고 유연한 개발이 불가하다.
    • 각 프레임워크에 따른 별도의 학습이 필요하다.

라이브러리란?

소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임. 즉 특정 기능을 모와둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미합니다.

  • 즉, 사용자는 내가 사용하는 라이브러리의 특정 기능을 가져와서 내가 원하는대로 사용할 수 있는 것을 의미한다.

  • 예를 들어 Node.js 에서 npm 으로 설치한 모듈들, 내가 공부하고 있는 React.js, JQuery 등이 있다.


차이점은?

라이브러리와 프레임워크의 주요 차이점은 "Inversion of Control"(통제의 역전)입니다.
라이브러리에서 메서드를 호출하면 사용자가 제어할 수 있습니다.
그러나 프레임워크에서는 제어가 역전되어 프레임워크가 사용자를 호출합니다.

  • Inversion of Control"(통제의 역전) 이란, 어떠한 일을 하도록 만들어진 프레임워크에 컨트롤 권한을 위임하는 것을 의미한다.
    즉, 프로그램의 제어 흐름 구조가 뒤바뀐 것을 뜻한다.

  • "라이브러리"는 사용자가 파일 이름이나 구조 등을 정하고, 모든 결정을 내릴 수 있지만

  • "프레임워크"는 파일 이름이나 구조 등을 정해진 규칙에 따라 만들고 따라야한다.


개념 확립하기 위해 공부해보았따.
늘 햇갈리던 부분이였는데, 머릿속에서 '프레임워크는 집, 라이브러리는 티비, 쇼파 등의 가구..' 라고 생각하니 이해가 잘되었다!
내일부터는 NextJS 공부닷

profile
기억력 안 좋은 FE 개발자의 메모장

0개의 댓글