HTTP 메서드, 리소스

개발로 쓰는 개발 노트·2023년 5월 20일
0

집안 사정으로 인해 글이 약간 늦어졌다.. 1일 1게시물을 목표로 하고 있었는데 ㅠㅠ
이제 SQLD를 앞두고 있어서 최대한 1일 1게시물을 맞추긴 하겠으나 조금 짧게 해보려고 한다.

HTTP 메서드를 만들어보겠다.

HTTP 메서드 만들기

  • HTTP메서드 - GET, POST
  • HTTP메서드 - PUT, PATCH, DELETE

HTTP 메서드는 이렇게 크게 5가지가 있다.
이제 HTTP를 가지고 API를 만들어야 한다고 생각해보자
회원정보를 관리하는 API를 만들어야한다면 아래 같은 다양한 요구사항이 필요하다.

  • 회원목록조회 /read-member-list
  • 회원조회 /read-member-by-id
  • 회원등록 /create-member
  • 회원수정 /update-member
  • 회원삭제 /delete-member

라고 지었다고 해보자 과연 이게 좋은 API일까?

김영한 강사님께서는 API를 설계할 때 가장 중요한 것은 리소스를 식별하는 것이라고 하였다.

리소스란?

스타크래프트라는 게임을 가지고 비유해주셨는데 미네랄을 캐라 라고 일꾼에게 명령을 내리면
미네랄이 리소스라는 것이다.

리소스는 회원을 등록하고 수정하고 조회하는 것이 아닌 위에서는 회원 같은 자원을 의미한다.

그래서 리소스를 식별한다는 것은 회원을 등록하고 수정하고 조회하는 행동은 모두 배제하고
회원이라는 리소스만을 식별하여 회원 리소스를 URI에 매핑하는 형식으로 설계해야한다.

  • 회원목록조회 /members
  • 회원조회 /members/{id}
  • 회원등록 /members/{id}
  • 회원수정 /members/{id}
  • 회원삭제 /members/{id}

즉 위의 URI는 이렇게 바뀌게 된다. 그런데 리소스가 회원이여서 위 같이 4개의 URI는 똑같은 URI를 가진다.

그럼 이제 이걸 어떻게 구분시켜줘야 다른 요청을 할 수 있을지 고민해봐야하는데
그 해답은 GET, POST, PUT, PATCH, DELETE와 같은 HTTP메서드가 가지고 있다.

URI는 리소스만 구분해주고 행위는 메서드에서 식별하는것이다!

그러므로 내일은 HTTP 메서드 중 GET과 POST에 대해 알아보려한다!

출처 : 모든 개발자를 위한 HTTP 웹 기본 지식(김영한 강사님 인프런 강의)

profile
비전공자 개발초보입니다!

0개의 댓글