Computer Science

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

반응형

프레임워크와 라이브러리 단어를 사용하면서, 내가 정말 알고 사용하는가에 의문이 많이 들었습니다.

엄연히 다른 단어이고 다른 뜻일텐데 혼용해서 사용하는게 아닌지 싶어 정리를 시작했습니다.

 

프레임워크 (Framework)

- 사전적 의미

컴퓨터 프로그래밍에서, 소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대골조(骨組), 프레임워크(framework)라고도 한다. 소프트웨어 환경에서 사용할 수 있게 만들어 준다.

 

프레임워크는 프로그램을 개발하기 위한 큰 틀을 제공해준다고 생각합니다.

ex) Java - Spring, Python - Django

 

라이브러리 (Library)

- 사전적 의미

소프트웨어 개발 시 사용되는 프로그램의 구성요소로, 공통으로 사용될 수 있는 특정한 기능(들)을 모듈화한 것이다. 대상 환경(플랫폼)에서 바로 실행될 수 있는 형태로 제공되며, 실제 실행되어 기능을 수행하는 단편화된 프로그램이라는 점이 API와 다르다

 

라이브러리는 소프트웨어를 개발하기 쉽게, 이미 만들어진 어떤 기능을 제공하는 여러 도구라고 생각합니다.

 

 

 

프레임워크는 놀이터, 라이브러리는 놀이기구라고 비유라고 생각합니다.

놀이터라는 큰 틀에서 놀기 마련이지만 그 안에있는 놀이기구들은 그네, 시소 등 자기가 사용하고 싶은 놀이기구를 이용하면 됩니다.

 

또 다른 예를 들어보자면, 많은 사람들이 LoL 게임을 많이 하니 이 게임에 비유를 하겠습니다.

소환사 협곡(오브젝트, 그리고 게임 규칙)이라는 틀이 정해져 있으니 프레임 워크라 표현 가능하고,

거기서 사용하는 챔피언, 아이템들을 자유롭게 선택할 수 있으니 라이브러리라 표현하고 싶습니다.

 

 

어찌되었든 프레임워크, 라이브러리 둘다 편리한 코딩을 위해 존재하지만

차이점으로는 자유도가 존재하느냐 안하느냐의 차이라고 생각합니다.

 

 

 

반응형

'Computer Science' 카테고리의 다른 글

[CS] 웹 서비스에서 캐시  (0) 2021.08.05
[CS] 가비지 컬렉션  (0) 2021.08.05
[CS] 스레드(Thread), 멀티 스레드(Multi-Thread)  (0) 2021.08.05
[CS] 운영체제, 프로세스  (0) 2021.08.05
[CS] 컴퓨터 공학 기초  (0) 2021.08.05