MVC 패턴

김회민·2022년 5월 23일
0

디자인패턴

  • 소프트웨어 개발 방법을 공식화한 것
  • 구현자들 간의 커뮤니케이션의 효율성을 높이는 기법
  • MVC도 디자인 패턴 중 하나이다.

MVC

Model - View - Controller 의 약자
하나의 해플리케이션을 세가지의 역할로 구분한 개발 방법론
View <=> Controller <=> Model

Model

  • 데이터 담당 / 데이터 처리
  • View와 Controller에 대해서 어떤 정보도 알면 안된다.
  • 데이터를 다루는 로직을 모아서 분리해둔 곳.
  • ORM이나 ODM을 사용시 Model에 해당한다.

View

  • 사용자에게 보여주는 화면
  • UI와 관련된 코드가 들어간다.

Controller

  • Model과 View의 중간다리 역할
  • API Server에서는 Client에게 데이터를 받아(Request) 처리하고
    다시 Client에게 Json같은 데이터 형태로 데이터를 보내는(Response) 역할이다.
  • 요청에 맞는 데이터를 Model에 의뢰
    데이터를 View에 반영해서 사용자에게 알려주는 역할

MVC 패턴 장점

  • 하나의 역할만 담당 및 처리하므로 효율적이게 됨
  • 유지보수성, 확장성, 유연성이 증가한다.

Service Layer

Model <=> Controller <=> Service <=> Model

Controller

  • View와 Service의 중간다리 역할
  • 처리해야할 데이터를 브라우저에게서 받음 (Request)
  • 담당한 Service를 호출해서 데이터를 넘겨줌
  • 처리된 데이터를 받아 뷰로 연결 (Response)

Service

  • 데이터를 받아 비즈니스 로직을 처리
  • Service에는 Reqeust와 Response를 받아선 안됨
  • DB의 활용이 필요한 경우, 해당 처리를 하는 DAO를 호출
  • Service는 어떤 Controller가 호출하든 상관이 없다.
  • 필요한 매개변수만 주면 자신의 비즈니스 로직을 처리
  • 모듈화를 통해 어디서든 재사용이 가능한 파일

DAO

Data Access Object
DB의 Data에 접근을 위한 객체

profile
백엔드 개발자 지망생

0개의 댓글