일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자료형
- 코린이
- 인스턴스
- 백엔드
- ArrayList
- 졸리다
- throws
- Java
- 새벽공부
- 메서드
- 바이트 단위 스트림
- 변수
- 다형성
- 파이팅
- exception
- SSR
- 인터페이스
- 보조 스트림
- try-catch
- 자바
- MPA
- 초보개발자
- node.js
- 예외 처리
- 상속
- 개발자
- 배열
- 문자 단위 스트림
- FileInputStream
- 코딩
- Today
- Total
SHUSTORY
API 본문

🫨 API (Application Programming Interface)
지난번 interface에 대해 조사할 때 잠깐 언급된 API !
기억을 되짚어보자면, 개발 시 어떤 시스템 간 상호 작용을 위한 인터페이스.. 정도의 개념으로 이해하고 넘어갔다.
이번 시간에는 아직 추상적으로 개념이 잡혀 있는 API에 대해 명확하게 알아보는 시간을 갖겠다.
🍏 API의 정의
- 하나의 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법으로,
애플리케이션에서 데이터를 읽거나 쓰기 위해서 사용하는 인터페이스를 의미한다.- 🤔 이 방법이라는 게 뭔데?
쉽게 말하자면 그냥 코드이다.
구체적으로는, 통신하는 시스템 간 데이터를 교환하고 요청 및 응답을 처리할 수 있도록 해주는 코드들인 셈이다.
- 🤔 이 방법이라는 게 뭔데?
- 즉, 사용자는 UI를 사용하여 애플리케이션과 소통하고, 애플리케이션은 API를 사용하여 다른 애플리케이션 또는 시스템과 소통한다.

- API는 서버 역할을 하는 프로그램이 나눠준 메뉴판이라고 볼 수 있다.
이 메뉴판에는 요청을 보내는 쪽, 즉 클라이언트들이 보낼 수 있는 요청들이 메뉴처럼 나열되어 있다.
또한 클라이언트의 요청에 대응되는 서버 측의 응답 또한 정의되어 있다. - API는 특정 데이터를 조회하는 것 뿐만 아니라 데이터를 새로 생성하거나 수정, 삭제하는 용도로도 사용된다.
- API는 무엇을 보내고 무엇을 받아오는가에 대한 것이기 때문에 언어나 프레임워크에 구애받지 않으며,
어떤 프로그래밍 언어나 기술을 사용해서든 해당 API에 명시된 바에 따라 SW를 만들면 되는 것이다.
🍏 실제 웹 서비스와 함께 이해하는 API
- 예를 들어, 우리동네 날씨 정보를 보여주는 앱을 만들고자 하는 상황을 가정해보자.
이 앱을 만들기 위해서 기상청의 날씨 정보를 요청해서 응답을 받은 후, 화면에 날씨 정보를 보여주면 된다.- 이 때, 날씨 정보 데이터를 가져올 수 있도록 기상청에서 API를 제공한다.

- 위와 같이 기상청에서 API를 제공해주면, 앱에서는 요청을 통해 응답을 받아 사용자에게 보여줄 UI를 개발하면 된다.
- 기상청에서는 날씨 정보를 DB 서버에 보관한다.
기상청에서는 DB에 보관된 날씨 정보를 다른 애플리케이션에서 가져갈 수 있도록 다양한 API를 개발한다.
- 기상청에서는 날씨 정보를 DB 서버에 보관한다.

- 우리는 안드로이드 앱, ios 앱 등을 통해 유튜브를 볼 수 있다.
이 때, 휴대폰 안에 설치된 유튜브 앱 내부에 모든 유튜브 영상들이 들어 있을까?
🙂↔️ 그렇지 않다.- 이 영상들은 '서버'에 저장되어 있다.
각 기기들은 이 서버로부터 영상들과 관련된 데이터를 받아와서 재생하는 것이다.- 사용자의 휴대폰에서 유튜브 앱에 접속한다.
- 유튜브 앱은 (유튜브 데이터 API)서버에 최신 컨텐츠의 목록을 보내달라는 요청을 보낸다.
- 이에 대한 응답으로 서버에서는 영상들의 정보를 보내준다.
그 외에도 좋아요 누르기, 댓글 달기, 영상 올리기 등 다양한 작업들이 이 SW들 간의 소통을 통해 이루어진다.
- 즉, API는 SW들이 대화할 때 사용되는 수단이며,
우리가 유튜브를 볼 수 있는 것은 이 SW들이 원만하게 대화를 나누고 있기 때문이다.
- 이 영상들은 '서버'에 저장되어 있다.
API에 대해 더 알아보자
- public API
- 누구나 사용 가능한 공개 API
- Open API라고도 한다.
- 일반적으로 Open API라는 용어를 사용할 때는 HTTP API를 말한다.
- private API
- 회사 자체 서비스를 만들기 위해 사내에서 개발하고 사용하는 API
- 제 3자에게 공개되지 않는다.
- partner API
- 미리 정해둔 놈(서로에게 공유를 동의하는 특정인)만 쓰는 API
- 주로 특정 비즈니스 파트너 간의 데이터 공유를 위한 API
🫨 추가적으로 알아보는 API
🌳 아마존에서 API에 대해 굉장히 상세히 기술해두었길래 추가적으로 API에 대해 조사 및 정리하고자 한다.
참고 : https://aws.amazon.com/ko/what-is/api/
API란 무엇인가요? - 애플리케이션 프로그래밍 인터페이스 설명 - AWS
GraphQL은 API용으로 특별히 개발된 쿼리 언어로서, 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 합니다. 또한 API를 빠르고 유연하며 개발자 친화적으로 만들도록 설계되었습니다. RES
aws.amazon.com
- API는 두 애플리케이션(고유한 기능을 가진 모든 SW) 간의 서비스 계약이라고 할 수 있다.
즉, 요청과 응답으로 구성되어 서로 통신하는 방법을 정의한다.
🌳API가 생성된 시기와 이유에 따라 네 가지 방식으로 작동할 수 있다.
이에 대해서는 간단하게만 알아보겠다..
- SOAP API
웹 서비스 통신 프로토콜 중 하나로, XML을 기반으로 데이터를 교환한다.- 높은 보안과 복잡한 트랜잭션 처리를 제공하지만, XML 기반의 복잡한 구조로 인해 오버헤드가 크고 유지보수가 어렵다.
이로 인해 현대 웹 서비스에서는 RESTful API로 대체되는 경향이 있다.
- 트랜잭션
DB 시스템이나 컴퓨팅 환경에서 여러 작업이 하나의 단위로 묶여서 처리되는 것으로,
이 과정은 데이터의 일관성과 무결성을 보장하는 중요한 개념이다.
- 높은 오버헤드
XML은 태그로 감싸진 구조화된 데이터를 사용하기 때문에 사람이 읽기 쉽고 기계가 처리할 수 있지만,
각 데이터 항목에 대한 태그가 추가되므로 데이터 크기가 커지는 경향이 있다.
JSON 같은 경량 포멧에 비해 더 많은 데이터가 전송됨
- 트랜잭션
- 높은 보안과 복잡한 트랜잭션 처리를 제공하지만, XML 기반의 복잡한 구조로 인해 오버헤드가 크고 유지보수가 어렵다.
- RPC API
- 클라이언트-서버 모델에서 사용되는 기술로, 클라이언트가 서버에서 원격으로 함수를 호출,
즉 네트워크를 통해 다른 컴퓨터(서버)에 있는 함수를 실행하여 작업을 수행하는 방법을 제공한다.
RPC는 기본적으로 네트워크를 통해 다른 컴퓨터에서 함수나 메소드를 실행할 수 있게 해준다.
- 클라이언트-서버 모델에서 사용되는 기술로, 클라이언트가 서버에서 원격으로 함수를 호출,
- Websocket API
- JSON 객체를 사용하여 데이터를 전달하는 웹 API 개발로, 클라이언트 앱과 서버 간의 양방향 통신을 지원한다.
서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있다.
- JSON 객체를 사용하여 데이터를 전달하는 웹 API 개발로, 클라이언트 앱과 서버 간의 양방향 통신을 지원한다.
- REST API
- 오늘날 웹에서 가장 많이 사용되는 유연한 API로, 클라이언트가 서버에 요청을 데이터로 전송한다.
클라이언트가 서버에 데이터를 요청하면, 서버가 그에 맞는 데이터를 처리한 후 응답을 반환하는 방식이다. - REST는 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, PUT, DELETE 등의 함수 집합을 정의하며,
클라이언트와 서버는 HTTP를 사용하여 데이터를 교환한다.
- 오늘날 웹에서 가장 많이 사용되는 유연한 API로, 클라이언트가 서버에 요청을 데이터로 전송한다.
🌳 API 엔드포인트

- API 엔드포인트는 API를 통해 서버와 클라이언트 간에 데이터를 주고받는 특정 URL이나 URI로ㅡ
API 통신 시스템에서 클라이언트가 요청을 보낼 때 대상이 되는 최종 지점을 나타낸다.
GET httpsGET https://example.com/api/products?category=electronics&minPrice=100&maxPrice=500
- API 엔드포인트 구성 요소
- 서버 URL
API 요청이 전달되는 서버의 주소로, 해당 URL로 클라이언트가 해당 서버와 통신하게 된다. - 경로(Path)
서버 URL 뒤에 붙는 경로로, 특정 리소스나 서비스를 지정한다. - 쿼리 매개변수(Query Parameters)
경로 뒤에 붙는 추가 매개변수로, 요청에 대한 세부 조건(특정 사용자에 대한 정보를 요청하는 등)을 지정한다.- 일반적으로 ?로 시작하며, 여러 매개변수를 사용할 경우 &로 구분된다.
- HTTP 메소드
GET, POST, PUT, DELETE 등 요청의 목적을 나타낸다.
- 서버 URL
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
🧐 실제 API 명세서가 어떻게 쓰이는지에 대해서는 위와 같이 공개된 API DOCS에서 쉽게 볼 수 있으므로 참고하면 될 듯하다.
'CS' 카테고리의 다른 글
JSON, XML, YAML (2) | 2024.11.04 |
---|---|
Frontend / Backend (5) | 2024.11.01 |
MPA / SPA (2) | 2024.10.30 |
CSR / SSR (6) | 2024.10.23 |
Interface (1) | 2024.10.18 |