성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و

MVC 디자인 패턴, 모델 속 요소들 본문

백엔드개발/Spring

MVC 디자인 패턴, 모델 속 요소들

hyemi_flora 2024. 5. 22. 17:36

MVC 디자인 패턴

  • 프로그램을 효율적으로 개발하기 위해 코드를 3가지 종류로 구분하여 개발을 진행하는 디자인 패턴이다.
  • 프로그램의 처리 로직과 화면 구현 로직을 구분하는 데 초점을 맞춘 디자인 패턴이다.
  • Model, View, Controller로 나뉜다.
  • Model: 데이터의 형태를 표현하기 위한 용도의 코드이다.
    • DAO (Data Access Object): 데이터 접근 객체로, 데이터베이스와 상호작용하여 데이터를 조회, 삽입, 업데이트, 삭제하는 역할을 한다. ( JDBC 기능을 좀 더 편리하게 사용할 수 있도록 하는 것) 
    • DTO (Data Transfer Object): 데이터 전송 객체로, 데이터 전송에만 집중하며 비즈니스 로직을 포함하지 않는다.
    • VO (Value Object): 값 객체로, 변하지 않는 데이터를 나타내는 데 사용된다. 객체의 동일성을 값 자체로 판단하며, 주로 불변(immutable) 특성을 가진다.
    • Entity: 데이터베이스 테이블과 매핑되는 클래스이다. 주로 ORM(Object-Relational Mapping) 프레임워크인 JPA를 사용할 때 사용된다.
    • Repository: 데이터 저장소를 의미하며, DAO와 유사하지만 더 고수준의 추상화를 제공한다. Spring Data JPA와 같은 프레임워크에서 자주 사용된다.
    • Service: 비즈니스 로직을 구현하는 계층이다. 서비스 클래스는 여러 DAO를 조합하여 비즈니스 로직을 처리하고, Controller에 결과를 반환한다.
    • Mapper: 데이터 전송 객체(DTO)와 엔티티(Entity) 간의 변환을 담당하는 클래스이다. 주로 MapStruct와 같은 라이브러리를 사용하여 자동으로 생성된다.
    • Utility Classes: 모델 계층에서 공통적으로 사용되는 유틸리티 클래스들이다. 예를 들어, 날짜 변환, 문자열 처리 등의 기능을 제공할 수 있다.
  • View: 사용자에게 보이는 부분을 구현하기 위한 용도의 코드이다. (JSP, HTML, CSS, JS 등)
  • Controller: 사용자에게 보여지기 전 다양한 처리를 담당하는 용도의 코드이다.
    클라이언트의 요청을 받아 적절한 서비스를 호출하고, 결과를 View에 전달한다.
    (서비스: 요청을 받았을 때 어떤 처리를 해야 하는지, DAO: DB 접근, 처리 후 어떤 뷰로 가야 할지)

 

'백엔드개발 > Spring' 카테고리의 다른 글

DTO/VO/DAO란 ?  (1) 2024.05.22
SPRING Framework  (0) 2024.03.23
메이븐 (Maven)  (1) 2024.03.14
의존성 주입  (0) 2024.03.14
스프링 프레임워크  (1) 2024.03.14