«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
Recent Posts
Recent Comments
관리 메뉴

뉴히의 개발 로그

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

개발일지/TIL

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

뉴히 2023. 10. 20. 23:03

프레임워크

프레임워크는 애플리케이션을 개발을 하는데 있어 기본적으로 필요한 구조와 구성을 갖추고 있어 개발자가 기능 구현에 집중할 수 있도록 합니다. 프레임워크는 프레임워크만으로 프로그램이 동작하는 것이 아니라 뼈대를 제공하고 그 위에 개발자가 코드를 올려 동작하게끔 합니다.

개발자의 입장에선 좀 더 로직에 집중을 할 수 있게 하고 객체 지향 개발을 하는데 있어 시스템을 일관성있게 관리할 수 있도록 도와줍니다.

여러 명의 다양한 개발자들이 각자의 취향에 따라 설계하고 코딩한다면 관리적인 측면에서 어려움을 겪을 수 밖에 없을 것이고 이는 프레임워크가 제공하는 뼈대와 가이드에 맞게 설계하고 개발함으로써 시스템의 통합, 일관성을 유지할 수 있게 됩니다.

어려운가요? "설계는 내가 할게 너는 구현만 해" 라고 생각해보면 더 쉽게 이해할 수 있을 것 같습니다.

 

예시

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

라이브러리

라이브러리란 개발을 하기 위해 필요한 것 들을 미리 구현해놓은 대상, 도구입니다. 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용할 수 있도록 만들어진 집합들을 말합니다.

 

프레임워크는 틀이고 그 안에서 재사용이 가능하도록 만들어진 도구들을 라이브러리라고 합니다.

 

예시

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

 

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

프레임워크와 라이브러리는 애플리케이션을 개발하는데 있어 쉽고 빠른 생산성을 위해 사용한다는 공통점을 가지고 있습니다. 

"제어반전"

둘의 가장 큰 차이점은 흐름을 누가 가지고 있느냐에 있습니다. 프레임워크는 스스로 흐름을 가지고 있어 사용자로 하여금 코드를 연결할 공간을 강제하지만 라이브러리를 사용할 때에는 사용자에게 흐름을 직접 제어하게 합니다. 어디서, 언제 호출할지 사용자가 결정짓게 되는 것입니다.

라이브러리는 사용자가 흐름에 대한 제어를 하며 필요한 상황에 따라 가져다가 쓸 수 있지만 프레임워크는 전체적인 흐름을 자체적으로 제어한다는 특징이 있습니다.

  • 프레임워크와 라이브러리는 실행 흐름에 대한 제어 권한이 어디 있는지에 따라 달라집니다.
    • 라이브러리를 사용할 때 사용자는 애플리케이션 코드의 흐름을 직접 제어해야 합니다.
    • 반면 프레임워크는 애플리케이션의 코드가 프레임워크에 의해 사용됩니다.
  • 프레임워크를 사용하면 사용자가 관리해야 하는 부분을 프레임워크에 넘김으로써 신경써야 할 것을 줄이는 제어의 역전이 적용 됩니다.

 

 

https://eroul-ri.tistory.com/5

https://cocoon1787.tistory.com/745

https://code-lab1.tistory.com/284

 

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

프레임워크(Framework)란? 프레임워크는 복잡한 문제를 해결하거나 서술하는 데 사용되는 개본 개념 구조이다. -위키백과- 프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션

code-lab1.tistory.com