<aside> 📖

학습 목표

1. 요청(Request) 설계

1-1. 데이터 구조화 (DTO 설계)

요청 데이터는 명확한 목적과 구조를 가져야 하며, 데이터 전송 객체(DTO)를 통해 서버와 클라이언트 간 명확하게 계약되어야 합니다.

public class CreateUserRequest {
    @NotBlank
    private String name;

    @Email
    private String email;

    private String nickname; // optional
}


1-2. 필터링과 정렬 패턴

GET 요청에서는 다음과 같은 형식으로 파라미터를 구성하는 것이 일반적입니다.

GET /api/users?age=20&city=seoul&sort=name,desc&page=0&size=10
파라미터 설명
age=20 특정 나이 필터
city=seoul 지역 필터
sort=name,desc 정렬 기준 (속성, 방향)
page=0&size=10 페이지네이션 (아래 참고)

💡 검색 조건이 복잡할 경우 @ModelAttribute 또는 @RequestParam Map<String, String> 방식으로 받아 처리할 수 있습니다.


2. 응답(Response) 설계

2-1. 일관된 응답 구조

모든 API 응답은 다음과 같이 공통된 틀을 유지해야 클라이언트에서 일관된 파싱이 가능합니다.