API, 라이브러리, 프레임워크에 대한 개념들은 어렴풋이 알 것 같으면서도 막상 설명을 하려면 모호한 부분이 많은데 이를 각각 알아보고 정리를 해보겠다.
1. API
API(Application Programming Interface)는 컴퓨터나 컴퓨터 프로그램 간의 연결을 돕는 인터페이스다.
여기서 Interface란 상호 간의 소통에 도움을 주는 시스템을 말한다.
일상생활에서 TV와 TV를 조작하는 나 사이의 소통에 도움을 주는 리모컨을 일종의 Interface라고 할 수 있다.
예를 들자면, 어떤 응용프로그램(Application)에서 구글에서 만든 맵을 가져다가 쓰고 싶다면, 구글의 맵 API를 사용하면 된다. 맵 API는 맵 그 자체가 아니라 이미 구현되어 있는 구글의 맵을 활용할 수 있게 연결시켜 주는 매개체라고 볼 수 있다.
2. 라이브러리
라이브러리는 간단하게 말하면 재사용 가능한 코드들의 모음이라고 정의할 수 있다.
재사용할 수 있는 여러 기능들의 코드를 미리 정의해 놓은 뒤 소프트웨어를 개발할 때 필요한 것을 가져와 사용할 수 있다.
python의 여러 모듈들을 모아놓은 이나 jQuery같은 것을 예로 들 수 있다.
3. 프레임워크
프레임워크는 특정한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조로 문제를 해결하는데 필요한 각 기능을 구현하기 위한 라이브러리들이 모여있는 형태이다.
라이브러리와 달리 사용자가 아닌 프레임워크에서 코드를 호출한다.
또 그 프레임워크만의 흐름과 규칙을 가지고 있고 사용자는 이에 따라야 한다. Spring이나 Django 등이 그 예가 될 수 있다.
라이브러리와 프레임워크는 비슷한 듯 다르다. 라이브러리는 사용자가 원할 때 호출하여 사용할 수 있고 사용자가 흐름을 제어하지만, 프레임워크는 코드를 프레임워크가 호출하고 사용자가 코드를 작성할 때 프레임워크의 규칙에 따라야 하고 프레임워크의 흐름을 따라야 한다.
개념적으로는 저런 구분을 하지만 사실 둘 사이의 경계가 모호한 부분도 존재한다. React 같은 경우는 자신을 라이브러리라고 소개를 하고 있고 지켜야 하는 폴더 구조나 지켜야 하는 컴포넌트명 같은 것들이 없다. 하지만 프레임워크처럼 사용자의 컴포넌트를 호출하는 경우도 존재하기 때문에 이럴 때는 프레임워크라고도 할 수 있을 것이다.
'개발 관련 지식' 카테고리의 다른 글
[Linux 명령어] 기초 명령어 (0) | 2024.08.09 |
---|---|
Docker가 대체 뭐야 (0) | 2024.07.22 |