일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- Algorithm
- hc-sr04
- behavioral modeling
- Linked List
- Edge Detector
- D Flip Flop
- test bench
- Recursion
- KEYPAD
- LED
- i2c 통신
- Pspice
- ring counter
- verilog
- pwm
- prescaling
- DHT11
- structural modeling
- FND
- vivado
- uart 통신
- gpio
- half adder
- soc 설계
- atmega 128a
- ATMEGA128A
- stop watch
- BASYS3
- dataflow modeling
- Today
- Total
거북이처럼 천천히
API 본문
1. API (application programming interface)
- 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청(request)와 응답(response)을 주고 받을 수 있게 만든 체계
- 어떤 소프트웨어가 다른 소프트웨어의 기능을 사용하기 위해 주소로 요청을 보내면 응답을 해주는 소프트웨어끼리의
체계
1.1. API는 왜 필요한가?
- 클라이언트가 서버에게 서로 다른 요청(request)한다면 서버는 어떤 요청(request)이 "메세지를 달라"이며,
어떤 요청(request)가 "로그인 시켜줘"인지를 알 수 없다. 따라서 요청(request)을 구분할 수 있도록 하는 '체계'
가 바로 API이다.
1.2. API의 동작 과정
- 서버쪽에서 사전에 "서버주소/A"로 요청하면 "로그인 기능"을 수행할 것이며, "서버주소/B"로 요청하면 "회원가입
기능"을 수행할 것이라고 정해둔다면 클라이언트는 본인이 원하는 기능을 수행 할 수 있는 IP 주소로 요청하게 된다.
- 서버는 사전에 정의한 IP주소로 요청이 들어오면 그에 해당하는 응답을 할 것이며, 동작이 정상적으로 이루어졌는지
등을 나타내는 HTTP status code과 함께 넣어 응답할 것이다.
1.3. CRUD
- 클라이언트가 서버에게 원하는 것을 얻기 위해서 작성하는 요청(request)에는 크게 4가지 요소로 구분 가능하다.
- C(Create), R(Read), U(Upate), D(Delete)
1.3.1. Create
- 클라이언트가 서버에 사진, 동영상 등의 파일을 올리는 요청
1.3.1. Read
- 클라이언트가 서버로부터 데이터들을 불러오는 요청
1.3.1. Update
- 클라이언트가 서버에 있는 데이터의 일부 혹은 전체를 수정해달라는 요청
1.3.1. Delete
- 클라이언트가 서버에 있는 데이터를 삭제해달라는 요청
- 큰 틀에서 보면 대부분의 요청(Request)는 CRUD, 이 4가지 요청에 속하며, 개발자는 CRUD 관점에서 데이터를
바라봐야 할 필요가 있다.
- CRUD 요청은 각각의 주소를 가지며, 예를 들어 create 요청은 '서버 주소/create'로 요청보내야 하며, read 요청은
'서버 주소/read'로 요청보내야 한다. 클라이언트가 원하는 요구사항에 맞춰 정확한 주소로 요청보낸다면 서버는
listening하다가 요청이 들어오면 그에 맞는 응답을 하게 된다.
1.4. REST(Representational State Transfer) API
- CRUD별로 서로 다른 주소가 존재한다면 주소가 너무 많아져서 관리하기 힘들고, 기능이 겹쳐 오류가 발생할 수 있다.
- 이를 위해 체계적인 API라는 사회운동이 발생하였으며, 그런 API를 'REST API'라고 부른다.
- REST API를 이용하면 CRUD 요청을 하나의 주소로 관리할 수 있는 장점을 갖는다.
- CRUD 요청을 하나의 주소로 관리하는 대신에 요청할 때, 클라이언트가 어떤 요청을 보냈는지 파악할 수 있는 스티커
(=메소드, Method)를 같이 서버에게 전달한다.
- Create(생성해 줘) : POST
- Read(불러와 줘) : GET
- Update(바꿔 줘) : PUT(전체)/PATCH(일부)
- Delete(지워 줘) : DELETE
1.5. HTTP status code
- 서버는 클라이언트로부터 요청(request)를 받으면 그에 대한 응답(response)를 하게 되는데, 이 과정에서 서버는
클라이언트에게 요청-응답 과정에 대한 결과를 2가지 경우로 나누어 보내게 된다.
- 요청-응답 과정이 정상적으로 작동하였다면 '잘 됐어'라는 의미에서 200번대 코드로 표현
- 문제가 발생한다면 '잘 안 됐어'라는 의미에서 400번대(=클라이언트의 요청에서 문제 발생)와 500번대(=서버에서
문제가 발생)로 나누어 표현
1.6. SDK(Software Development Kit)
- 소프트웨어를 개발할 때 도움을 주는 '디른 소프트웨어'
'생각 정리' 카테고리의 다른 글
DNS - Part 2 (0) | 2022.05.13 |
---|---|
DNS - Part 1 (0) | 2022.05.12 |
Domain Name (0) | 2022.05.12 |
HOST (0) | 2022.05.12 |
JSON (0) | 2022.05.11 |