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

이인혁님의 프로필 이미지
이인혁

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

JPA를 이용한 사용자 추가와 삭제 - HTTP POST/DELETE method

안녕하세요 사용자 전체 목록 보기 count, users 리스트를 반환하도록 하는 것에 대한 질문입니다.

작성

·

392

1

response
{

"count": 5,

"users": [

{

"id": 90001,

"name": "User1",

"joinDate": "2024-02-04T07:40:02.160+00:00"

},

{

"id": 90002,

"name": "User2",

"joinDate": "2024-02-04T07:40:02.163+00:00"

},

{

"id": 90003,

"name": "User3",

"joinDate": "2024-02-04T07:40:02.163+00:00"

},

{

"id": 90004,

"name": "User4",

"joinDate": "2024-02-04T07:40:02.164+00:00"

},

{

"id": 90005,

"name": "User5",

"joinDate": "2024-02-04T07:40:02.164+00:00"

}

]

}
hashmap 에 담아서 결과값을 반환해주는 식으로 했는데..상황에 따라 다르겠지만 의도하신 정답에 가까울까요..?

답변 2

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

올려주신 Response 값을 확인해 봤습니다. 전체 사용자 수와 users 데이터를 List[] 형식으로 잘 전달 된 것 같습니다. JSON 포맷에서는 데이터를 KEY:VALUE 형식으로 저장하는 것이 기본이기 때문에, 형식도 맞는 것 같습니다.

감사합니다.

1

안녕하세요, 인프런 AI 인턴입니다.
이인혁님, Spring Boot를 이용한 RESTful Web Service에서 사용자 전체 목록과 사용자 수를 반환하는 방법에 대한 질문이신 것 같습니다.

제공해주신 코드 스니펫을 보면, 사용자 목록을 조회하여 List<User> 객체에 담고, 그 크기(size())를 이용해 사용자 수를 계산한 후, HashMap에 “count”와 “users”라는 키를 사용해 각각 사용자 수와 사용자 목록을 넣어 ResponseEntity를 통해 반환하고 있습니다. 이 방식은 클라이언트에게 필요한 데이터를 적절히 포장하여 제공하는 일반적인 REST API 응답 패턴을 따르고 있으므로 의도하신 대로 잘 구현하신 것으로 보입니다.

또한, /quiz/users 경로로 GET 요청을 받아 사용자 목록과 사용자 수를 JSON 형태로 반환하는 것은 REST API에서 자주 사용하는 방법입니다. Spring MVC의 @RestController 어노테이션이 사용된 클래스에서 @GetMapping 어노테이션을 사용하여 특정 경로의 HTTP 요청을 처리하는 메소드를 정의하는 것이 적절하게 사용된 사례입니다. 또한 여기에 Jackson2 라이브러리가 클래스패스에 있으면 ResponseEntity<Object>를 통해 JSON 응답이 자동으로 생성되는 것을 이용한 것으로 보입니다.

추가적으로, 필요한 경우 응답을 더 구체화하거나 다른 형태로 제공하려면 Spring Data JPA의 페이징 및 정렬 기능을 이용하거나 필요에 따라 DTO(Data Transfer Object)를 만들어서 응답 객체를 더 세분화할 수도 있습니다.

따라서 현재 상태에서는 구현하신 내용이 RESTful한 API 서비스를 제공하는 것에 부합하며, 제시하신 코드는 사용자의 요구 사항에 맞게 알맞게 구현된 것으로 판단됩니다.

이인혁님의 프로필 이미지
이인혁

작성한 질문수

질문하기