재밌고 어려운 IT를 이해해보자~!

프로젝트 관련 궁금증 정리 본문

개인공부

프로젝트 관련 궁금증 정리

언제나즐거운IT 2024. 2. 22. 17:43

라이브러리와 API의 차이점

API

다른 프로그램이나 시스템에서 이용할 수 있도록 제공되는 인터페이스
보통 일련의 함수, 프로토콜, 클래스 등으로 구성되어 있으며, 이를 사용하여 다른 프로그램과 상호작용

API는 프로그램이나 서비스 간에 데이터를 교환하고 기능을 공유하기 위한 인터페이스

API는 소프트웨어 컴포넌트들이 상호 작용하는 방법을 정의한 규약이나 명세이다.

일반적으로 API는 다음과 같은 요소들로 구성된다.

함수/메서드: 호출할 수 있는 작업들을 정의
데이터 구조: 프로그램 간에 교환할 데이터 형식을 정의
프로토콜/규약: 데이터 전송 및 처리 방법을 정의

API는 특정 프로그램이나 서비스의 기능을 제공하는데, 개발자가 해당 프로그램이나 서비스의 내부 구현을 몰라도 사용할 가능

API를 사용하면 개발자는 시간을 절약하고 코드를 효율적으로 관리가능


API 예시: 예를 들어, 페이스북 로그인 API는 개발자가 자신의 웹사이트 또는 응용 프로그램에서 페이스북 로그인을 허용할 수 있도록 지원한다.

개발자는 페이스북 로그인 API에 대한 적절한 권한을 요청하고 API에서 제공하는 함수 및 프로토콜을 사용하여 사용자의 페이스북 계정으로 로그인하고 사용자의 프로필 정보에 액세스 가능하다.

라이브러리

라이브러리는 미리 작성된 코드 조각들의 모음

프로그램 개발 시 재사용할 수 있는 기능들을 제공한다.

라이브러리는 개발자가 특정 작업을 수행하기 위해 필요한 코드를 작성하는 데 도움이 된다.

라이브러리는 다양한 유형의 데이터 구조, 알고리즘, 편리한 함수 등을 포함할 수 있다.

 

라이브러리를 사용하면 개발자는 효율적으로 코드를 작성, 코드 재사용성을 상승, 유지 관리를 용이

 

Library 예시 : jQuery는 라이브러리로 분류됩니다.

HTML 문서 탐색, 이벤트 처리, 애니메이션 효과, Ajax 상호작용 및 DOM 조작 등과 같은 다양한 웹 개발 작업을 단순화하는 데 사용되는 함수들을 제공

이러한 함수들은 일반적으로 특정 기능을 수행하기 위해 호출되는 라이브러리 함수들로 구성

API와 라이브러리 (Library) 비교

목적:
API는 서로 다른 소프트웨어, 서비스, 애플리케이션 간의 상호작용을 가능하게 하는 인터페이스!

API를 통해 외부 개발자들이 해당 서비스의 기능 사용이 가능하다.


라이브러리는 개발자가 프로그램을 구축할 때 사용하는 재사용 가능한 코드 모음

라이브러리는 일반적인 문제를 해결하기 위한 도구로서 개발 과정을 단순화하고 가속화한다.

 

보통 키를 요구하면 API 라고 한다!

사용방식:
API는 특정 서비스나 기능에 대한 요청을 전송하고 응답을 받는 방식으로 작동합니다. 개발자는 API 호출을 통해 외부 서비스에 접근하고, 해당 서비스의 기능을 사용할 수 있습니다.
라이브러리는 프로그램에 직접 포함되어 실행됩니다. 개발자는 라이브러리의 함수, 클래스, 객체 등을 호출하여 프로그램의 기능을 구현합니다.


종속성:
API는 종속성이 적다.

서비스 제공자가 API를 업데이트하거나 변경해도 클라이언트 측에서 적절한 수정을 통해 계속 사용할 수 있다.
라이브러리는 프로그램에 직접 포함되므로, 라이브러리가 업데이트되거나 변경될 경우 프로그램에 영향을 줄 수 있다.

따라서 라이브러리를 업데이트하면 프로그램 코드를 수정해야 할 수도 있다.

실행위치:
API는 일반적으로 서버에서 호스팅되며, 개발자는 네트워크를 통해 API에 접근한다.
라이브러리는 로컬 시스템에 설치되거나 프로젝트에 포함되어 실행된다.

GSON 객체와 JSON타입의 데이터

Gson은 Google에서 제공하는 Json 라이브러리로 Java 객체를 Json으로, 또는 Json을 Java 객체로 변환해주는 기능을 한다.

 

 

 

 

 

'개인공부' 카테고리의 다른 글

SQLD 정리  (1) 2024.02.25
Spring Framework  (0) 2024.02.23
Parameter(파라미터) 와 Attribute(속성) 의 차이  (0) 2024.01.27
JSTL practice  (0) 2024.01.26
sql 의문점 TEST  (2) 2023.12.31
Comments