MVC패턴 왜 쓰는 걸까?
우테코를 진행하면서, mvc 패턴에 대해서 막연히, 추상적으로 알고 있었던 부분에 대해서 우아한 테코톡을 보며 mvc의 대한 발표 내용을 정리해보았다. 개인적으로 영상을 보면서 1시간 이내의 짧은 시간으로 많은 부분에 대한 확신을 얻어갔던 것 같다.
제리 발표 내용 정리
1.Model 내부에 Controller와 View에 관련된 코드가 있으면 안된다.
2.View 내부에 Model의 코드만 있을 수 있고 Controller 코드가 있으면 안된다.
3.View가 Model로부터 데이터를 받을때는 사용자마다 다르게 보어주어야 하는 데이터에 대해서만 받아야 한다.
4.Controller는 model과 View에 의존해도 된다.
5.View가 Model로부터 데이터를 받을 때, 반드시 Controller에서 받아야 한다.
해리&션 발표 내용 정리
MVC는 애플리케이션을 3가지 역할로 구분한 개발 방법론
- 각 컴포넌트의 코드 결합도 낮춤
- 코드 재사용성을 높임
- 구현자들 간의 커뮤니케이션 효율성 증대
많이 실수하는 부분
1.Model에서 View의 접근 또는 역할 수행
2.View에서 일어나는 '과한' 값 검증과 예외처리
3.VIew에서 비즈니스 로직
범블비 발표 내용 정리
유효성 검증
View - 간단한 검증
- 비어있는 값
- 타입 검사
Controller - 파라미터 존재 유무 검증
Model - 데이터 검증, 로직에 대한 검증
MVC의 대안
MVC는 컨트롤러와 뷰의 강한 결합
MVP - Presenter를 사용해 뷰의 인터페이스와 결합
MVVM - View가 ViewModel을 구독
베루스 발표 내용 정리
Model
- 데이터와 비즈니스 로직을 관리
- 뷰, 컨트롤러에 대한 의존 X
View
- 모델의 데이터를 사용해 시각적인 화면을 구성하는 역할
- MVC 정의에 따라 모델과 의존성을 가질수도, 없을수도 있음
Contorller
- 사용자의 입력을 받아 처리하는 역할
- 모델을 변경하고 뷰를 갱신
MVC의 핵심 개념을 뷰를 모델에서 분리하고 컨트롤러를 뷰에서 분리하는 두가지 분리다.
뷰를 모델에서 분리하는것이 중요한 이유
1.뷰와 모델은 기본적으로 서로 다른 관심사
2.모델의 재사용
3.테스트의 용이성
도기 발표 내용 정리
MVC 패턴의 본질
- 디자인패턴, 반복적으로 일어나는 문제들에 대한 솔루션
- 4가지 요소를 가진다.
반복적으로 일어나는 문제
- 프론트, 백엔드 구분이 없어 협업 어려움, 코드 길어짐, 유지보수 어려움
효율적인 유지보수를 위해 뷰와 도메인의 관심사를 분리하는 디자인 패턴이다.
정해진 규칙이나 구현 방법은 없다.
정답을 찾기보단 그 자체를 이해하는 것이 중요하다.
reference : https://www.youtube.com/@woowatech
나의 생각
결국은 mvc는 관심사의 분리를 통해 유지보수를 잘 하기 위한 디자인 패턴이라고 생각한다.
흔히 웹 백엔드 에서 자주 사용되지만, 몇가지 규칙만 지키면 좋은 코드를 작성할 수 있다는 점이 매력적이고,
제리의 발표 내용에서 말했던 mvc 패턴에서 지켜야 하는 원칙과
도기의 발표에서 DTO를 사용하여 Model과 View의 연관관계를 최소화 하는 방법
범블비가 말했던 mvc의 유효성 검증과 대안
모두 다 좋은 방법이라고 생각하고, 최근에 느낀 것 처럼 모든게 객체지향을 지키면서 유지보수하기 쉬운, 좋은 코드를 만들기 위해서라고 생각된다.
관심사의 분리를 통해 컴포넌트가 교체되어도 문제가 발생하지 않고(OCP)
각 계층별 역할을 나누어 역할에만 집중하게 만드는 등...
공부해야 할 부분이 많다고 계속해서 느끼는 한달인 것 같다.
'Study > 우아한 테크 코스' 카테고리의 다른 글
테스트는 왜 해야할까? 내가 생각하는 테스트코드를 작성하는 이유 (0) | 2023.11.06 |
---|---|
[우아한 테크 코스] 프리코스 - 2주차, 레이싱카 회고 (1) | 2023.11.04 |
private 메소드 테스트 꼭 해야 할까? (0) | 2023.11.02 |
[우아한 테크 코스] 프리코스 - 1주차, 숫자 야구 회고 (1) | 2023.10.27 |