Programming/Development Knowledge

프레임워크 라이브러리 기본 개념 정리

fishersheep 2022. 1. 15. 16:15
반응형

이글을 쓰게된 원인

프레임워크와 라이브러리는 많이 들어보긴했지만 정확하게 정의를 하거나 설명하기에 개념이 부족한 것 같아서 정리하게됬습니다.


프레임워크란(Framework)

프레임워크의 개념을 찾아보면 "소프트웨어의 설계 및 구현을 재사용이 가능하도록 일련의 협업화된 형태로 클래스들을제공 하는 것" 또는 "소프트웨어의 특정문제 해결을 위한 상호협력하는 클래스와 인터페이스의 집합" 이라고 정의되어있습니다. 

이는 간단하게 소프트웨어의 개발을 도와주는 틀, 뼈대라고 생각할 수 있으며, 프레임워크의 사용자는 이러한 틀 안에서 코드를 작성하여 소프트웨어를 완성하는 것 입니다.  

인터페이스: 다른 클래스를 작성할 때 기본이 되는 틀을 제공하는 일종의 추상클래스

라이브러리란(Library)

라이브러리는 프레임워크 보다 간단한 개념으로서 특정기능을 가지는 도구 및 함수들의 집합입니다. 

이는 간단하게 어떠한 물건을 만든다고 가정했을때 사용되는 도구들이라고 생각할 수 있으며, 이미 만들어진 기능들의 집합입니다. 이러한 기능들은 사용자가 가져와서 자유롭게 사용할 수 있으며, 사용자가 틀 안에서 코드를 작성하는 프레임워크의 개념과는 차이가 있습니다. 

라이브러리: 사용자가 개발의 흐름을 제어한다.

프레임워크: 프로그램이 개발의 흐름을 제어한다.

라이브러리 예: Retrofit (통신을 도와주는 라이브러리), STL (c++의 표준라이브러리) 등

프레임워크 예: Spring, React Native, Flutter 등

반응형