일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- dilated convolution
- cache side-channel
- transient execution attack
- depth-wise separable convolution
- 캐시 사이드 채널
- down-sampling
- cpu
- mean pooling
- out-of-order
- 캐시사이드채널
- PRIME+PROBE
- depthwise separable convolution
- PRIME+ABORT
- 로스함수
- Logical address
- 부채널 공격
- 프라임프로브
- clflush
- depth-wise convolution
- min pooling
- prime abort
- cache side channel
- 사이드채널
- 캐시 사이드채널
- 프라임 프로브
- side-channel
- 의존성
- down sampling
- PRMIE ABORT
- depthwise convolution
- Today
- Total
컴공과블로그
프레임워크와 라이브러리?! 두 개는 뭐고 두 개의 차이점은 뭘까! 본문
우선 프레임워크, 라이브러리 각각의 간단한 정의를 알아보자!
프레임워크
프레임워크는 복잡한 문제를 해결하거나 서술하는 데 사용되는 개본 개념 구조이다
-위키백과-
프레임워크는 애플리케이션 개발 과정에서 필수적인 코드, 알고리즘, 데이터베이스 연결과 같은 핵심 기능을 위한 구조와 기반을 제공합니다. 이를 통해 개발자는 주어진 뼈대 또는 구조 위에서 자신의 애플리케이션을 개발할 수 있습니다.
프레임워크는 소프트웨어 설계와 구현의 구체적인 부분을 재사용 가능한 형태로 제공하며, 이를 위한 클래스와 인터페이스의 집합으로 이루어져 있습니다. 다시 말하면, 프레임워크는 개발자가 애플리케이션을 쉽게 개발할 수 있도록 필요한 구조와 기능을 제공해줍니다.
예를 들어, Java 개발에서 Spring 프레임워크, Python 개발에서 Django, 그리고 안드로이드 앱 개발에서 Android는 이러한 프레임워크의 예시입니다. 이러한 프레임워크는 개발자들에게 개발 작업을 효율적으로 수행할 수 있는 도구와 지침을 제공하여 애플리케이션 개발을 간편하게 만들어줍니다.
라이브러리
라이브러리는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다. 여기에는 구성 데이터, 문서, 도움말, 메시지 틀, 미리 작성된 코드, 함수, 클래스, 값, 자료형 사양 등을 포함할 수 있다.
-위키백과-
라이브러리는 개발 작업을 수행하는 데 필요한 기능을 이미 구현한 도구로 볼 수 있습니다. 이러한 라이브러리는 재사용 가능한 기능을 미리 구현해놓고, 필요한 곳에서 이러한 기능을 호출하여 사용할 수 있도록 만들어진 집합체입니다.
예를 들어, C++의 Standard Template Library (STL)나 Python의 패키지 또는 모듈 (예: pandas, tensorflow 등)을 설치하여 사용하는 것이 라이브러리의 한 예입니다. 이러한 라이브러리는 개발자가 기존의 코드를 다시 작성할 필요 없이, 필요한 기능을 효과적으로 활용할 수 있게 해줍니다.
그렇다면 프레임워크와 라이브러리의 차이는 무엇일까?
프레임워크는 라이브러리를 포함하는데, 프레임워크 위에 개발자가 작성한 애플리케이션 코드가 배치되고 해당 코드에서는 라이브러리를 호출할 수 있습니다.
프레임워크와 라이브러리 간의 주요 차이는 "제어 흐름"이 어디에 위치하는지에 있습니다. 프레임워크는 제어의 역전 (IoC: Inversion of Control) 개념을 적용하며, 이는 개발자가 작성한 코드에서 제어의 흐름을 프레임워크에게 넘기는 것을 의미합니다.
프레임워크는 전반적인 흐름을 관리하고, 애플리케이션 코드는 프레임워크가 제시한 틀 안에서 수동적으로 동작합니다. 제어의 흐름은 따라서 프레임워크에게 속하게 됩니다. 반면, 라이브러리는 개발자가 전체적인 흐름을 제어하며 라이브러리를 필요할 때마다 능동적으로 호출하여 사용합니다. 즉, 라이브러리는 개발자에게 전적으로 제어 흐름이 있습니다.
'개발 & CS지식 > CS' 카테고리의 다른 글
Dependency Injection (DI) 는 무엇일까?! (0) | 2023.10.28 |
---|---|
제어의 역전(Inversion of Control, IoC) 이란? (1) | 2023.10.23 |
HW(Hamming Weight) HD(Hamming Distance) (0) | 2023.01.02 |
런타임(Runtime)과 컴파일타임(Compile time) (0) | 2022.10.06 |
API, ABI 란? (0) | 2022.09.15 |