채용공고를 보면 'REST API 개발 경험 우대' 라는 글을 자주 볼 수 있다. API는 무엇인지 알겠는데 앞에 붙은 REST는 무엇인가? 하는 생각이 들었다. 그래서 공부를 해보고자 한다!
먼저 기초탄탄을 위해 API에 대해 알아보자
API란?
Application Programing Interface의 약자로 어떤 응용프로그램에서 데이터를 주고받기위한 방법을 의미하며
일종의 데이터의 다리 역할입니다.
그렇다면 REST란?
REST는 Representational State Transfer의 약자로 HTTP기반으로 필요한 자원에 접근하는 방식을 정해놓은 아키텍처입니다. 자원은 저장된 데이터, 파일, 서비스를 모두 포함합니다.
특징
1. HTTP URI을 통해 자원을 명시한다.
2. HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 Operation을 적용한다.
3. 서버-클라이언트 구조이다. 자원이 있는쪽이 서버, 자원을 요청하는 쪽이 클라이언트가 된다.
장점
1. HTTP 프로토콜의 인프라를 사용해 별도의 인프라 구축이 필요없다.
2. HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
3. 서버와 클라이언트의 역할을 명확하게 분리한다.
4. REST API가 의도하는 바를 쉽게 파악할 수 있다.
단점
1. 사용할 수 있는 메소드가 한정적이다. (POST, GET, PUT, DELETE)
2. 구형 브라우저가 제대로 지원해주지 못하는 부분이 존재한다. (PUT, DELETE / pushState)
REST 구성요소
1. 자원(Resource) : URI
*모든 자원에 고유한 ID(HTTP URI)가 존재하고, 서버에 존재
*클라이언트는 URI를 이용해서 자원을 지정하고 조작을 서버에 요청
2. 행위 : HTTP Method
*HTTP 프로토콜의 Method를 사용 (POST, GET, PUT, DELETE)
3. 표현
*사용자가 자원에대한 조작을 요청하면 서버는 이에 적절한 응답을 보낸다.
*REST에서 하나의 자원은 JSON, XML, TEXT, RSS등 다양한 형태로 나타내어 질 수 있다. 주로 JSON, XML을 사용한다.
REST API는 REST를 통해 서비스 API를 구현한 것입니다.
설계 기본 규칙
1. 자원(Resource)은 명사, 소문자를 사용한다.
'개발 > 서버관련' 카테고리의 다른 글
Docker 기초 명령어 및 실행 테스트 해보기 (0) | 2020.07.07 |
---|---|
Docker 설치하기 (0) | 2020.07.07 |
동기와 비동기 방식 (0) | 2020.05.31 |
Session(세션) 과 Cookie(쿠키) (0) | 2020.05.31 |
GET과 POST 방식 (0) | 2020.05.31 |