반응형
개발자라면 프레임워크, 라이브러리, API를 모두 들어봤을 것이다.
다른 개념이지만 헷갈릴 수 있는 요소를 충분히 가지고 있기 때문에 애매하게 알고 넘어간다면 누군가 물어봤을때 대답하는데 있어 난처해지는 상황이 발생할 수 있다.
따라서 이들에 대해서 정리해보도록 하자.
프레임워크
- 범용 기능들을 제공해줌으로써 애플리케이션을 개발하기 쉽도록 해주는 소프트웨어이다.
- 덕분에 개발자는 핵심 로직에만 집중할 수 있음
- Java로 Web 애플리케이션을 개발할 경우 Servlet 관련 로직들을 구현해야 하지만, Spring 프레임워크를 사용하면 이러한 부분들을 추상화시키고 @RequestMapping 같은 기능으로 쉽게 구현할 수 있게 편의성을 제공해줌
- 제어의 흐름을 개발자가 아닌 프레임워크가 가지고 있음
- 즉, 프레임워크가 개발자가 작성한 코드를 제어하고 대신 실행
- 대표적인 프레임워크로 Java 기반의 Spring, Python 기반의 장고, Javascript 기반의 노드 JS가 존재
라이브러리
- 개발자가 사용할 수 있는 API들을 종류나 목적에 따라서 나누어 정의한 API 묶음
- 재사용 가능한 코드들의 집합
- 정렬 알고리즘을 사용할 때 직접 구현해서 사용해도 되지만 이는 상당히 번거로움
- 실제로 우리는 정렬이 필요할 경우 java.util 패키지에 존재하는 정렬 메서드를 사용함
- 이처럼 자주 사용될 수 있는 기능들을 구현하여 모아놓은 것이 라이브러리
- 또한, 직접 sort() 메서드를 가져와서 실행하는 것처럼 개발자가 직접 제어의 흐름을 담당
- 프레임워크와 라이브러리의 가장 큰 차이점
API
- Application Programming Interface의 약자로써 응용프로그램에서 사용할 수 있도록 운영체제나 다른 프로그램이 제공하는 기능을 제어할 수 있게 만든 인터페이스
- 인터페이스이기 때문에 구현 로직은 없고 사양만 정의되어 있음
- 사람 - 리모컨(API) - TV 관계를 생각하면 쉬움
- 구글 지도를 사용하려면 구글 지도를 사용하는 로직을 구현할 필요 없이 구글 지도 API로 요청해서 사용
- 실제로 어떻게 구현되어 동작하는지는 알 필요 없으며, 사양에 맞게 적절히 요청하면 됨
- 즉, 두 프로그램을 연결해주는 다리 역할
- 라이브러리와 API의 차이는 구현 로직의 유무
[ Reference ]
· https://www.youtube.com/watch?v=_j4u4ftWwhQ
반응형
'IT 개인 공부 > Web' 카테고리의 다른 글
HTTP 프로토콜 발전 (0) | 2021.09.02 |
---|---|
캐시(Cache) : 검증 헤더와 조건부 요청 (0) | 2021.08.28 |
SSR(서버 사이드 렌더링) vs CSR(클라이언트 사이드 렌더링) (0) | 2021.08.19 |
Forward와 Redirect 방식의 차이점 & PRG(Post/Redirect/Get) (0) | 2021.08.17 |
URI vs URL vs URN (0) | 2021.07.25 |
댓글