MVC 체계에 대해 알아보자
이번 우테코 과정을 겪으면서 가장 많이 보이는 코드 구조가 있었다. 바로 패키지 명을 Model, View, Controller의 형태로 만들고 개별 기능들을 각 패키지에 맞게 구분한 것이었다. 나는 도대체 왜 이렇게 구분하는지 의문을 갖게 되었고, 그때 마침 슬랙에서 다른 분들이 MVC를 말씀하시곤 했다. 그때 아 설마 MVC가 Model, View, Controller였어?가 되었고...... 마침 테크톡으로 MVC 패턴이 있었어서 이를 찾아보게 되었다. 그리곤 눈을 뜬 리신 모드!! damn~을 외치는 나......핳 이 패턴에 맞게 더 코드를 4주차는 해봐야겠다!! 모든 내용과 사진 이미지는 영상 링크에서 가져왔습니다.
참고한 영상: (코틀린이 아니라 자바로 설명되어있지만 설명은 너무 좋았다!)
https://www.youtube.com/watch?v=ogaXW6KPc8I&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9CTech
MVC 패턴은 기본적으로 협업과 유지보수를 더 원활하게 하기 위한 디자인 패턴으로 다음의 3가지 기준으로 코드들을 나누는 방식이다.
Model: 데이터와 관련된 부분
View: 사용자한테 보여지는 부분
Controller: Model과 View를 이어주는 부분
근데 사실 이렇게만 보면 잘 와닿지가 않는다ㅠㅠ 세부 내용을 보면 다음과 같다!!
1. Model은 Controller와 View에 의존하면 안 된다!!
의존?!?! 의존이란 Model 내부에 Controller와 View에 관련된 코드가 있으면 안 된다는 뜻!!
2-1. View는 Model에만 의존해야 하고, Controller에는 의존하면 안 된다!
2-2. View가 Model로부터 데이터를 받을 때는, 사용자마다 다르게 보여줘어야 하는 데이터에 대해서만 받아야 한다!
이 부분이 흥미로웠는데, 다르게 되는 부분만 Model에서 가져온다는 것!!
3-1. Controller는 Model과 View에 의존해도 된다.
3-2. View가 Model로부터 데이터를 받을 때, 반드시 Controller에서 받아야 한다.
실제 사용 예시)
다음엔 다른 분들 코드를 보면서 직접 이렇게 잘 적용이 되었는지 확인해보자!