MVC 웹 프레임워크가 뭔가요?
- MVC 웹 프레임워크가 뭔가요?
-
MVC 프레임워크는 거대한 동적 웹이 등장하면서 생긴 웹 프레임워크입니다.
규모가 크지 않다면 한 파일 안에, 변수처리, 데이터처리, 그리고 HTML을 처리하는 부분을 다 넣어도 되겠지만,
네이버 정도 되는 웹 페이지를 그런식으로 만들 수는 없겠죠?
즉, 규모가 커질 수록 코드들을 특정 기준으로 분리, 모듈화해서 접근하게됩니다.
웹 사이트 뿐만아닌 프로그램들에는 Model, View, Controller, 즉 MVC란 접근법이 사용됩니다.
- MVC Web Framework
-
View하고 Controller는 처음 들으셔도 '아, 이거겠구나' 싶을 거에요.
View는 말 그대로 눈에 보이는 것, 웹의 경우 HTML이랑 CSS로 나타내는 요소입니다.
Controller하면 뭔가를 제어하는 것, 아마도 프로그래밍이 이 부분에서 많이 이뤄질 것 같은 느낌이죠?
Model, 이게 좀 아리송 할 겁니다.
MVC에 대한 설명들을 봐도 무슨 상태를 저장한다느니 알 수 없는 이야기들을 하는데,
그냥 데이터에 관련된 것이라고 생각하시면 됩니다.
- 게시판
-
게시판을 예로 들어보겠습니다. 게시판에 읽히고 쓰이고 수정되는 글들은 데이터 베이스의 데이터로 저장됩니다.
이 데이터의 형식을 지정하고 저장하고 불러오는 작업들에 관한 코드들이 이 Model 파트에서 이뤄집니다.
이걸 사용자들이 목록과 글, 입력화면 등으로 시각적으로 볼 수 있도록 해주는 HTML, CSS 등의 요소가 View 파트에 작성되고요.
그리고 아마 예상하셨겠지만, 이 둘을 연결해주는 부분,
Model의 데이터를 View에 연결해서 사용자가 GUI 화면을 통해 데이터를 읽고 쓰고 지우고 할 수 있도록 전반적 제어를 하는 파트가
Controller입니다.
- 정리
-
MVC를 하나의 식당에 비유하자면,
- Model
-
식료품 재료를 저장하고 조리하는 주방장
- View
-
주방장이 내온 음식을 플레이팅하는 직원
- Controller
-
주문도 받고 서빙도 하는 매니저
- 활용
-
이런 MVC 모델처럼 코드로 기본 골격을 한 번 짜고 나면 그 코드를 기반으로 내 사이트를 개발하는 일이 수월해지겠지만,
이런 구조 자체를 개발하는데는 꽤나 시간이 걸립니다.
처음부터 스스로 구조를 개발하는 것이 아닌, 필수요소가 이미 만들어져 있는게 있다면 참 편리하겠죠.
다행히도 여러 회사, 비영리단체, 개인들이 이런 MVC 구조의 기본 설계가 갖춰진 상태인 MVC 웹 프레임워크란 걸 제공합니다.
건물의 기초 골격과 수도, 전기, 난방이 설치된 채로 사용자가 원하는 대로 집을 개조하고 꾸밀 수 있게 제공되는 겁니다.
'프레임워크'는 남이 이미 짜놓은 코드란 점에서 '라이브러리'와도 비슷합니다.
- Library VS. Framework
-
'라이브러리'가 각각 개별적인 기능들 즉, 문짝이나 욕조 등의 부속품이라고 한다면,
'프레임워크'는 이것들이 연결되어 기초적인 제품 골격을 갖춘 상태를 말합니다.
쉽게 말해서 가져다 쓰는 것이 '라이브러리'고
기본 틀로 삼아서 그 위에 뭘 덧붙여 만드는게 '프레임워크'인거죠.
웹 프로그래밍에는 다양한 언어가 사용되고, 이 언어들마다 또 여러 MVC 웹 프레임워크가 있습니다.
- MVC 웹 프레임워크 종류
-
한국에서 가장 많이 사용되는 건 자바 언어로 동작하는 spring 프레임워크,
php 언어로 작동하는 라라벨 프레임워크
특이하게도 MVC라고 안하고 MTV(Model, Template, View)라고 하는 파이썬의 장고,
일본에서 많이 쓰는 Ruby의 Ruby on Rails
C#의 .Net Core (마이크로소프트에서 만듦, 구글에 dotnet core mvc framework 라고 검색)
함수형 언어 Scala의 Play 등등 굉장히 많습니다.
angular 같은 프론트앤드는 나중에 다루겠습니다.