728x90
반응형
SMALL
프레임워크(Framework)란?
- 프레임워크는 어플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능들을 위해 뼈대(구조)를 제공한다.
개발자는 이러한 뼈대 위에서 코드를 작성해 원하는 어플리케이션을 개발할 수 있다.
- 프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 상호 협력하는 클래스와 인터페이스 의 집합이라고 할 수 있다. 쉽게 말해 프레임워크는 개발자가 개발을 쉽게 할 수 있도록 뼈대를 제공해준다고 생각하면된다.
- 예를 들어 Java 개발에서 사용되는 Spring Framework나 Python 개발에 사용되는 Django, 안드로이드 앱개발에 사용되는 Android 등이 있다
라이브러리(Library)란?
- 라이브러리는 개발에 필요한 것들을 미리 구현해 놓은 도구라 할 수 있다. 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용 가능하도록 만들어진 집합이다.
- 예를 들어 C++의 STL이나 Python의 Pip로 설치한 패키지/모듈(pandas, tensorflow등)이 있다.
프레임워크와 라이브러리 차이
프레임워크는 라이브러리를 포함하며 프레임워크 위에 개발자가 작성한 어플리케이션 코드가 올라가게 되고, 이 어플리케이션 코드에서는 라이브러리를 호출할 수 있다. 이처럼 프레임워크와 라이브러리의 가장 큰 차이점은 제어 흐름 이 어디에 있는가이다.
프레임워크는 제어의 역전 개념이 적용되어 있다.(제어의 역전(IoC:Inversion of Control)은 Spring 포스팅할 때 설명하도록 하겠다.) 즉, 프레임워크에게 제어의 흐름을 넘겨 개발자가 작성하는 코드에서 신경 써야 할 부분을 줄인다는 뜻이다. 프레임워크는 전체적인 흐름을 쥐고 있으며 어플리케이션의 코드는 프레임워크에 의해 사용된다. 어플리케이션 코드는 프레임워크가 짜놓은 틀 안에서 수동적으로 동작하기 떄문에 제어의 흐름은 프레임워크에게 있다.
반면 라이브러리는 개발자가 전체적인 흐름을 만들며 라이브러릴를 가져다 쓰게 된다. 즉, 개발자에게 전적으로 제어 흐름이 있으며 필요할 때마다 능동적으로 라이브러리를 호출하여 사용한다.
728x90
반응형
LIST
'Study' 카테고리의 다른 글
[Spring] Spring boot VS Spring Framework (0) | 2023.09.08 |
---|---|
래퍼 클래스(Wrapper class) 파헤치기 (0) | 2023.09.07 |
세션(Session)과 쿠키(Cookie) 파헤치기 (0) | 2023.09.06 |
HTTP Method 파헤치기 (0) | 2023.09.05 |
RESTful API 파헤치기 (0) | 2023.09.04 |