스프링 부트 내부 3계층 구조
스프링 부트 애플리케이션은 내부를 3계층으로 나눠 비즈니스 로직을 구성한다. 각각 프레젠테이션, 비즈니스, 퍼시스턴스 계층으로 불리지만 컨트롤러, 서비스. 리포지토리 계층으로 바꿔 사용한다.

1️⃣ 프레젠테이션(controller), 웹
외부에서 오는 요청을 라우팅하는 단계다. 외부에서 오는 HTTP 요청을 인식하고 알맞은 메소드나 컴포넌트로 연결한다.
2️⃣ 비즈니스(service)
요청을 받았을 때 비즈니스 로직대로 처리하는 컴포넌트다. 요청을 받았을 때 미리 정한 비즈니스 로직대로 요청을 처리한다.
3️⃣ 퍼시스턴스(repository)
데이터베이스를 관리하는 컴포넌트다. JPA 등을 활용해 데이터베이스를 자바 코드로 관리한다.
계층을 나누면 비즈니스 로직과 실제 코드를 분리해 개발할 수 있어 개발 효율이 올라가고 복잡성을 낮출 수 있다.
직접 계층을 구성해 파악해보기
스프링 부트에서는 어노테이션을 통해 해당 클래스가 서비스인지, 컨트롤러나 리포지토리인지 구분한다. 예시는 다음과 같다.
@TestController
@TestService
@ MemberRepository
@ Member ← Entity

- Controller가 HTTP 요청을 받으면 HTTP 메소드를 분석해 일치하는 서비스로 전달
- Service는 비즈니스 로직을 처리한다. 중간에 데이터베이스를 접속해야 하면 Repository로 전달
- Repository에서 JPARepository를 받아왔고 메소드 중 하나인 finAll를 통해 데이터베이스 쿼리 진행함.
💡전체적인 서비스 진행구도
- Postman(사용자)가 톰캣 WAS 서버에 HTTP 요청 전달
- Springboot 내 디스패처 서블릿이 URL을 분석하고 이를 처리하는 Controller를 찾음
- TestController에게 이 HTTP GET 요청을 전달
- getAllMember는 비즈니스와 퍼시스턴스 계층을 모두 통과하며 데이터를 가져옴
- 그 다음 뷰 리졸버가 템플릿 엔진을 활용해 HTML 문서를 만들거나 JSON, XML 데이터셋을 생성
'Backend' 카테고리의 다른 글
| [스프링 부트 3 백엔드 개발자 되기] 6. 블로그 기획 및 API 만들기 (1) | 2025.08.26 |
|---|---|
| [스프링 부트 3 백엔드 개발자 되기] 5-1. 데이터베이스와 ORM (0) | 2025.07.31 |