앞선 아티클에서 REST의 기본적인 개념과 내용을 살펴보았습니다. 자원의 주소와 HTTP 요청 메서드를 통해서 해당 요청의 내용을 대략 추측할 수 있는 것을 확인했습니다.
여기서 주소와 요청 메서드를 다룰 때 하나 기억해야 할 사실이 있습니다. 바로 하나의 주소(/users, /post....)는 여러 개의 요청 메서드를 가질 수 있다는 점입니다.
예를 들어 GET 메서드의 /user 주소로 요청을 보내면 사용자 정보를 가져오라는 요청임을 짐작할 수 있습니다. 또는 POST 메서드의 /user 주소로 요청을 보내는 경우에는 새로운 사용자를 등록하려 한다는 사실도 예상할 수 있죠(참고로 로그인과 같이 구분이 애매한 경우에는 그냥 POST를 씁니다).
이렇게 REST는 주소와 메서드만으로도 요청의 내용을 추론할 수 있다는 장점이 있고, GET 메서드의 경우에는 바디에 별도의 데이터가 없는 형태이기 때문에 브라우저에서 캐싱(기억)할 수도 있어서 향후 같은 주소 + GET 요청이 진행될 경우 서버가 아닌 캐시에서 로드가 되어 성능이 향상될 수도 있습니다.
또한, REST를 사용할 경우 클라이언트의 종류와 상관 없이 같은 방식으로 서버와 소통이 가능합니다. 즉 iOS, Android, Web, 혹은 또다른 서버가 모두 동일한 주소로 요청을 보내는 것이 가능합니다. 결국 서버가 클라이언트의 종류에 귀속되지 않고 분리되어 운영이 된다는 점이죠. 이런 구조라면 나중에 서버를 확충하더라도 클라이언트에 구애 받지 않고 서버만 확장이 가능합니다.
이제 이러한 REST 사용 주소 체계를 따르는 서버를 RESTful 서버로 칭하게 됩니다. 지금부터 작성하게 되는 예제에서는, 아래와 같은 주소 구조를 사용합니다. 통상적으로 사이트 설계 시, 미리 주소 구조를 형성해 두는 것이 좋습니다.
HTTP 메서드 | 주소 | 역할 |
GET | / | restFront.html 파일 제공 |
GET | /about | about.html 파일 제공 |
GET | /users | 사용자 목록 제공 |
GET | 기타 | 기타 정적 파일 제공 |
POST | /user | 사용자 등록 |
PUT | /user/사용자id | 해당 id의 사용자 수정 |
DELETE | /user/사용자id | 해당 id의 사용자 삭제[ |
다음 아티클부터 HTML 페이지와 서버 파일을 작성해 보겠습니다.
'Programming > Node.js' 카테고리의 다른 글
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [4] (0) | 2024.07.06 |
---|---|
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [3] (0) | 2024.07.05 |
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [1] (0) | 2024.07.03 |
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [4] (0) | 2024.07.01 |
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [3] (0) | 2024.06.30 |