[스프링 부트 3 백엔드 개발자 되기] 4. 스프링 부트의 구조

2025. 8. 18. 17:08·Backend

스프링 부트 내부 3계층 구조 

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

 

스프링 부트 3계층

 

 

1️⃣ 프레젠테이션(controller), 웹

외부에서 오는 요청을 라우팅하는 단계다. 외부에서 오는 HTTP 요청을 인식하고 알맞은 메소드나 컴포넌트로 연결한다.

 

 

2️⃣ 비즈니스(service)

요청을 받았을 때 비즈니스 로직대로 처리하는 컴포넌트다. 요청을 받았을 때 미리 정한 비즈니스 로직대로 요청을 처리한다.

 

 

3️⃣ 퍼시스턴스(repository)

데이터베이스를 관리하는 컴포넌트다. JPA 등을 활용해 데이터베이스를 자바 코드로 관리한다.

 

계층을 나누면 비즈니스 로직과 실제 코드를 분리해 개발할 수 있어 개발 효율이 올라가고 복잡성을 낮출 수 있다.

 

 

직접 계층을 구성해 파악해보기

스프링 부트에서는 어노테이션을 통해 해당 클래스가 서비스인지, 컨트롤러나 리포지토리인지 구분한다. 예시는 다음과 같다.

 

@TestController

@TestService

@ MemberRepository 

@ Member ← Entity

 

 

  • Controller가 HTTP 요청을 받으면 HTTP 메소드를 분석해 일치하는 서비스로 전달
  • Service는 비즈니스 로직을 처리한다. 중간에 데이터베이스를 접속해야 하면 Repository로 전달
  • Repository에서 JPARepository를 받아왔고 메소드 중 하나인 finAll를 통해 데이터베이스 쿼리 진행함.

 

 

💡전체적인 서비스 진행구도

  1. Postman(사용자)가 톰캣 WAS 서버에 HTTP 요청 전달
  2. Springboot 내 디스패처 서블릿이 URL을 분석하고 이를 처리하는 Controller를 찾음
  3. TestController에게 이 HTTP GET 요청을 전달
  4. getAllMember는 비즈니스와 퍼시스턴스 계층을 모두 통과하며 데이터를 가져옴
  5. 그 다음 뷰 리졸버가 템플릿 엔진을 활용해 HTML 문서를 만들거나 JSON, XML 데이터셋을 생성

'Backend' 카테고리의 다른 글

[스프링 부트 3 백엔드 개발자 되기] 6. 블로그 기획 및 API 만들기  (1) 2025.08.26
[스프링 부트 3 백엔드 개발자 되기] 5-1. 데이터베이스와 ORM  (0) 2025.07.31
'Backend' 카테고리의 다른 글
  • [스프링 부트 3 백엔드 개발자 되기] 6. 블로그 기획 및 API 만들기
  • [스프링 부트 3 백엔드 개발자 되기] 5-1. 데이터베이스와 ORM
BestTomaTo
BestTomaTo
  • BestTomaTo
    기록보관소
    BestTomaTo
  • 전체
    오늘
    어제
    • 분류 전체보기 (36) N
      • Algorithm (8)
      • Computer Science (3)
      • Backend (3)
      • DevOps (4)
        • Kubernetes (3)
        • Docker (0)
      • Data Engineering (8)
      • Cloud (2)
      • AI (1)
      • Security (3) N
        • SK Shieldus Rookies (3) N
      • Reference (2)
      • Project (1)
      • Experience (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    airlfow
    sql 개발자
    AWS
    해커톤 후기
    SQLD
    langsmith
    동기 프로그래밍
    홈 서버
    3단계 모델링
    langchain memory
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
BestTomaTo
[스프링 부트 3 백엔드 개발자 되기] 4. 스프링 부트의 구조
상단으로

티스토리툴바