본문 바로가기
CS

API, 라이브러리, 프레임워크의 차이

by chris_jaehun 2022. 11. 11.
반응형

API (Application Programming Interface)

응용프로그램 간에 서로 통신하기 위한 프로그램이다. 유저는 URL을 통해 API한테 요청을 하고, API는 요청에 따른 적절한 값을 응답해준다. 마치 요즘 식당이나 카페에 많은 키오스크 같은 역할이다. 우리는 키오스크를 통해 원하는 메뉴를 주문하고, 키오스크는 주문을 받아 주방에 전달 후 거기에 따른 메뉴를 응답해주는 것이다. API는 개발자들이 무료로 사용할 수 있도록 배포된 open API도 있지만 비공개된 API도 있다.

 

라이브러리 (Library)

우리는 필요한 지식이 있을 때 도서관에 가서 내가 필요한 책을 꺼내 본다. 프로그래밍에서의 라이브러리도 비슷한 맥락에서 보면, 개발자가 자주 사용하는 로직, 함수들을 모아서 재사용할 수 있도록 만든 집합이다. 개발을 위해 필요한 기능들을 모아놓은 것, 즉 도구나 함수들을 모아놓은 집합이다. 개발자가 직접 라이브러리를 만들 수도 있다. 이걸 보통 사용자 라이브러리라고 한다.

 

프레임워크 (Framework)

먼저 단어를 직역해보면 Frame은 틀, 뼈대이다. 따라서 프레임워크는 프로그래밍을 하기 위해 짜여진 틀, 뼈대라고 생각해보면 되지 않을까 싶다. 이 프레임워크에는 개발에 필요한 세팅, 요소, 기본적인 룰과 같은 여러 가지 의미들이 포함되어 있다. 개발자는 이 프레임워크(개발에 필요한 여러 요소, 룰)를 통해서 보다 소프트웨어의 구현을 수월하게 할 수 있는 것이다.

하지만 오해할 수 있는 점은, 이 프레임워크만 있다고 해서 프로그램이 실행되는 것이 아니라 프레임워크는 뼈대&틀만 제공해줄 뿐 이를 이용하여 살을 붙이는 것은 개발자의 몫이라는 점이다. 다시 말해 프레임워크는 완성된 프로그램이 아닌 개발자의 프로그래밍을 도와주는 기반이 되는 여러 세팅과 룰, 클래스, 인터페이스 등을 제공하는 역할만 할 뿐이다.

 

라이브러리와 프레임워크의 차이

? 그러면 뭔가 라이브러리와 프레임워크의 역할이 비슷해 보인다. 하지만 둘 사이에 존재하는 비슷하면서도 큰 차이점이 있다. 제어의 주체가 누구한테 있는지이다. 다른 말로는 제어의 역전(Inversion of Control) 개념의 적용 여부이다. 라이브러리는 개발자가 원하는 기능이 필요하면 그때그때 해당 라이브러리를 import 해서 가져다 사용하면 된다. 제어의 주체가 개발자인 것이다. 하지만 프레임워크는 제어의 역전(IoC) 개념이 적용된다. 즉 프레임워크를 통해 개발된 프로그램은 제어의 주체가 개발자가 아닌 프레임워크인 것이다.

 

반응형

'CS' 카테고리의 다른 글

Scope의 종류와 개념  (0) 2022.11.14