본문 바로가기

TIL,WIL

WIL (API, REST API 구성 및 특징)

API(Application Programming Interface)

api는 간단하게 설명하면 연결 통로라고 보면 된다.

예를들어 네이버 맵 API라는 API가 있다고 가정했을 때 이 API는 네이버 서버에 있는 맵 기능을 다른 사용자들이 이용할 수 있게 만든 통로(API)라고 할 수 있으며, 네이버에서는 API를 통해 네이버의 맵 기능을 여러 사람이 사용할 수 있게 프로그래밍하여 제공하게 된다.

API의 종류(접근 방식)

1. 비공개 API

private API라 하며 이는 내부 API로 각 기업내부 혹은 연구 목적의 API로 단체 내부에서만 사용하며, 외부에 노출되지 않는다.

2. 공개 API

public API라 하며 모두에게 공개되는 API를 의미한다. 사용량에 따라 요금이 부과될 수 있으며 Open API라고도 한다.

3. 파트너 API

사용하기를 동의가 진행된 특정인들만 사용 할 수 있으며, 그 외부로는 노출되지 않는다.

 

API의 종류(아키텍쳐,스타일)

SOAP, RPC, WebSocket, REST API, GraghQL 등등이 있지만, 현재 가장 유행하는 REST API에 관해 작성하겠다.

자세한 내용은 https://aws.amazon.com/ko/what-is/api/에서 확인 가능하다.

 

 

REST API(REpresentational State Transfer)

REST : 분산 시스템 설계를 위한 아키텍쳐 스타일이다.

RESTful API : REST라는 아키텍쳐 스타일의 원칙을 모두 만족하는 API라는 뜻이다.

더보기

분산 시스템이란 : 분산 시스템은 중앙 집중식 시스템의 대척점으로 공유하는 공동의 목표를 달성하기 위해 여러개의 개별 컴퓨팅 노드에서 컴퓨팅 리소스를 활용하는 컴퓨터 프로그램의 모음이다. 분산 시스템은 시스템에서 병목 현상이나 중앙에 장애 지점을 제거하는 것을 목표로 한다.

 

특징 : 리소스 공유, 동시처리, 확장성, 오류감지, 투명성

 

아키텍쳐 스타일이란 :  아키텍쳐 스타일이란 아키텍쳐 설계에서 반복해서 나타나는 문제를 해결하고, 아키텍쳐가 만족시켜야하는 품질 속성을 달성할 수 있는 방법을 문서화한 것이다. 

아키텍쳐는 최적화를 목표로 시스템 구성과 동작원리, 시스템의 구성환경등을 설명 및 설계하는 설계도 이다.

REST 구성

1. 자원

URI (인터넷 자원을 나타내는 고유 식별자)를 이용

2. 메소드

HTTP 메소드 이용(GET,POST,PUT,DELETE)

Method 역할
POST 해당 URI를 요청하면 리소스를 생성한다.
GET 해당 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져온다.
PUT 해당 리소스를 수정한다.
DELETE 해당 리소스를 삭제한다.

3. 메세지

HTTP header, body, 응답 상태 코드 등으로 구성되었다. header에는 body에 어떤 형식으로 데이터가 담겼는지 표기하고, body는 자원에 대한 정보를 전달한다.(xml, json..) 응답 상태 코드는 200~500사이의 숫자로 클라이언트 요청에 대한 상태를 표기한다.

 

REST 특징

1. Uniform Interface(인터페이스 일관성)

URI로 지정한 리소스에 대한조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말한다.특정 언어나 기술에 종속되지 않는다.

 

2. Cacheable(캐시 가능)REST의 특징중 하나로 HTTP웹 표준을 그대로 사용하기 때문에 HTTP가 가진 캐싱 기능이 적용 가능하다. 캐시 사용을 통해 응답 시간이 빨라지고, 서버의 자원 이동률을 높일 수 있다.

 

3. Stateless(무상태)

HTTP 프로토콜이 기본적으로 무상태이기 때문에 REST 또한 무상태이다. 무상태란 클라이언트의 상태를 서버에 저장하지 않는다는 뜻으로 세션 정보나 쿠키 정보를 저장및 관리하지 않기 때문에 API 서버는 들어오는 요청만 처리하면 된다. 이를 통해 서버의 부담을 줄이고 구현이 단순해질 수 있다.

 

4. Server-Client 구조

서버와 클라이언트 구조로 각각의 역할을 확실히 구분하기 때문에 클라이언트와 서버의 개발 내용을 명확히 할 수 있고, 서로간의 의존성이 줄어드게 된다.

 

5. Layered System(계층형 시스템)

REST서버는 다중 계층으로 구성 될 수 있다.

 

 

즉, REST API란 REST를 기반으로 서비스하는 API이다. URI 형식으로 HTTP메소드(GET, POST, PUT, DELETE)를 요청해 자원을 조회, 생성, 수정, 삭제 할 수 있는것이 REST API이다.

 

회고록

항해 99에서 진행한 웹개발 종합반을 통해 간단한 웹페이지들을 만들어 보았는데 AJAX, JSON, 비동기 등등 여러 내용들을 배우게 되었다. 아직 언어와 자료구조, 알고리즘이 많이 약해 이번주 내내 위 내용들을 중점적으로 공부하였지만 아직도 모르는거 투성이다. 아마 다음주도 계속 언어공부를 진행할 것 같은데 이번주보다 2배 더 나은 다음주가 되길 바란다.

'TIL,WIL' 카테고리의 다른 글

[12기] 항해99 1주차 WIL  (0) 2023.01.22
Ajax 간단한 팬명록 (로컬에서는 되는데...)  (0) 2023.01.09