ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MVC] Model은 어디로 갔을까?
    프로그래밍/Spring 2023. 11. 22. 19:01

     

    스프링 기초강의를 보면 항상 나오는 것이 Model 이다.

     

    하지만 여기서 본 이후로 지금까지 단 한번도 본 적도 없으며, 사용해 본적도 없는데

     

    스프링에서 가장 중요하다고 할 수 있는 MVC 패턴  그 중 하나임에도 왜 쓰이지 않는 것일까?

     


     

    MVC란?

     

    MVC

    C 요청받음  ->  Model 에서 비즈니스로직을 사용하여 데이터 저장  ->  V 로 전달

     

    현재 많이 쓰이는 3계층 아키텍처는 

    C 요청받음 -> service에서 비즈니스로직을 굴리고 repository를 통해 DB 활용  -> http 응답으로 전달

    으로 변하였다.

    View는 프론트엔드로 넘어가고 프론트엔드에게 데이터전달을 위해 Http를 사용하여 데이터를 보내주는 것이다.

     


     

    Model이 안보이는 이유

    최근에는 MVC 패턴이 더 구체화되고 발전하였기 때문에

    Model을 찾기 힘들지만 왜 그런지 더 자세한 이유가 궁금해졌다

     

     

    첫번째. 3계층 아키텍처의 도입

    3계층 아키텍처가 도입되면서  MVC에서 V를 나타내는 View는 FE로 넘어가서 더욱 전문적으로 다뤄지게 되었고,

    C(Controller) , M(Model)  둘 뿐인 계층을

    Controller,  Service,  Repository 로  다시 세분화하여 적용하였다.

     

    비즈니스 로직, 데이터 액세스, 프레젠테이션 로직을 분리하여 

    각 계층을 전담하여 역할을 수행하는 아키텍처로 변모한 것이다.

     

    그래서 3계층 아키텍처에서 "모델"은 주로 비즈니스로직과 도메인 객체를 가리키는데 사용된다.

     

     

    두번째.  도메인 주도 설계 (Domain-Driven Design, DDD)

    도메인주도설계는 비즈니스 도메인을 중심으로 설계하는 것으로,  도메인 모델이 중요한역할을 한다.

    도메인 모델은 비즈니스로직과 도메인 객체를 나타내는데 사용되며,  MVC에서 모델과 유사한 개념이다.

     

     

    세번째. API 기반 아키텍쳐 

    최근엔 API를 활용하는 것이 일반적이다.

    서비스계층에서 비즈니스 로직을 전담하고, API를 활용하여 클라이언트와 소통하는데

    모델은 이 서비스 계층에서 사용되고 있다.

     


     

    결론

     

    위의 세가지 이유를 총망라 해보면

    Model은 

    지칭하는 이름이 바뀌었거나,  모델 기존의 역할이 일부 변경되는 등

    약간의 변화를 겪었을 뿐 

    여전히 사용되고 있음을 알 수 있다.

     

Designed by Tistory.