API(Application Programming Interface)
: 기존에 있는 응용 프로그램을 통해서 데이터를 제공받거나 기능을 사용할 때 사용하는 인터페이스 및 규격
입력과 출력이 존재하는 것
REST(REpresentational State Transfer)
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
즉, 자원(resource)의 표현(representation)에 의한 상태 전달을 뜻한다.
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.
어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI(Resource)로 GET, POST 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태(Representation of Resource)로 표현된다.
REST API란?
: REST의 특징을 기반으로 서비스 API를 구현한 것
최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 어플리케이션을 여러 개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 기업 대부분은 REST API를 제공한다.
여기서 RESTful란, REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful한 API라고 한다. 즉, REST의 원리를 잘 따르는 시스템을 RESTful이란 용어로 지칭된다. RESTful API는 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것을 목적으로 하며, 만약 성능이 중요한 상황이라면 굳이 RESTful 한 API를 구현할 필요는 없다.
REST API
URI는 정보의 자원만 표현해야 하며, 자원의 행위는 HTTP Method에 명시한다.
카카오 REST API로 보자면,
HTTP URI(Uniform Resource Identifier)로 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)로 자원에 대한 행위를 정한다.
처음 이 과정에 대해 보았을 때 도저히 뭐가 뭔지 몰랐었는데 구현을 해보고, 다시 제대로 공부해보니 눈이 트이는 느낌이다. GET으로 유저 정보를 조회하고 그에 따라 로그인 / 회원가입 처리를 한다. 여기서 URI로 전달되는 정보의 자원은 카카오에서 회원에게 부여해주는 고유한 ID를 뜻한다.
참고 및 출처
https://velog.io/@yukina1418/REST-API-%EA%B7%B8%EB%A6%AC%EA%B3%A0-GraphQL
'정리' 카테고리의 다른 글
AOP (Aspect Oriented Programming, 관점 지향 프로그래밍) (0) | 2023.04.07 |
---|---|
XML(eXtensible Markup Language)이란? (0) | 2023.04.04 |
JSP(Jakarta Server Pages / Java Server Pages)란 무엇일까? (0) | 2023.03.26 |
클라우드(Cloud) 서비스란? (0) | 2023.03.24 |
NoSQL vs RDBMS (0) | 2023.03.13 |
댓글