MVC 패턴의 핵심

개발새발log·2022년 11월 28일
0

🎀 지금껏 무지성으로 MVC,, 3-tier 아키텍처,, 웅 그래 개념 뭔지 RG 하면서 넘겼던 과거의 나에 대한 반성을 담아서 🎀

MVC 패턴을 활용하는 목적은?

🌟 관심사의 분리 🌟

  • Model은 비즈니스 로직에만 집중할 수 있도록 한다
  • View는 사용자에게 결과를 보여주거나 입력을 받을 수 있도록 한다 (=UI 로직)
  • Controller는 Model과 View를 연결하는 책임을 가진다

정리하자면,

  • Controller <-> Model
  • Controller <-> View
  • Model과 View는 직접적으로 업데이트 하지 않음 (서로 모르는 사이)

어떤 관심이 다른거지?

여기서 핵심은 사용자에게 보여지는 데이터와, 실제 도메인 영역의 데이터가 다르다는 것이다

  • 관심 1: 사용자에게 보여주기 (특정 데이터만)
  • 관심 2: 실제 도메인을 다루는 비즈니스 로직 (도메인과 연관된 모든 데이터 존재)

크게 두가지를 분리하기 위해 MVC 패턴을 활용하는 것 (애초에 MVC 패턴이 나온 계기가 UI 로직과 비즈니스 로직의 혼재 👉 유지보수💩에서 비롯된 듯 하다 -> JSP의 단점과 연결)

이렇게 하면 Model과 View 간 의존성이 줄어, 독립적으로 개발이 가능하다는 장점이 있다.

갑분) DTO(=Data Trasfer Object)가 나온 맥락

갑자기 왜 이 주제로 튀냐면.. 애초에 MVC와 3-tier 아키텍처를 알아본 계기가 DTO 관련 아티클을 읽으면서인데,, 무지성으로 사용하던 DTO에 대한 이해가 이제야 n단계 높아진 듯 합니다🫠

  • view와 도메인 간의 결합도를 느슨하게 하기 위해
  • 3-tier 아키텍처 상에서, presentation layer와 service layer 간의 데이터 전달

알고나니 지금까지 미션에서 이 부분에 대한 고려가 없었다는 걸 깨달았다. 뚱땅뚱땅 리팩토링 해봐야겠다 🔨


참고: https://tecoble.techcourse.co.kr/post/2021-04-25-dto-layer-scope/

profile
⚠️ 주인장의 머릿속을 닮아 두서 없음 주의 ⚠️

0개의 댓글