Framework
Frame = “틀”, work = “일한다” 단어를 합치면 “틀을 가지고 일한다”라는 의미가 된다. 어떠한 뼈대, 틀이 있을탠데 그 틀을 바탕으로 우리가 작업을 한다는 의미이다.
어릴 적 레고를 가지고 무언가 만들때 레고 부품들과 틀을 가지고 다양한 형태의 물건을 만드는 것과 같이 “제공받은 요소(부품)과 틀(뼈대)을 가지고 무언가를 만드는 일”라고 정의할 수 있다.
🔍 프레임워크 종류
- Java서버 개발에 사용되는
Spring
- Python 서버 개발에 사용되는
Django
,Flask
- 안드로이드 개발에 사용되는
Android
Library
라이브러리는 도구들의 모음이다.
우리가 의자를 만들고 싶을때 사용하는 망치, 자, 톱 등 이런 도구들이다. 단순히 아무런 도구 없이 의자를 만들라고 하면 내 힘으로 모든 걸 다 만들어야 하기에 당연히 힘들고 시간도 오래걸린다. 라이브러리는 그러한 도구를 지원해줘서 쉽게 개발할 수 있도록 도와주는 함수들의 모음이다.
🔍 라이브러리 종류
- Python : padnas, tensorflow, datetiem 등
- Java : String, Random, Math, ArrayList 등
Difference
그러면 이 둘의 차이점은 무엇이 있을까?
제어 흐름
프레임워크는 제어의 역전
개념이 적용되어 있다. 제어의 역전이란 말 그대로 제어의 흐름 구조가 뒤 바뀐다 라는 의미이다. 즉, 제어의 흐름이 프레임워크한태 있어 개발자가 그 안에서 필요한 코드를 넣는 반면 라이브러리는 개발자가 제어권을 가지고 있다.