그냥 개발자 블로그

웹프로그래밍 실무에 꼭 필요한 mvc 기술 본문

IT소식&팁

웹프로그래밍 실무에 꼭 필요한 mvc 기술

마음이파파 2015. 9. 26. 23:00

mvc란 무엇일까요?

가용 가능한 사이트를 제작할때는 한가지 기술만 가지고 만들수 없으며 html, css, javascript, php, jsp, asp 등의 많은 기술이 복합적으로 사용 되죠. 

따라서 한 페이지에 모든 소스가 작성될 경우 뒤섞여 더욱 복잡한 소스가 되는데요. 이는 유지보수비용 및 생산 기간의 증가로 이어지며 소스의 재사용률도 떨어지게 되요.

그래서 나온 해결책이 같은 성격끼리 묶는 방식인 mvc인거에요. mvc는 model, view, contaller 의 약자로 model(모델)은 데이터 처리 기능을 모아 놓으며 view(뷰)에는 javascript, html, css 등이 해당되고 contaller(컨트롤러)는 이 둘을 이어주며 동작하는 것들이 들어가요.




mvc의 장점은?

첫째 보안을 들수가 있어요. 하나의 페이지가 보여지기 위해서는 모델, 뷰, 컨트롤러가 조합되어야 하는데요. 만약 컨트롤러 한부분이 노출 되었다해도 시스템에 전반적인 내용은 알수가 없죠.

둘째로 사이트의 유지관리가 용이해지는데요. 문제가 되는 부분이 발견 되었다면 해당 파일만 열어 수정하면 되니까요.

셋째로 웹사이트 제작에 분업화가 가능하다는거에요. 대규모의 사이트 경우 종이에 글을 써 내려가듯 한사람이 주욱 써내려간다면 얼마가 걸릴지 모르는 일이죠. 하지만 mvc 방식을 적용하면 한사람은 모델영역에서 작업하고 또 한사람은 컨트롤러 영역에서 또 한사람은 뷰영역에서 작업이 가능하겠죠?

넷째로 재사용이 용이하다는거에요. 사이트 제작은 매우 비용이 많이 나가는 일이에요. 몇천만원 단위는 우습죠. 하지만 우리가 몇백 또는 몇 십만원에 사이트를 의뢰 제작할수 있는건 이미 만들어진 mvc 방식의 사이트에서 필요한 부분을 복사해와 레고 쌓듯 연결하여 사용할수 있기 때문이에요.




mvc 실무

mvc는 위에서 설명한것과 같이 특별한 기술이 아닌 방식(또는 방법)이기에 사이트 개발시 폴더의 분리만 잘하면 되죠.

하지만 html 문서 내에 어쩔수 없이 php, asp, jsp 소스들의 난입이 필요하게 되는데요. 이는 분업화 되어 있는 현 웹개발 환경에서 퍼블리셔나 디자이너들이 프로그램언어를 알아야하는 상황이 발생하게 되죠.

또한 안그래도 복잡한 html문서 내에 프로그램 언어까지 있어서 더욱 복잡해지고 프로그램언어 일부가 그대로 들어나니 보안은 미약하죠.

그래서 실무에선 mvc template라는것들을 많이 사용하는데요. mvc 템플릿이란 프로그램언어도 아니며 html도 아닌 중간 단계의 언어를 만들어 보안은 높이며 의미뿐만 아니라 실제로도 명확히 분리된 mvc환경을 만드는데 도와주는 프로그램인거죠.

현재는 다양한 템플릿들이 존재하며 프레임워크(개발을 더욱 빠르게 도와주는 프로그램) 내에 mvc 템플릿이 내장되어 나오기도 하니 템플릿 함수만 잘 인지하여 적절히 사용하면 되겠네요. 대표적으로 ci(코드이그나이터)프레임워크 내에 템플릿과 template_(템플릿언더바) 가 있겠네요.




P Template 소개

수많은 경험을 통해서 각 mvc템플릿의 장단점을 파악하여 P Template를 만들었어요.

기존 mvc템플릿과는 다르게 절대경로와 상대경로 구분 없는  유연함이 적용되었고 템플릿함수들은 직관적으로 만들어 개발자뿐만 아니라 퍼블리셔, 디자이너까지 이해하기 쉽게하였어요. 

또한 비교적 쉽게 탈취 및 공격 대상이되는 html 문서의 보안을 높였으며 기존 mvc템플릿의 단점인 속도를 보완하고자 매우 경량화 하였어요.

라이센스만 밝히면 어디서든지 사용가능하게 크식스에 공유할 예정인데요. 현재 P Solution 제작과 더불어 8월 스케줄로 인하여 공식적인 공유를 미루고 있는 단계에요. 그래도 혹시 정식 공유까지  못기다리겠다는 분이라면 별도로 연락 주세요.