웹 페이지가 커질 수록 코드들이 길고 난해해 집니다. 그럴때는 기준에 따라서 역할을 분리하고 모듈화해서 접근하곤 하죠? 수능도 국수사과영 과목을 나누듯이...( 한번에 8시간씩 시험을 치면 너무 끔찍할거 같아요) 웹사이트를 비롯한 소프트웨어는 이를 Model, View, Controller 로 나눕니다. 이는 MVC 라는 접근법입니다.
▶View 는 말 그대로 눈에 보이는 것 , 웹에서는 html, css 같은 거죠.
▶Controller 는 뭔갈 제어하고 다뤄주는 것, 웹에서는 javascript 같은 느낌인거죠.
▶Model 은 뭘까요? 이는 데이터와 관련된거라고 생각해주면 되요.
예를 들어 업데이트가 자주 되는 게시판에서 글들은 데이터베이스에 데이터로 저장이 됩니다.
이 데이터의 형식을 지정하고 저장하고 불러오는 작업들에 관한 코드들이 Model 영역 입니다.
이 데이터를 게시판에 띄워주고 목록들을 만드는 영역이 View 입니다.
그리고 이 둘을 연결해주는 게 Controller 영역에 역할입니다. Model 의 데이터들을 끌고 와서 View 로 나타내면 사용자가 게시판에 글을 쓰고 올리고 지우는 등의 행동을 처리해주는 부분인거죠.
★이 하나의 식당이라면
Model은 식료품 창고(데이터) 를 관리하고 음식을 요리하는 주방장이고
View 는 주방장이 만든 음식(데이터)를 플레이팅(html, css) 해주는 직원이고
Controller는 주문 받고 서빙하는(model과 view 연결) 매니저라고
생각하시면 이해가 좀 더 쉬울 겁니다 .
이렇게 Model, View , Controller 를 통해 기본 골격, 즉 프레임 워크를 개발하면 웹 사이트를 개발하기 편해지겠지만 이 구조를 개발하는 거 자체가 시간이 꽤 오래 걸리고 힘듭니다. 다행히도 여러 기업, 또는 개인이 이렇게 기본 형태가 갖추어진 MVC 웹 프레임워크(MVC Web Framework)를 제공합니다. 건물의 뼈대가 만들어진 형태인거죠.
라이브러리와의 차이라면 라이브러리는 각각 개별적인 기능(함수)같이 떨어져있는 부속품과 같다면 프레임워크는 이 부속품들이 연결이 되어서 기초적인 제품 골격을 갖춘 상태를 말합니다. 그러니 라이브러리를 가져다 쓰면 되고 프레임워크는 우리가 덧붙여서 크기를 점차 키우는 형태가 되겠죠.
▷여러 언어에 여러 프레임워크가 있는데요.
한국에서는 Java 언어로 동작하는 Spring 프레임워크
PHP 언어에는 라라벨
Python 의 장고(DJango) , MTV라고 불려요.( T는 Template)
일본에서 많이 쓰는 Ruby의 Ruby on Rails
함수형 언어 Scala 의 Play
등등등 굉장히 많습니다.
이처럼 어떤 회사 또는 어떤 웹 사이트를 제작하냐에 따라서 본인에게 맞는 프레임 워크를 선택해주면 됩니다. 사용법은 전체적으로 비슷하기 때문에 하나를 익히면 다른 것도 자연스럽게 다룰 수 있다고 해요ㅎㅎ
그럼 오늘 글은 여기서 마치겠습니다.
※이 글은 얄팍한 코딩사전 님의 영상을 보고 포스팅 했습니다.
https://www.youtube.com/watch?v=AERY1ZGoYc8
'보안뉴스' 카테고리의 다른 글
API 란? (0) | 2020.06.14 |
---|---|
ASP.NET SignalR (0) | 2020.06.07 |
개발자들이 인터넷 익스플로러를 싫어하는 이유 (0) | 2020.06.01 |
쿠키,세션,그리고 캐시 (0) | 2020.05.29 |
Web Programming & HTML5 (0) | 2020.04.24 |