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

코코·2023년 12월 18일
0

기술면접 준비

목록 보기
41/42

1. 프레임워크

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

  • 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느 정도 뼈대(구조)를 제공하며 이러한 뼈대 위에서 사용자는 코드를 작성하여 애플리케이션을 개발한다. 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래스, 메서드들을 구현하면 된다.

  • 예시
    Java 서버 개발에 사용되는 Spring
    Python 서버 개발에 사용되는 Django, Flask
    안드로이드 앱 개발에 사용되는 Android
    아이폰 앱 개발에 사용되는 Cocoa Touch
    웹 개발에 사용되는 Angular, Vue.js
    자바 기반의 JSP를 위한 프레임 워크 Struts
    루비로 작성된 MVC패턴을 이용하는 Ruby on Rails

2. 라이브러리

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

  • 예시
    Python pip로 설치한 패키지/모듈 (tensorflow, pandas, beautifulsoup 등등)
    C++의 표준 템플릿 라이브러리 (STL)
    Node.js에서 npm으로 설치한 모듈
    HTML의 클라이언트 사이드 조작을 단순화하는 JQuery
    웹에서 사용자 인터페이스 개발에 사용되는 React.js

3. 프레임워크와 라이브러리의 차이

  • 프레임워크와 라이브러리의 차이점은 "제어 흐름"의 권한이 어디에 있는가이다.

  • 라이브러리를 사용할 때 사용자는 애플리케이션 코드의 흐름을 직접 제어해야 한다.
    개발 시 필요한 기능이 있을 경우 능동적으로 라이브러리를 호출하여 사용하거나 기존에 구성된 함수나 코드를 가져다 써야 한다.

  • 반면 프레임워크는 애플리케이션의 코드가 프레임워크에 의해 사용된다.
    애플리케이션 코드는 프레임워크가 짜 놓은 틀에서 수동적으로 동작하기 때문에 제어의 흐름은 프레임워크가 가지고 있고 사용자가 그 안에 필요한 코드를 작성하게 된다.

profile
Just Do It

0개의 댓글