🍏 개발일기

REST API 요청 흐름

보배 진 2026. 3. 24. 10:00

REST API 요청 흐름

요약 : 클라이언트가 서버에 요청을 보내고, 서버가 처리한 뒤 응답을 돌려주는 과정

 

예를 들어 사용자가 게시글 목록을 조회한다고 하면 이런 식입니다

 

1) 클라이언트가 요청 보냄

브라우저나 앱에서 서버로 요청을 보냅니다

ex) GET /posts

이때 함께 들어갈 수 있는 것들 :

▪ URL

▪ HTTP 메서드 (GET, POST, PUT, DELETE 등)

▪ 헤더 (Content-Type, Authorization 등)

▪ 바디 (JSON 데이터 등)

 

2) 서버의 Controller가 요청을 받음

스프링에서는 보통 @RestController가 요청을 먼저 받습니다

Controller 역할

▪ 어떤 URL 요청인지 확인

▪ 필요한 값 받기

▪ Service에 처리 맡기기

@GetMapping("/posts")
public List<PostDTO> getPosts() {
    return postService.getPosts();
}

 

3) Service가 비즈니스 로직 처리

Service는 실제 핵심 로직을 담당합니다.

ex) 게시글 목록 조회, 회원가입 조건 검사, 비밀번호 일치 여부 확인, 결제 가능 여부 판단

public List<PostDTO> getPosts() {
    return postDAO.findAll();
}

 

4) DAO / Repository가 DB와 통신

Service가 DB 작업이 필요하면 DAO나 Repository에 요청합니다

ex) SELECT, INSERT, UPDATE, DELETE

public List<PostDTO> findAll() {
    // DB 조회
}

 

5) DB가 결과 반환

DB가 조회 결과나 처리 결과를 서버 쪽으로 돌려줍니다

ex) 게시글 10개 조회 결과, 회원 저장 완료, 수정 성공/실패

 

6) 서버가 응답(Response) 생성

서버는 받은 결과를 JSON 형태와 상태코드로 정리해서

클라이언트엑게 보냅니다

ex)

[
  {
    "id": 1,
    "title": "첫 번째 글"
  },
  {
    "id": 2,
    "title": "두 번째 글"
  }
]

상태코드도 함께 보냅니다

  • 200: 성공
  • 201: 생성 성공
  • 400: 잘못된 요청
  • 401: 인증 필요
  • 403: 권한 없음
  • 404: 없음
  • 500: 서버 오류

 

7) 클라이언트가 응답을 받아 화면에 반영

브라우저나 앱은 받은 JSON 데이터를 이용해서 화면을 보여줍니다

ex) 게시글 목록 출력, "등록 완료" 메시지 표시, 오류 메시지 출력