일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그레이들
- frontend
- Algorithm
- Graph
- network
- Redux
- VIM
- DFS
- Data Structure
- java
- db
- react
- 동적 계획법
- CS
- vscode
- 백준
- BFS
- 리트코드
- DP
- 자바
- Python
- 프로그래머스
- Javascript
- TypeScript
- 알고리즘
- Database
- git
- 다이나믹 프로그래밍
- LeetCode
- 안드로이드
- Today
- Total
늘 겸손하게
CS - REST API 본문
REST API란?
REpresentational State Transfer API의 약자로 REST 아키텍처 기반의 API 서비스를 의미합니다.
REST API ( RESTful API )를 이해하려면 먼저 REST에 대하여 알아야 합니다.
REST
REST란 REpresentational State Transfer의 약자로 웹 상의 컴퓨터 시스템 간 통신을 쉽게 해주는 기준을 제공합니다.
즉, REST는 'HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처'입니다.
REST 설계 구조를 따르는 시스템을 RESTful 시스템이라 부르며 무상태(stateless)를 지키고 클라이언트와 서버를 분리해 놓은 시스템입니다.
클라이언트와 서버의 분리
REST 설계 스타일을 따르는 시스템에서는 클라이언트와 서버가 서로를 전혀 알지 못하더라도 독립적으로 구현 가능합니다.
이렇게 독립적으로 분리된 구조 덕분에 클라이언트 코드든 서버 코드든 상대방에게 아무런 영향을 끼치지 않고 언제든지 수정이 가능합니다.
클라이언트와 서버 모두 상대에게 데이터를 전송하는 포맷을 알고 있다면 계속 분리된 상태를 유지할 수 있습니다.
이 방식을 통해 인터페이스가 다양한 플랫폼에서 작동 가능한 유연성을 확보하고 서버 컴포넌트를 단순화하기가 편리해집니다.
또한 각 컴포넌트가 독립적으로 진화 가능하도록 합니다.
무상태 (stateless)
무상태는 서버든 클라이언트든 상대방이 어떤 상태에 있는지 알 필요가 없다는 것을 의미합니다. 이 방식으로 클라이언트, 서버 둘 다 전달받은 모든 메시지를 이전 메시지 참조 없이 이해할 수 있습니다. 이러한 규제는 주로 리소스를 사용할 때 적용됩니다.
API
Application Programming Interface의 약자로 코드 내부에서 다른 소프트웨어와 상호작용할 수 있는 인터페이스를 말합니다.
예로, 오늘 날씨를 알려주는 앱을 개발하려 할 때, 기상청의 API를 가져다 사용하면 기상청 소프트웨어로부터 날씨 데이터를 받아와 사용자에게 날씨를 알려줄 수 있습니다.
HTTP 응답 코드
HTTP 응답은 코드를 통해 응답의 상태를 나타냅니다.
코드 1xx : Information (정보 교환)
코드 2xx : Success (성공 - 데이터 전송이 성공적으로 이루어졌거나, 이해되었거나, 수락되었음 )
코드 3xx : Redirection (방향 바꿈 - 자료의 위치가 바뀌었음)
코드 4xx : Client Error (클라이언트 오류 - 클라이언트 측의 오류. 주소를 잘못 입력하였거나 요청이 잘못 되었음)
코드 5xx : Server Error (서버 오류 - 서버 측의 오류로 올바른 요청을 처리할 수 없음)
출처
'Computer Science' 카테고리의 다른 글
Github README.md에 gif 넣기 (0) | 2022.07.06 |
---|---|
CS - URI , URL 차이 (0) | 2022.06.16 |
CS - Software Engineering - 객체 지향 프로그래밍 (0) | 2022.06.15 |
CS - HTTP 메소드 (0) | 2022.06.15 |
CS - Ajax 비동기(async) 방식이란? (0) | 2022.06.14 |