Dev/Basic

[REST] REST

隣のプログラマー君 2023. 4. 26. 17:44
반응형

 

일단 서두에 하고 싶은 얘기가 있다. 

REST API의 목적 상 나름 쉽게 설명하려고 애썼을 것 같긴한데..

이해가 잘 안간다. 왜냐? 우리나라 사람들 특이 영어로 아무리 쉽게 써놔도 어렵게 번역한다는 것이니까..

대학에서 전공서적으로 번역판, 원서 둘 다 써본 사람이라면 이해할 것이다. 

오히려 원서의 용어들이 훨씬 잘 와닿을 때가 많다. 

REST 도 말이 어려운데다 줄여놔서 그렇지. 당장 개발할 때 필요한 수준의 개념을 정립하려면 그렇게 어렵지 않다고 본다. 

 

1. REST란?

오늘도 사전적 정의 부터 먼저 가져와봤다. 

"REST는 Representational State Transfer의 약자로
자원(Resource)을 이름으로 구분하여 자원의 상태를 주고 받는 모든 것"

대부분 어딜 가도 이렇게 설명하고 있는데, 상당히 추상적이고 어렵다. 

쉽게 설명하면, 자원이 뭔지부터 풀어봐야한다. 우리가 소프트웨어를 만들 때 자원에 해당하는 것이 무엇이 있을까?

API로 넘길 수 있는 것들은 모조리 자원이라고 생각하면 된다. 

DB에 저장된 데이터, 문서, 그림 등등 이게 전부 Resource다.

 

근데 소프트웨어를 사용하는 사람도 많아지고 개발하는 사람도 많아지면서 이게 다 자원이름 같은걸 자기맘대로 만들어 제끼고 이런 저런 형태로 아무 그릇에나 담아서 데이터 날리고 이러니까, 저 Resource의 흐름을 이해하기가 힘들어진 것이다. 그래서 (위키에 따르면) 로이 필딩이라는 아저씨가 자기 논문에 "이렇게 규칙 좀 정하고 쓰자." 라면서 REST 라는 용어를 쓰기 시작했는데 이게 널리널리 퍼지고 대중화 된 것이다. (저 아저씨가 총대맨거라고 생각한다.)

그래서 하여튼 정해진 규칙은 이렇다. 

 

HTTP URI(Uniform Resource Identifier)을 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것

 

주소에 어떤 자원이 왔다갔다 할건지 그 자원의 이름을 명시해주고, 정해진 HTTP Method를 사용해서만 CRUD하자 라는 뜻이 된다. 이런 규칙에 따라 만들어진 구조가 REST가 된다. 

 

(REST의 특징을 얘기하고 싶은데 HTTP protocol에 대한 이야기가 필요하니 잠시 보류해야겠다..

저걸 알아야 뭔 말인지 이해가 가능하니까..)

 

REST에 대해서 알아봤으니 다음 글에 REST API에 대한 이야기와 규칙을 이야기해보겠다. 

LIST

'Dev > Basic' 카테고리의 다른 글

[Git] Git  (0) 2023.06.12
[HTTP] HTTP  (0) 2023.04.27
[REST] REST API  (0) 2023.04.27
[Arch] MSA || Monlolithic  (0) 2023.04.18
[FRONT] DOM  (0) 2023.04.17