일단 웹이란 무엇인가부터 시작해서 설명을 해보죠. 웹에 사용할 수 있는 언어는 무척 다양합니다. 기본적인 HTML이 있구요. 좀더 동적인걸 보자면 asp, jsp, php, cgi등등 많은 언어들이 있습니다.그리고 요즘 다들 관심이 많은 XML이 있고 플래시가 있습니다.


보다 더 심플하게 웹의 시스템적 구조를 본다면 사용자의 어떠한 요구(request)을 서버에전송한후 서버에서 그에 해당하는 응답(response)을 다시 돌려 받는다는것입니다.


이것을 하기위해 우리는 많은 방법들을 사용하게되고 사용하고 있습니다.

그러나 궁극적인 목적은 우리가 원하는 어떤정보(Database에 저장되어있는)를 요청하고 받아보는 구조로 되어있죠. 물론 우리가 data를 서버에서 받아보지 않고 전달만 할 때도 있지만.

 

그렇다면 몇가지 방법을 보죠.

가장 기본적인 HTML은 정적인 Page입니다. 단순히 한 번 만들고 사용하는 Page라는 것이죠. 물론 만들기는 무척 간단하고 구조도 단순하지만 새로운 정보에 대해서 스스로 해결을 못한다는 단점이 있습니다. 단순히 그냥 page라는 말이 되겠죠? 그리고 이런 page는 경쟁력이 없겠죠?

그래서 나온것이 동적인 asp, jsp, php, cgi등등 입니다. 이것도 궁극적인 목적은 같습니다. 방법도 거의 같다고 말 할 수 있습니다. 단지 프로그램상의 명령어들 즉 문법이 다를 뿐입니다. 의미는 같지만 그 형태가 다르다는 의미입니다. 그 중에 asp는 Microsoft에서 나온것이고 jsp는 SUN에서 나오는 것입니다.

 

그 문법 구조를 보면 우리가 사용하는 html 형식 페이지에 실시간으로 Database에서 Data를 끌고 나와서 뿌려준다는 것 밖에 없습니다.

 

예)

<HTML>

<B>이 페이지는 <%= new Date()%>에 마지막으로 수정하였습니다.</B>

</HTML>

 

이런 페이지 내용이 있다고 합시다. 나머지는 다 HTML 태그이고 못보던게 보입니다.

<%= new Date()%>이것이죠. 결과부터 말씀드리면 이것은 서버에서 지금 현재의 날짜에 관련된 내용들을 가지고 나오는 것입니다. 결과적으로 page가 계속 변한다는 이야기 입니다. 접속하고 열어볼때마다 날짜와 시간은 바뀌니까 말이죠.

 

아무튼 많이 쓰이는 동적인 페이지에 사용하는 언어들은 모두가 저런 구조로 되어있죠.

이것도 불편합니다. 어떤 것이 불편하냐하면 프로그래머와 디자이너가 중복되는 page를 가지고 고친다는 것입니다. 이것은 상당히 불편합니다. 아주 예전에야 디자이너와 프로그래머가 분리되어 있지 않고 거의 모든 업무를 다했습니다. 그리고 웹마스터라고  불리어 졌었습니다.

 

프로그램이 들어가있는 page를 디자이너가 고친다는 것은 너무 힘들고 짜증나는 일이죠.

물론 잘못 고친다면 프로그래머에게도 짜증나는 일이 되고 부서간에 다툼이 일어날 소지가 큽니다.

요즘은 디자이너들도 프로그램영역을 조금은 알고 있는 사람이 많습니다.

 

그래서 중간에 다른 방법도 나오긴 했지만, 또 다시 struts라는 프레임워크가 나오게 된것입니다.

여기까지 오는데 서론이 너무 길었습니다. 결국엔 서로의 부분을 디자이너의 영역과 프로그래머의 영역 전체적인 설정과 구조를 서로 분리해보자는 목적에서 나온것입니다.

이도 심플하게 말하자면 영역을 분리하는것입니다.

디자이너의 부분 프로그램의 부분 전체적인 시스템을 관리하는 부분(컨트롤이라고도 하죠.)

이를 어려운 영어를 쓴다면 MVC가 됩니다. Model, View, Controller라는 이름으로 구분하게 된것이죠.

이렇게 사용하게끔 구분을 하여 나온것이 struts라는 프레임워크인 것입니다.

 

이것만 기억하세요 struts는 MVC를 근간으로 하는 프레임워크다


추가: http://devbada.tistory.com/185