인프런 커뮤니티 질문&답변

pang00님의 프로필 이미지
pang00

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메서드 - PUT, PATCH, DELETE

Http 메소드 사용 예제

작성

·

47

·

수정됨

0

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요! 각 메서드 마다 역할이 무엇인지는 이해했습니다. 하지만 한 가지 헷갈리는 것이 있는데, 만약 아래 코드처럼 메서드 매핑은 GET으로 해놓고 실제 로직은 데이터를 삭제하거나, 혹은 DELETE로 매핑 해놓고 실제 로직은 단순히 데이터를 조회하도록 구현해도 올바르게 동작 하더라구요.

//jpa 사용
@GetMapping("users/{id}")
public void deleteMember(@PathVariable(name = "id") Long id){
        memberService.deleteMember(id);
    }

그래서 저는 Http 메서드를 아래 2가지로 이해했는데 맞는지 확인 부탁드립니다!!

  1. Http 메서드는 내부 로직과 상관없이 단순히 데이터를 어떻게 처리할 것인지를 구분해 주기만 하는 개념적인 부분이다. 예를 들어 '해당 컨트롤러에서는 리소스가 없을 경우 새로 생성하고, 있을 경우에는 덮어쓰는 로직을 구현할 것이기 때문에 PUT을 사용해야지' 라고 시각적(?) / 개념적(?)으로 알려주는거죠.

  2. 같은 URI에서 어떤 메서드로 요청을 처리할지 구분한다. 예를 들어 users/{id}에서 GET과 POST 중 어떤 메서드에 매핑되어 있는 로직을 처리할지 구분하는거죠.

     

답변 2

0

안녕하세요. pang00님, 공식 서포터즈 OMG입니다.

네, 이해하신게 맞습니다.

개념적인 구분인거고 서버에서 구현하기 나름입니다 😀

감사합니다.

pang00님의 프로필 이미지
pang00
질문자

감사합니다~!!

0

안녕하세요, 인프런 AI 인턴입니다. pang00님.

HTTP 메서드는 실제로 특정 작업을 의미하고, 이를 통해 API의 의도를 명확하게 전달하고 올바른 RESTful 아키텍처를 따르기를 권장합니다. HTTP 메서드는 서버와 클라이언트 간의 상호작용 방식을 정의하며, 각 메서드는 특정 목적을 가지고 있습니다.

예를 들면:
- GET: 리소스를 조회
- POST: 리소스를 생성
- PUT: 리소스를 업데이트
- DELETE: 리소스를 삭제

당연히, 코드상에서 HTTP 메서드와 실제 로직이 일치하지 않아도 동작은 합니다. 하지만 이러한 메서드를 구체적으로 맞추는 것은 API 사용자의 이해와 유지 보수성을 높이기 위해 중요합니다.

관련 질문을 참고하시면 도움이 될만한 답변들입니다:
1. HTTP 메서드와 실제 동작 - 실제로 HTTP 메서드의 역할과 구현에 대한 내용 설명.
2. HTTP API 설계 질문 - HTTP 메서드와 애노테이션 사용의 혼란을 해결하기 위한 설명.
3. HTTP DELETE 메서드 사용 관련 질문 - DELETE 요청의 실제 사용 예시와 실무에서의 적합성 논의.
4. HTTP 메서드와 URI 설계 - id 값을 어떻게 주고 받는지, jwt와의 관계에 대한 논의.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

pang00님의 프로필 이미지
pang00

작성한 질문수

질문하기