개발자 채용공고를 보면 빠지지 않고 나오는 것이기도 하고 기본 중에 기본이 'RESTful API 이해'이기에 정리할 필요가 있다.
RESTful 하다는 것은 어떤 의미일까?
REST은 HTTP를 활용하여 클라이언트와 서버 통신 가능하게 하는, 웹의 장점을 최대한 활용하는 아키텍쳐(설계구조)를 말하고,
RESTful API는 HTTP 의도에 맞게 활용 및 디자인한 API(앱 활용 도구)다.
의도에 맞게 활용한다는 것은
첫째. <URI>는 정보의 자원을 표현해야 하고,
둘째, 자원에 대한 행위는 <HTTP Method>(GET'생성', POST'조회', PUT'수정', DELETE'삭제')로 표현하는 것을 말한다.
<URI>로 주어나 목적어를 만들고, <HTTP Method>로 동사를 만든다는 개념이다.
예) <URI : 유저리스트>에 <URI : 유민호>를 <HTTP Method - GET : 생성>할게!
여기서 <URI>를 동사로 활용하거나, 불분명한 자원으로 표현하거나,
<HTTP Method - POST>를 활용해 수정도 하고 삭제를 하는 것은
RESTful하지 않다는 것을 의미한다.
왜 REST가 필요할까?
결국, 효율화다.
누구나 효율적으로 개발하기 위해서 규칙성을 가진 프로그램을 만드는 것이다.
규칙이 동일하기 때문에 그 프로그램을 가져다 쓰기 편하고 관리도 편하다.
기능이 복잡한 프로그램의 경우 각 기능별로 RESTful한 프로그램들로 나누어 관리하면
서로 필요할 때 가져다 쓰기도 좋고 각 기능별로 팀을 만들어 고도화시키기도 쉽다.
또, 대기업의 경우 API만을 공유하여 활용할 수 있게 만들 수도 있다.
카카오 REST API처럼 말이다.
단순하게 설명했지만 생각보다 알아야 될 내용들은 더 있다.
REST의 구성요소, 응답 코드 등이 있지만,
자세한 것은 이 개념들 이해하고 직접 더 찾아본다면 이해가 될 것 같다.
'Googling > cs' 카테고리의 다른 글
[DB] 트랜잭션 격리수준과 부정합 이슈 (feat. Dirty Read ~ Phantom Read) (0) | 2022.04.23 |
---|---|
[CS] 동기(synchronous)와 비동기(Asynchronous)를 쉽게 이해해보기 (feat. 싱크로나이즈드 수영과 핫도그) (0) | 2022.03.18 |
[하드웨어] 보조기억장치 인터페이스 이해 (feat. HDD, SSD, NVMe, PCIe, M.2, SATA) (1) | 2021.06.04 |
[DATA] 데이터양 단위 이해 (feat. B, MB, GB, TB + LTE 속도?) (0) | 2021.06.04 |
[HTTP] 쿠키와 세션 (feat. 신입개발자 면접질문) (0) | 2021.05.13 |