자바와 스프링 부트로 생애 최초 서버 만들기

#11 도서관 유저 조회 API 개발과 테스트 24.12.18

박태정 입니다. 2025. 2. 12. 16:24
반응형

유저 조회 API 개발과 테스트 🚀

안녕하세요! 오늘은 간단하지만 중요한 유저 조회 API를 개발하고, 그 테스트 방법까지 다뤄보려 합니다. 이번 포스팅에서는 API의 스펙부터 구현, 테스트까지 단계별로 살펴볼 예정이니 끝까지 함께해 주세요! 😊


1. 유저 조회 API 스펙 📋

먼저, 유저 조회 API의 주요 스펙을 정리해 보겠습니다.

  • HTTP Method: GET
  • HTTP Path: /user
  • Query Parameters: 없음
  • 결과 반환 형태:
    • JSON 형식으로 유저 리스트를 반환.
    • 각 유저는 id, name, age 정보를 포함.

Tip: Spring Boot의 Controller에서 getter가 있는 객체를 반환하면 JSON 형태로 자동 변환됩니다.


2. id는 무엇인가요? 🔍

API에서 반환되는 유저 데이터는 유저별 고유한 번호(id)를 포함합니다.
id는 리스트에 담긴 유저의 순서를 기반으로 생성됩니다.

  • 예를 들어, 3명의 유저가 있다면 다음과 같은 구조로 반환됩니다:
    [
      {"id": 1, "name": "Alice", "age": 25},
      {"id": 2, "name": "Bob", "age": 30},
      {"id": 3, "name": "Charlie", "age": 22}
    ]

3. 유저 조회 API 구현하기 💻

아래는 간단한 유저 조회 API의 구현 예제입니다.

Controller

@GetMapping을 사용하여 /user 엔드포인트를 생성합니다.

@GetMapping("/user")
public List<UserResponse> getUsers() {
    List<UserResponse> responses = new ArrayList<>();

    for (int i = 0; i < users.size(); i++) {
        responses.add(new UserResponse(i + 1, users.get(i).getName(), users.get(i).getAge()));
    }

    return responses;
}

DTO (Data Transfer Object)

유저 정보를 전달하기 위한 DTO 클래스를 정의합니다.
UserResponse 클래스는 다음과 같습니다:

package org.zerock.libraryapp.dto.user.response;

public class UserResponse {
    private long id;
    private String name;
    private Integer age;

    // Constructor
    public UserResponse(long id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // Getters
    public long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Integer getAge() {
        return age;
    }
}

Tip: DTO를 사용하면 데이터의 전달 구조를 명확히 정의할 수 있어 유지보수에 유리합니다.


4. API 테스트하기 🧪

API를 테스트하는 방법은 다양하지만, 가장 기본적인 방법은 Postman이나 CURL을 사용하는 것입니다.

Postman 사용 방법

  1. Request 설정:
    • Method: GET
    • URL: http://<your-server>/user
  2. Send 버튼 클릭:
    • 서버가 제대로 동작한다면 JSON 응답이 반환됩니다.

CURL 명령어

터미널에서 아래 명령어를 실행하여 테스트할 수도 있습니다.

curl -X GET http://<your-server>/user

테스트 시 확인할 점

  • 반환되는 JSON의 id, name, age가 올바른지 확인.
  • 유저 리스트의 순서와 id가 일치하는지 검증.

마무리: 유저 조회 API의 핵심 요약 ✅

오늘은 간단한 유저 조회 API를 구현하고 테스트하는 방법을 살펴보았습니다.
다시 한번 핵심 내용을 요약해 볼까요?

  • GET /user API는 유저 리스트를 JSON 형식으로 반환합니다.
  • 유저별 고유 id는 리스트 순서를 기반으로 생성됩니다.
  • DTO를 활용해 명확한 데이터 구조를 설계합니다.
  • Postman이나 CURL로 API를 간단히 테스트할 수 있습니다.
반응형