이번 우테코 과정을 겪으면서 가장 많이 보이는 코드 구조가 있었다. 바로 패키지 명을 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에서 받아야 한다.
실제 사용 예시)
다음엔 다른 분들 코드를 보면서 직접 이렇게 잘 적용이 되었는지 확인해보자!
'각종 프로그램 참여 > 우아한 테크코스, 우테코 이야기' 카테고리의 다른 글
[3 주차 코드 회고] 천외천, 산 넘어 산 (0) | 2022.11.18 |
---|---|
[AOS] ApplicationTest의 예외_테스트 분해하기 (0) | 2022.11.17 |
코틀린 컨벤션 정리, 한글 번역 (0) | 2022.11.16 |
[3 주차 학습 회고] 완벽주의에 대해서, 멘탈을 잡자 (0) | 2022.11.16 |
[3 주차 중간 회고] 이제 진짜 현업 코딩하는 느낌......?!?! (2) | 2022.11.14 |