스프링의 레이어드 아키텍처 (Layered Architecture)

GaramFlow·2023년 10월 31일
0

스프링의 레이어드 아키텍처

  • 어플리케이션의 구조를 명확하게 하고 유지보수, 확장성, 보안성을 향상시키기 위해 구성을 나눈다.

(1) Client 계층

  • 역할
    • UI를 제공하고 사용자 요청을 서버에 전달한다.
    • 웹 브라우저나 모바일 앱이 클라이언트 역할을 한다.
  • 목적
    • 사용자에게 편리한 방식으로 애플리케이션과 상호작용할 수 있는 환경을 제공한다.

(2) Controller

  • 역할
    • 프레젠테이션 계층 담당한다.
    • 클라이언트로부터 요청을 받고 적절한 서비스 메소드 호출해서 처리한 후 결과를 클라이언트에게 반환한다.
  • 목적
    • 클라이언트와 서버 사이 상호작용을 관리한다.
    • 요청을 적절한 서비스 로직으로 라우팅한다.

(3) Service

  • 역할
    • 비지니스 로직 계층을 담당한다.
    • 애플리케이션의 핵심 기능과 비지니스 규칙을 구현하고 데이터 액세스 계층과 상호작용한다.
  • 목적
    • 데이터 처리, 계산, 조건 판단 등 애플리케이션의 핵심 로직을 담당한다.
    • 재사용성과 유지보수성을 향상시킨다.

(4) Repository

  • 역할
    • 데이터 액세스 계층을 담당한다.
    • 데이터베이스와의 상호작용을 관리하고 데이터 조회, 저장, 수정, 삭제 등을 수행한다.
  • 목적
    • 데이터 관련 작업을 추상화 및 표준화한다.
    • 데이터와 비지니스 로직의 분리한다.

(5) Database

  • 역할
    • 데이터를 저장하고 관리하는 시스템이다.
    • 애플리케이션의 데이터가 저장되고 필요한 데이터를 조회 및 변경한다.
  • 목적
    • 데이터를 영구적으로 저장한다.
    • 무결성과 보안을 보장한다.
profile
간단한 지식 저장 및 공유를 위한 블로그입니다.

0개의 댓글