inflearn logo
강의

Course

Instructor

[Code Factory] [Beginner] NestJS REST API Backend Complete Conquest Master Class - NestJS Core

Summarizing Token Refresh Feature

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

Resolved

55

tkyoun12409907

2 asked

0

CRUD 중 DELETE 요청의 경우 어떤 기준으로 반환 타입을 정하는 게 좋을지 궁금합니다.

제가 생각하기에는 아래 두 가지 방식이 있을 것 같습니다.
강사님께서는 이러한 상황에서 어떤 기준을 표준으로 사용하시는지 궁금합니다.

1. 일관된 응답

return { success: true, data: null };

CREATE, READ, UPDATE와 동일하게 성공 여부를 명시하고 datanull로 처리하여 응답 구조를 통일하는 방식입니다.
이렇게 하면 프론트엔드에서 일관된 형태로 응답을 처리할 수 있을 것 같습니다.

2. HTTP 표준 준수 (204 No Content)
@HttpCode(204)
응답 본문을 따로 내려주지 않고 상태 코드만 반환하는 방식입니다.
이 경우 RESTful 표준에 부합하고 불필요한 네트워크 비용을 줄일 수 있을 것 같습니다.
다만 프론트엔드에서는 응답 본문이 없어 분기 처리가 필요할 수도 있을 것 같습니다.

이 두 가지 방식 중에서 실무에서는 어떤 기준으로 선택하시는지 또는 프로젝트 성격에 따라 구분하는 기준이 있을지 궁금합니다.




javascript typescript rest-api nestjs backend

Answer 2

0

codefactory

안녕하세요!

휴가중이라 답변이 늦었습니다. 죄송합니다.

저는 기본적으로 일관된 응답을 사용하는걸 좋아합니다.

"응답"은 백엔드의 관점도 중요하지만 받는쪽의 입장을 잘 고려한다면 더욱 협업하기 편한 설계가 가능해집니다.

프론트엔드를 설계한다면 어떻게 응답을 받아야 편할까 생각 해보세요.

감사합니다!

0

communityai8509

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

DELETE 요청의 반환 방식에 대해 고민하고 계시는군요. 각 방식의 장점과 단점을 잘 설명해 주셨습니다. 이와 관련된 내용을 설명드리겠습니다.

  1. 일관된 응답 방식:

    • API의 일관성을 유지하는 방법입니다. 모든 요청에 대해 같은 구조의 응답을 보내면 프론트엔드에서는 예측 가능한 방식으로 응답을 처리할 수 있습니다. 이 방식은 특히 다양한 상태에 대한 처리 로직을 간단하게 유지하도록 도와줍니다.
  2. HTTP 표준 준수 (204 No Content):

    • RESTful 설계 원칙을 충실히 따르는 방법입니다. DELETE 요청이 성공적이면 특별한 응답 본문이 필요 없음을 의미하는 204 상태 코드를 반환합니다. 이는 메시지 크기를 줄이고 트래픽을 감소시키는 데 유리합니다. 그러나 응답 본문이 없기 때문에 클라이언트에서 추가적인 처리가 필요할 수도 있습니다.

각 방식의 선택은 프로젝트의 요구사항이나 팀의 개발 철학에 따라 달라질 수 있습니다. 실무에서는 다음과 같은 기준을 고려할 수 있습니다:
- 응답의 일관성API의 직관성을 중시할 경우 첫 번째 방식을 선택하는 것이 좋습니다.
- 성능 최적화RESTful 원칙 준수를 강조한다면 두 번째 방식을 선택할 수 있습니다.

관련 논의에 참고될 수 있는 기존 질문을 첨부하니 확인해 보세요:
- DELETE 요청 처리 시 응답 방식에 대한 고려 사항과 장단점
- RESTful API에서 DELETE 요청의 응답 형태

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

cascade 질문

0

35

1

@types/bcrypt 설치과정이 누락된것같습니다.

0

41

1

process.env port key 에러

0

43

1

추상화

0

45

1

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

0

92

2

where 키워드가 들어가는 메서드와 아닌 메서드

0

53

1

BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?

0

66

1

app.controller app.service 는 지워도되나요?

0

67

1

@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이

0

75

1

포트 3000에서 listen하는 곳까지 넘어가지 않습니다.

0

62

1

PickType 사용 시 `as const`를 꼭 사용해야 하나요?

0

99

2

socket connect 오류

0

95

2

강의를 들으면서 궁금한 점

0

95

2

커리큘럼 질문

0

95

2

put 요청은 언제

0

88

3

typeorm VS prisma

0

339

2

142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.

0

74

2

User 데코레이터 버그 수정 전달드립니다.

0

64

1

git 주소 부탁드립니다.

0

109

2

nest g resource 명령어 에러

0

97

2

로그인 엔드포인트 관련 질문

0

81

2

yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우

0

143

3

"흔히 사용되는 메서드" 강의 관련 질문입니다~

0

93

2

@nestjs/serve-static

0

105

2