[TIL] 디자인 패턴 탐구 - MVC 🔎

7과11사이·2023년 9월 14일
0

스파르타코딩클럽

목록 보기
56/90
post-thumbnail

디자인 패턴을 지키고 있는가?

쉬운 것 같으면서도 이해가 제대로 되지 않고 있다.
제목부터 MVC 패턴이라고 적었지만 자세하게 알고 있는 느낌은 아니다.
누군가에게 설명을 하라고 하면 할 수는 있지만, 아직 내가 지키고 있는지 모르기 때문이랄까?

그럼에도 불구하고 지난 특강 및 디자인 패턴에 대해 찾아보면서 알게 된 부분들을 정리하고자 한다.


Design Pattern 🎨

해외 영상에서 본 내용 중에 이해하기 쉬웠던 내용이 있었다.
디자인 패턴이란, 소프트웨어 디자인을 하며 반복 발생하는 (common) 문제들을 해소하는 해결책이라는 점.

유목민이었던 인류를 생각하면 그동안 움막에서 지내고 있던 사람들이 터를 잡아 가축을 기르고 집을 짓고 지내는 게 더욱 편하다고 느꼈을 것이다. 그 이유는 삶을 이어갈 수 있는 식량이 보존되고 무엇보다 안전하기 때문이다!
단순히 주거 공간만 보아도 움막 < 집 이기에 집을 짓기 위한 시도들이 여럿 있었을 것이다.

이 중, 세월이 지나며 '가장 안전하다'는 기준의 집이 만들어졌을 것이며
이들은 건물을 만드는데 가장 효과적인 방법 / 청사진이 되어 다른 유목민들이나 도시인들도 따라 지었을 것이다.


다른 사람들도 따라할 수 있는 청사진을 만드는 것. 이게 디자인 패턴을 따르는 이유다!

어떻게 하면 코드를 쉽게 이해할 수 있고 잘 작성할 수 있을지에 대한 일종의 '가독성이 높은 좋은 코드' 방법이라고 이해하면 되겠다.


MVC 패턴

가장 기초가 되는 MVC 패턴은 이름에서 유추할 수 있듯 3가지로 구분이 가능했다!

1. Model

  • 모델은 데이터를 담는 일종의 바구니
  • 여기서 말하는 데이터는 무언가를 구성하는데 필요한 요소들을 의미했다.
    시계를 구성한다고 하면 버튼의 갯수, 다이얼의 모습 등이 고려되어야 한다.

    ➡ 중요한 것은 무엇이 만들어져야 하는지 보여주고
    청사진을 통해 다른 개발자들도 활용할 수 있도록 만들어져야 한다는 점이 있다.

2. View

  • View는 우리가 화면에서 보는 모든 것을 의미
  • Model을 통해 시계를 만들었는데 초침이 안 움직인다면, 그건 시계가 아닌 것처럼 View에서 모델 데이터로 만든 구성품이 우리 눈에 보여야한다는 점이 있다.

3. Controller

  • Controller는 View와 Model 사이에서 데이터를 받아 View를 업데이트 하며 반대로 View에서의 소비자 반응을 Model의 데이터로 업데이트하기도 한다.
  • View를 움직이기 위해 작동을 한다.
  • 지속적으로 Model과 View를 비교하여 데이터를 최신화하고 View에 출력 시킨다!

여러모로 MVC 패턴의 장점과 단점이 보이는 구성이다.
이전 어플을 짜볼 때도 VC에 모든 함수와 로직이 몰리면서 정말 길어지는 경우를 봤다.
하지만 MVC 패턴을 따르면 좋아보이는 부분은 일명 스파게티 코드가 되지 않도록 View와 Model을 구분한다는 점. VC에서 코드를 찾기 위해 왔다갔다 하지 않아도 된다는 점이 큰 장점으로 느껴진다.

더불어 빠르게 구축할 수 있다는 점은 또 다른 장점으로 와닿는다.
특강에서도 디자인 패턴 중 무조건 한 쪽이 좋다고 할 수 없다고 배웠다.
상황에 따라, 내가 짜는 코드가 어떤 용도인지에 따라 적합한 또는 좋은 디자인 패턴이 존재한다는 점은 결국 모든 디자인 패턴을 배워야겠다는 생각이 든다.

참고

1개의 댓글

comment-user-thumbnail
2023년 9월 14일

좋은 글 감사합니다~ 작성자의 이해 과정에 따라서 진행되는 전개라서 더욱 이해가 잘됩니다!

답글 달기