본문 바로가기
CS

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

by 인용 2021. 11. 30.
반응형

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

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

 

프레임워크 (Framework)

- 사전적 의미

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

 

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

ex) Java - Spring, Python - Django

 

라이브러리 (Library)

- 사전적 의미

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

 

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

 

 

 

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

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

 

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

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

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

 

 

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

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

 

 

 

728x90
반응형

'CS' 카테고리의 다른 글

[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