티스토리 뷰
클라이언트가 서버에게
' 비디오 파일, 이미지 파일을 줘 '
' 이 파일을 내 디바이스에 저장해 줘'
라고 요청을 보낸다고 가정해보자.
그렇다면 서버는 요청에 따라 적합한 처리를 하여 클라이언트에게 응답을 줄 것이다.
하지만 당연히 컴퓨터는 컴퓨터의 언어로 요청을 처리해야하기에 이를 구분할 수 있도록 하는 체계가 필요하다.
그 체계를 바로 API (Application Programming Interface) 라고 한다.
정리하자면, API는 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계이다.
이 API 를 클라이언트의 관점에서 바라봤을 때
클라이언트가 서버에게 보내는 요청은 크게 4가지 요소로 나눌 수 있는데,
- Create
- Read
- Upload
- Delete
이 4가지 요소의 각 약자를 따서 불리우는 CRUD는 매우 중요하다.
무언가를 기획할 때, 항상 CRUD의 관점에서 데이터를 바라보아야 한다.
🔸 RESTful API
CRUD 요청은 각각의 주소를 가지는데, 이것은 서비스의 각 요청마다 주소를 가진다고 말할 수 있다.
프로젝트의 규모가 크면 클수록, LocalHost/CRUD 로 생긴 주소들이 수없이 많아지는데 이를 관리하기는 매우 힘들다.
프로그래밍은 사람이 하는 일이기에 주소의 기능이 겹치거나, 갈수록 체계적으로 정리도 되지 않을 것이다.
때문에 개발자들은 좀 더 체계적으로 API를 관리하고 싶어 했고 그 영향으로 조금 더 체계적인 API를 만드는 사회 운동이 만들어졌다.
그것이 바로 REST(Representational State Transfer)한 API. 즉 RESTful API 라고 불리게 된 것이다.
RESTful API에서는 CRUD를 하나의 주소로 관리한다.
그리고 요청을 보낼 때 어떤 요청을 보냈는 지 파악할 수 있게 메소드로 함께 전송한다.
Create 👉 POST
Read 👉 GET
Update 👉 PUT(전체) / PATCH(일부)
Delete 👉 DELETE
각 메소드의 요청에 따른 응답에 대해서도 개발자들은 HTTP 상태 코드로 약속을 정했는데,
요청에 따른 응답이 Good(성공) 이면 200번대(200,201,2xx,...)로,
클라이언트에서의 오류면 400번대,
서버의 오류면 500번대로 표현하기로 정했다.
이렇게 요청과 응답에 데이터를 담아 주고받음으로써 API 요청이 완성되는 것이다.
참고서적 : 비전공자를 위한 이해할 수 있는 IT 지식
'개발 세상 > 에러 해결 노트' 카테고리의 다른 글
[mac/gradle] dos2unix로 gradle 문제 해결하기! (0) | 2023.02.28 |
---|---|
[ReactNative/RN] react-native-track-player 라이브러리 사용 시 컴파일 에러 해결 방법 (0) | 2022.04.05 |
[JDK] JDK Version 17 build error 시 오류 해결 방법 | JDK 개발 환경 구축하기 - 환경 변수 설정하기 (0) | 2022.03.10 |
[NVM] nvm use 입력 시 exit status 에러 이슈 해결 (0) | 2022.01.24 |
npm install -g yarn 명령어 입력 시 Password 창 뜨는 이슈 해결 (0) | 2022.01.18 |
- Total
- Today
- Yesterday
- build
- REACT
- React Hooks
- Xcode
- typeScript
- React Native
- ios
- ChatGPT
- It
- 앱개발
- JavaScript
- Mac
- gradle
- app
- ReactNative
- Ai
- useState
- 코린이
- vscode
- IMAGE
- FlatList
- Android
- 영종도데이트
- rn
- Firebase
- vsC
- useEffect
- TS
- CSS
- 스파르타코딩클럽
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |