아래의 링크는 내가 참고한 글이다
좋은 글이니 추천한다

https://m.blog.naver.com/jhc9639/220967034588

같은 글이라도 사람마다 이해가 다를 수 있으니
아래의 글은 내가 공부하고 혼자 해석한 내용이다 ( 정답이 아닐 수 있다 )

디자인 패턴

건축과에서 건축의 여러 기법을 틀로 만들어서 한 명칭을 만들어 놓은 것을 '디자인 패턴'이라한다. 소프트웨어 공학자들이 이런 디자인 패턴을 소프트웨어 설계에도 가져와 적용시켰는데...

다른 글을 참고하면서도 그렇고 내가 정리해서 쓰는 것도 그렇고 말이 복잡해진다
아마 이에 대한 지식이 없는 사람은 이해가 가지 않을 것이라 본다

( 내가 이해한대로 ) 쉽게 말하자면

건축이든 소프트웨어든 간에 상관없이 많은 사람들이 설계를 하면서 문제가 생기고 그것을 해결하다보니 비슷한 형태가 생겼는데, 이것을 굳이 길게 설명할 필요없게 이름을 붙여 '디자인 패턴'(Design Pattern)이라고 정의한것이다

이로 인해 앞서 다른 사람들이 한 패턴으로 해결한 문제를 이 패턴만 알게되면 쉽게 해결이 가능해졌고, 다른 개발자에게 설명할 때 자세히 설명하지 않고 "이런 패턴입니다" 라고 하면 되니 소통이 간편해졌다

Singletone 패턴, MVC 패턴 등 이 이에 해당된다

MVC 패턴

mvc 패턴이란?

아래의 세가지(Model, View, Controller)로 나누어 설계하는 것을 말한다

M (Model) : 우리가 데이터베이스에 담고 꺼내 쓸 데이터
V (View) : 유저에게 데이터를 보여주는 형태, 모습
C (Controller) : Model에 있는 데이터를 View 에 나타나게 처리하는 메소드

mvc.png

유저 -(요청)-> 컨트롤러 -(응답을 위한 처리)-> 모델 -(데이터 반환)-> -(처리가 완료된 결과창 show)-> 유저

Why use

한마디로 분리를 잘해서 깔끔하게 코딩 하기 위해서이다.
유지보수가 쉬워지고, 확장이 용이해지고, 중복을 최소화 할 수 있는게 장점이다