728x90
처음 개발을 시작했을 때 API, 라이브러리, 프레임워크 개념이 와닿지가 않았다.
이제 처음보다 많은 걸 접해봤으니, 이제 헷갈리지 않도록 예시를 통해 정리해두려고 한다.
1. API란?
- API는 Application Programming Interface의 약자이다. 즉, 요청과 응답을 사용하여 소프트웨어들이 통신하는 방법이다.
- 두 개 이상의 소프트웨어 컴포넌트 사이에서 상호 작용 할 수 있도록 정의된 인터페이스를 뜻한다.
- URL을 통해 서버에 접속해서 필요한 부분을 요청하여 응답을 받으며 이용할 수 있다.
- 예시 - JPA(Java와 DB 사이에서 연결해주는 매개체), Google Maps API
더보기
API를 사용하는 이유
1. 서버와 DB에 직접적인 접근 방지
2. 표준화된 요청만 받을 수 있도록
2. 라이브러리란?
- 자주 사용하는 로직들을 재사용하기 위해 미리 작성된 코드의 집합이다.
- 기능을 반복해서 구현할 필요 없이 함수 호출로 기능을 사용할 수 있다.
- 독립성을 가지고, 개발자가 원하는 시점에 능동적으로 라이브러리를 사용한다.
- 예시 - AssertJ, jQuery, Lombok
3. 프레임워크란?
- 개발에서 애플리케이션의 구조와 흐름을 정의하는 틀이다. (제어의 역전, IoC)
- 프레임워크의 틀에 따라 개발자가 코드를 일관성 있게 작성하기 때문에, 협업 시 코드의 이해도를 높일 수 있다.
예시 - Spring, Junit, Django, Angular
4. API와 라이브러리의 차이
구현 로직의 유무에 따라 갈린다.
- API : 컴포넌트를 사용하는 규약 및 호출을 위한 수단으로서 구현 로직이 필요없다. (매개체 역할)
- 라이브러리 : 컴포넌트 자체로, 구현 로직이 존재한다.
라이브러리는 도구 자체이고, API는 "도구 주세요!"라고 요청하는 것이라 볼 수 있다.
5. 라이브러리와 프레임워크의 차이
흐름 주도권을 누가 가지고 있는지에 따라 갈린다.
- 라이브러리 : 개발자가 라이브러리를 호출하기 때문에, 개발자가 주도권을 가지고 있다.
- 프레임워크 : 개발자는 프레임워크의 규칙에 따라 코딩하기 때문에, 프레임워크가 주도권을 가지고 있다.
6. 요약
- API는 소프트웨어 간의 상호작용을 위한 규칙을 정의한 인터페이스이다.
- 라이브러리는 특정 기능을 제공하는 코드의 집합으로, 개발자가 원하는 시점에 호출해서 사용한다.
- 프레임워크는 애플리케이션의 구조와 흐름을 정의하는 틀이며, 개발자는 그 틀에 맞춰서 코드를 작성한다.
[참고]
'개발 > 개발노트' 카테고리의 다른 글
[Java] 제네릭 메서드 활용 예제 (0) | 2024.06.04 |
---|---|
[DB 형상관리] SpringBoot에 Flyway 도입 (0) | 2024.04.01 |
[Network] application/x-www-form-urlencoded 와 application/json의 흐름 (0) | 2024.03.28 |
[Network] 나는 지금 RESTful API를 만들고 있을까? (1) | 2024.02.01 |
[JPA] DTO와 Entity를 분리하는 이유 (1) | 2024.01.26 |