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) 게시글 목록 출력, "등록 완료" 메시지 표시, 오류 메시지 출력
'🍏 개발일기' 카테고리의 다른 글
| 동기와 비동기 (0) | 2026.03.27 |
|---|---|
| HTTP 메서드에 대해서 : GET, POST, PUT, PATCH, DELETE (0) | 2026.03.26 |
| 미세먼지 수준에 따라 강남역 2호선 이용객 수 평균이 어떻게 달라지는지 (0) | 2026.03.20 |
| OAuth (0) | 2026.03.19 |
| CSV 파일 데이터를 읽어서 시각화 해보기 (0) | 2026.03.18 |