프로그래밍/Spring

Spring Framework

daykim 2021. 12. 11. 18:25

프레임워크란?

개발을 편하고 안정적으로 하기 위해 만든 틀

사용자가 내부에서 모든 것을 해결할 수 있도록 제공하는 틀

 

MVC (Model - View - Controller) 구성요소 및 구조

출처 : 위키백과

Controller

  • MVC의 View는 여러 개의 Controller를 가지고 있다.
  • 사용자는 컨트롤러를 사용해 모델의 상태를 바꾼다.
  • Controller는 모델의 mutator 함수를 호출해 상태를 바꾼다.
  • 이 때 모델의 상태가 바뀌면 모델은 등록된 뷰에 자신의 상태가 바뀌었다는 것을 알리고, View는 거기에 맞게 사용자에게 모델의 상태를 보여준다.

 

Model

  • 어떤 동작을 수행하는 코드

 

View

  • 모델을 여러개의 view를 가질 수 있다.
  • 보여줄 값(모델)을 Controller로 부터 받아와 사용자에게 보여준다.

 

Spring Framework

  • 자바 플랫폼을 위한 애플리케이션 프레임워크
  • 가벼우며 대규모 개발을 지원하는 프레임워크
Spring Framework
MVC
Controller  
Model DAO
DTO(VO)
Service
View  

 

Controller

  • 클라이언트에서 요청이 들어올 때, 해당 요청을 수행할 비즈니스 로직을 제어하는 객체
  • 비즈니스 로직
    : 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성, 표시, 저장, 변경하는 부분을 일컫는다.
    사용자에게 보여지지 않는 부분에서 데이터를 처리하는 코드

 

Service

  • 서비스 레이어단에서 세분화된 비즈니스 로직을 처리하는 객체
  • 서비스는 비즈니스 로직이 들어가는 부분
  • Controller가 Request를 받으면 적절한 Service에 전달하고, 전달받은 Service는 비즈니스 로직을 처리
  • DAO로 데이터베이스에 접근하고 VO로 데이터를 전달받은 후 적절한 처리를 해 반환한다.

 

DAO(Data Access Object)

  • DB를 이용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체
  • DB에 접근하는 객체
  • DB를 사용해 데이터를 조회, 조작하는 기능을 담당
  • DAO의 사용 이유는 효율적인 커넥션 관리와 보안성

 

VO (Value Object / DTO : Data Transfer Object)

  • 각 계층간 데이터 교환을 위한 자바 객체
  • 이 객체는 데이터를 각 레이어 간에 전달하는 목적을 가지고 있으며, 객체의 속성과 getter, setter만 가지고 있다.
  • 계층간 데이터를 교환하기 위한 자바 빈즈(Java Beans)다.
  • 이 객체는 DB 레코드의 데이터를 매핑하기 위한 데이터 객체
  • DTO는 DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다.

 

 

참고 자료