📢 개요

네이버 같은 딱봐도 복잡한 웹사이트는, 요소와 기능들이 많아지고, 구조가 이것저것 얽혀있다는 것이 느껴집니다.

뭔가 거대해지고 복잡해질수록, 특정 기준으로 분리,모듈화해서 접근을 해야합니다.

국가기관을 입법,사법,행정으로 나누듯이, 웹사이트를 비롯한 소프트웨어는

  • Model
  • View
  • Controller

라는 접근법이 많이 사용됩니다.

 

📢 MVC Web Framework

MVC 패턴

MVC 패턴

  • Model : "데이터"에 관련된 것
  • Veiw : 눈에 보이는것, 웹의 경우 HTML/CSS 나타내는 요소들
  • Controller : 뭔가를 제어하는것, 프로그래밍의 대부분을 차지

게시판을 예시로 봅시다.

Model

👉 게시판에 쓰이고 읽히고 수정되는 글들은, DB에 데이터로 저장될 것입니다.
데이터의 형식을 지정하고, 저장하고 불러오는 작업들에 관한 코드들이 Model 

Veiw

👉 이걸, 사용자들이 목록과 글, 입력화면 등으로 시각적으로 볼 수 있도록 해주는 HTML/CSS 등의 요소가 View

Controller

👉 Model에 데이터를 View에 연결시켜서 사용자가 GUI화면을 통해 데이터를 읽고,쓰고,지우고 할 수 있도록 전반적 제이를 하는 파트가 Controller 입니다.

앞선, "정적 웹 vs 동적 웹" 포스팅에서 동적 웹을 "식당"에 비유했습니다.

 

[알쓸 IT] Static Web ? Dynamic Web ?

📢 개요 편의점과 식당이 있습니다. 편의점은 미리 조리되어있는 음식들을 내가 사다 먹을 수 있습니다. 식당은 내가 주문 넣으면, 그 자리에서 음식을 조리해서 만들어 제공을 해주면 먹을 수

youngminieo1005.tistory.com

Model은 이 식당의 식료품창고를 관리하고, 음식을 요리하는 "주방장"
View는 주방장이 내온 음식을 플레이팅하는 "직원"
Controller는 주문도 받고 서빙도 하는 매니저라고 생각하면 적당합니다.

이렇게 Model, View, Controller를 갖춘 웹사이트를 코드로 기본 골격을 한 번 짜고 나면, 그 코드를 기반으로 내 사이트를 개발하는 일이 수월해지겠지만, 이런 구조 자체를 개발하는 것은 꽤나 시간이 걸릴 것입니다.

다행이도 여러 회사나 비영리 단체, 혹은 개인들이 이 MVC 구조의 기본 설계가 갖춰진 상태인
"MVC 웹 프레임워크" 란 걸 제공합니다.

마치, 건물의 기초 골격과 수도,전기,난방이 설치된 채로 사용자가 원하는대로 집을 개조하고 꾸밀 수 있게 제공하는 것입니다.

"프레임워크"는 남이 이미 짜놓은 코드란 점에서 라이브러리와 비슷하지만, 이 둘을 간단히 비교하자면

라이브러리(Library) 프레임워크(Framework)
각각 개별적인 기능들을..
비유하자면, 문짝이나 욕조 등의 부속품
"가져다 쓰는 것"
부족품들이 연결되어서..
기초적인 제품 골격을 갖춘 상태
"기본 틀에서 덧붙여 만드는 것"

웹 프로그램언어에는 다양한 언어가 있고, 또 언어마다 다른 MVC 웹 프레임워크가 있습니다.

예로 들면, 한국에서, Java 언어로 동작하는 Spring 프레임워크, php 의 Laravel 등이 있지요.

특이하게 MVC라고 안하고, MTV(T,Template) 라고하는 python의 Django, Ruby 의 Ruby on Rails, 함수형 언어 Scala의 Play 등등 굉장히 많다고 합니다.

웹 프로그램언어 - 웹 프레임워크 

후에, 본인이 어느 회사에서 일을 하는가, 또는 어떤 웹사이트를 만드는가에 따라서, 무슨 언어와 프레임워크를 사용할지 결정하면 됩니다.

대략적인 구조나 사용법은 다 비슷해서, 한 두가지 써보면 새로운 걸 접해도 쉽게 터득할 수 있을 것입니다.

 

문제나 잘못되었거나 미흡한 설명 있으면 알려주세요. 🙏


 

728x90
반응형

+ Recent posts