ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MVC 패턴과 Layerd Architecture
    Programming/TIL 2020. 2. 12. 18:47

    MVC 패턴이란?

     

     

    MVC는 Model View Controller의 약자이다.

     

    Model은 어플리케이션이 무엇을 할 것인지 정의하며 비즈니스 로직을 가지고 있다.

    - 처리되는 알고리즘, DB, 데이터 등

     

    Contoller는 사용자로 부터 어떤 요청을 처리할지 모델에 알려주고, 처리한 데이터를 뷰가 화면에 출력할 수 있도록 전달하는 역할을 한다.

     

    View는 화면에서 입력을 받거나 Model로 부터 요청 처리된 결과를 출력하는 역할을 한다.

     

    MVC 디자인 패턴의 장점은 Model과 View를 분리함으로써 비즈니스 로직과 UI 요소를 분리해 서로 영향없이 개발하기 수월하다는 것이다.

     

     

    Layerd Architecture란?

     

     

    Layerd Architecture는 중복으로 개발되는 요소를 별도의 Service 객체로 만들어 여러 컨트롤러에서 사용할 수 있게끔 하는 것이다.

     

    예를 들어, 쇼핑몰의 게시판(게시판 컨트롤러)에서도 회원정보를 보여주고 상품 목록(상품 목록 컨트톨러)에서도 회원 정보를 보여줘야 한다면 회원 정보를 읽어들이는 것만 별도의 객체로 만들어서 사용하는 것이다.

     

    Service 객체는 보통 업무와 관련된 메서드를 가지고 있는데, 이것들을 비즈니스 메서드라고 이야기한다.

     

    • Presentation Layer : MVC 패턴이 적용되는 부분으로 여기서의 모델은 DB 접근과 같은 처리는 Service Layer에 위임하고 처리된 결과를 받아오는 Domain Object가 모델이 된다. Controller는 적절한 모델과 View를 선택하고 전달하는 역할을 한다.
    • Service Layer : 실제 DB에서 정보를 가져와 가공하여 가능한 서비스로 만들어 반환, Repostory의 DAO 객체를 사용하며 비즈니스 로직이 동작한다.
    • Repository Layer : 직접적으로 DB와 연동되어 데이터를 가져오는 역할

     

    Layerd Architecture에서 강조하는 것은 재사용성이며 Presentation Layer는 웹 뿐만 아니라 Window Program, mobile application 등 어떤 것이든 바뀔 수 있다.

     

    Layerd Architecture에 따라 개발을 할때는 재사용 측면이나 유지보수 측면에서 봤을 때 뒤 쪽에 있는 부분(Service, Repository)은 설정파일도 분리하는 것이 좋다. 따로따로 관리해야 나중에 Presentation을 떼낼 때도 편리할 것이다.

     

     

    참고

    https://sticky32.tistory.com/entry/Design-Pattern-MVC%EC%99%80-Layer-Architecture-Style

    'Programming > TIL' 카테고리의 다른 글

    디자인 패턴과 아키텍쳐  (0) 2020.03.07
    프레임워크 vs 라이브러리  (0) 2020.02.12
    Domain Object, DAO, DTO,  (0) 2020.02.12
    [markdown] 정리  (0) 2018.10.05
    [Interface] absract 클래스와 interface  (0) 2018.10.02

    댓글

Designed by Tistory.