Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

seaking110 님의 블로그

Spring 3 Layered 본문

Today I Learned

Spring 3 Layered

seaking110 2025. 1. 22. 13:12

Spring Framework란

  • Spring 이란
    • 자바 기반의 애플리케이션 프레임 워크
  • Spring의 특징
    • 경량 프레임워크라 필요한 모듈만 선택적으로 사용
    • IoC 컨테이너와 DI를 통해 객체의 생성 및 의존성을 관리 <- spring을 쓰는 가장 큰 이유!!!
    • Spring Webflux <- 비동기식, Spring Security <- 보안 관련 등 다양한 기술 스택 지원
    • JUnit 이나 Mockoto 같은 다양한 테스트 환경을 지원
  • Spring의 장점
    • 복잡성 관리 : 대규모 애플리케이션의 복잡성을 계층화로 줄임
      • 대규모 애플리케이션에서 Controller, Service, Repository 계층으로 구분
      • 따라서 유지 보수가 쉬워졌다.
    • 유저보수성 : 코드 재사용성과 모듈화를 통해 유지보수 비용 절감
    • 생산성 증가 : 개발 시간을 단축시키는 다양한 도구 및 기능 제공
      • Spring Boot를 사용하여 애플리케이션을 신속하게 초기화하고 기본 설정을 자동 적용
      • REST API를 빠르게 구축하고 데이터베이스 연동을 간단히 처리
  • Spring의 역할
    • 비즈니스 로직과 기술적 인프라 간의 간극 해소
    • 개발자 경험을 향상시키는 도구 제공
    • 다양한 애플리케이션 개발 요구 사항 충족

 

3 Layered Architecture

  • 애플리케이션을 계층화하여 모듈화
  • 유지보수성과 확장성 향상

3 Layer 구성 요소

  • Presentation layer : 사용자와의 상호작용 (Controller)
  • Business Logic Layer : 애플리케이션의 핵심 로직 처리 (Service)
  • Date Access Layer : 데이터 베이스와 상호작용 (Repository, Entity)
  • DTO (date Transfer Object) : 프로세스 사이에서 데이터를 전송하는 객체
    • Json 형태로 데이터 전달
  • 이점
    • 각 계층 간의 책임 분리
    • 테스트와 디버깅 용이성 증가

 

MVC와 3Layered Architecture 차이

기준
MVC
3 Layered Architecture
초점
MVC는 클라이언트와 서버간의 구조 관점에서 접근한 개념
Spring 3 Layer 는 서버 개발 관점에서 각 계층 별로 역할을 분리하는 개념
구성 요소
Model, View, Controller
Presentation, Business Logic, Data Access
적용 범위
웹 애플리케이션의 UI 계층
전체 애플리케이션 구조
Controller 역할
요청을 처리하고 Model과 View를 연결
Presentation Layer의 일부로 작동
데이터와 비즈니스 로직
Model이 데이터와 로직 모두 담당

Business Logic Layer가 비즈니스 로직 전담

 

 

SpringMVC

  • 사용자 요청 처리와 응답 생성에 주요 목적을 가짐
    • Spring MVC의 주요 목적은 클라이언트(사용자)와 서버 간의 상호작용을 관리하는 것입니다. 이를 통해 웹 애플리케이션이 사용자의 요청을 받아 처리하고, 그 결과를 사용자에게 적절한 형식으로 반환하는 과정을 쉽게 구현할 수 있습니다

Spring 3 Layer

  • 애플리케이션의 구조화 및 계층화에 주요 목적을 가짐
    • Spring 3 Layer 는 애플리케이션을 세 개의 주요 계층으로 나누어 각 계층이 독립적으로 동작할 수 있도록 구조화하는 데 초점을 맞추고 있습니다. 이를 통해 애플리케이션의 유지보수성과 확장성을 향상시킬 수 있습니다.
  • 개발을 하며 항상 Cost를 신경써야함
  • 인프라에서 가장 비싼건 DB -> 서버보다 수십배차이
  • 따라서 db에서 쿼리로 처리하는 것 보단 받아와서 Service 쪽에서 비즈니스 로직을 실행하자

'Today I Learned' 카테고리의 다른 글

Spring Annotation과 Request Mapping  (1) 2025.01.24
이론  (1) 2025.01.23
Spring 입문!  (0) 2025.01.22
백엔드 개발자 필수 지식  (0) 2025.01.20
키오스크 과제 트러블 슈팅  (0) 2025.01.20