-
MVC 패턴 적용하기카테고리 없음 2023. 11. 2. 07:32
해당 글은 유튜브 우아한테크 채널의 mvc강의 내용을 정리한 것입니다!
https://www.youtube.com/watch?v=ogaXW6KPc8I
MVC 패턴

mvc를 사용하는 이유 ?
유지보수가 편해지는 코드 구성 방식! 즉, 유지보수를 용이하게 하기 위함!
💡mvc패턴을 지키면서 코딩하는 방법 5가지💡
1️⃣ model은 controller와 view에 의존하지 않아야한다.
- 의존하지 않는다는 것은 model내부에 controller과 view에 관련된 코드가 있으면 안된다.
- 즉, 모델 클래스에서 controller와 view의 클래스를 import해서 사용하면 안된다.
모델은 데이터와 관련된 부분이다보니 언제든 깔끔하고 정제된 데이터를 꺼낼 쓸 수 있게 view나 controller에 코드를 섞어서 넣지 않고 데이터와 관련된 코드만 깔끔하게 모아놔야하는 것.
⬇️ 해당 코드는 모델에 해당하는 클래스로, 컨트롤러나 뷰에 관한 코드가 없다.

2️⃣ view는 model에만 의존해야하고, controller에는 의존하면 안된다.
= view내부에 model의 코드만 있을 수 있고, controller의 코드가 있으면 안된다.

해당 코드에서, printprofile 메서드에 파라미터로 student를 받는것을 볼 수 있다. (student는 model에 관련된 코드)
view내부에 model에 관련된 코드는 있어도 상관없음.
but, controller에 관련된 코드는 있으면 안됨.
3️⃣ view가 model로부터 데이터를 받을 때는, 사용자가 다르게 보여줘야하는 데이터에 대해서만 받아야 한다.
실제 어플 서비스를 바탕으로 설명을 한다면,

배달의 민족 주문 화면 이 화면에는 사용자마다 다르게 보여지는 부분(ex 주소, 번호)과, 사용자에게 일관되게 보이는 부분(ex '배달정보')이 있음.
view는 사용자한테 보이는 ui와 model로부터 받은 데이터가 합쳐져서 만들어진 화면.
일관되게 보여지는 부분들은 view가 자체적으로 가지고있어야함. (model로부터 받으면 안됨)
4️⃣ controller는 model과 view에 의존해도 된다. = controller 내부에는 model과 view의 코드가 있을 수 있다.
controller는 model과 view의 중개자 역할을 하면서 전체 로직을 구성하기 때문
5️⃣ view가 model로부터 데이터를 받을 때 반드시 컨트롤러에서 받아야 함.

model인 student클래스로부터 학생의 데이터를 만들어서 view의 printprofile메서드한테 파라미터로 전달.
view가 model로부터 데이터를 받을 때는 controller 코드 내에서만 받아야하는 것.