디자인 패턴이란?
디자인 패턴이란 개발을 하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 특정한 규약을 쉽게 접근할 수 있는 형태로 만든 것을 말한다.
MVC란?
MVC란 Model, View, Controller의 약자이다.
Model은 데이터에 관련된 것이다. 게시판을 예로 들자면, 게시판에 있는 모든 글들은 데이터베이스에 데이터로 저장되게 된다. 이때 데이터의 형식을 지정하고 저장하고 불러오는 것과 같은 코드들이 Model에 속한다. 이러한 데이터들을 html과 css 등으로 시각적으로 볼 수 있게 해주는 영역이 View 파트이다. 마지막으로 model의 데이터를 view에 연결해서 사용자가 view 화면에서 model의 데이터를 gui로 읽고 쓰고 지우게 할 수 있는 파트가 controller 파트이다.
몇몇 프레임워크에서는 조금 이름이 다르게 쓰이지만, (python의 Django는 MTV라고 함) 대략적인 사용법과 구조는 비슷하기 때문에 조금 접해보면 금방 익힐 수 있다.
MVC 디자인 패턴은 왜 사용하는 가?
흔히 php나 jsp와 같은 언어들을 보면 특별히 mvc로 기능들이 추상화되어 있지 않다. 이러한 형태는 오히려 mvc보다 가벼워 보이고 개발하는 데에 쉬워 보인다. 그렇다면 mvc패턴은 왜 사용하는 것일까? php와 같이 한 파일 안에 model, view, controller의 역할을 다 사용하다 보면 개발 속도면에서는 확실히 빠를 수 있다. 그러한 특성은 작은 프로젝트에 알맞다. 하지만 만약에 프로젝트의 단위가 커진다면 어떨까? 개발자들은 얽힐 대로 얽힌 코드들을 유지 보수하는 데에 많은 비용을 들여야 할 것이다.
이러한 MVC 패턴은 처음 구축하는데에는 분명 php와 같은 언어들보다 힘이 들지만, 한번 구축해두고 나면 프로젝트를 확장하는 데에 훨씬 용이하고 유지보수 측면에서 뛰어나다.
'Computer Science > Tech' 카테고리의 다른 글
[Tech] 암호화 알고리즘 (0) | 2020.03.29 |
---|---|
[Tech] Protocol Buffer: Serialization에 관하여, 모두가 JSON을 쓴다고 하여 JSON만이 정답일까? (0) | 2020.01.11 |
[Tech] JWT(Json Wet Token)이란? (0) | 2019.12.16 |
[Tech] MSA(Microservice Architecture)란? (0) | 2019.11.13 |
[Tech] session/cookie 방식이란? (0) | 2019.10.13 |