강의

멘토링

로드맵

Inflearn brand logo image

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

갈색곰님의 프로필 이미지
갈색곰

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

간단한 주문 조회 V2: 엔티티를 DTO로 변환

Result 클래스 관련 질문

작성

·

26

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
안녕하세요 영한님
강의 듣다가 Result 클래스를 써야한다고 언급해주셨는데요,
해당 클래스 관련 질문 답변을 봤는데 https://www.inflearn.com/community/questions/442871/result-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4?focusComment=168228
@GetMapping("/{boardId}")
public ResponseEntity<BoardResponse> getBoard(@PathVariable("boardId") Long boardId) {
return ResponseEntity.ok(boardService.getBoard(boardId));
}


이런식으로 ResponseEntity 감싸서 DTO를 반환하는것과
Result 클래스가 같은 맥락으로 응답을 추상화한다고 생각하면 될까요?

감사합니다 :)

답변 1

0

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

Result 클래스와 ResponseEntity를 사용하는 것은 모두 응답을 추상화하는 방법이지만, 각각의 목적과 상황에 따라 차이점이 있습니다.

Result 클래스와 ResponseEntity 비교

  1. Result 클래스:

    • Result 클래스는 직접 응답 데이터를 담는 DTO를 감싸기 위한 용도로 사용됩니다.
    • Result 클래스로 감싸면 응답 데이터와 함께 추가적인 데이터를 ResponseDto로 손쉽게 확장할 수 있습니다. 예를 들어, 페이징이나 상태 코드를 담을 수 있습니다.
    • 제네릭을 사용하여 다양한 타입의 데이터와 함께 사용할 수 있는 강점을 제공합니다.
  2. ResponseEntity:

    • 스프링 프레임워크에서 제공하는 ResponseEntity는 HTTP 응답 자체를 보다 세밀하게 제어할 수 있는 기능을 제공합니다.
    • 상태 코드, 헤더, 바디 등을 포함하여 HTTP 응답 전체를 손쉽게 다룰 수 있습니다.
    • ResponseEntity를 이용하면 보다 RESTful한 API 설계가 가능합니다.

유사한 질문 참고:

위의 링크에서는 Result 클래스를 활용하여 응답의 추상화를 어떻게 다룰 수 있는지에 대한 자세한 설명이 포함되어 있습니다.

Result 클래스를 사용하면 데이터의 추상화와 내용을 쉽게 바꿀 수 있는 유연성을 제공하는 반면, ResponseEntity는 HTTP 프로토콜을 세부적으로 다룰 수 있는 제어 권한을 제공합니다. 결과적으로, 실무에서는 두 방법을 필요한 상황에 맞게 적절히 사용하게 됩니다.

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

갈색곰님의 프로필 이미지
갈색곰

작성한 질문수

질문하기