모델-뷰-컨트롤러

From Hidden Wiki
(Redirected from MVC 패턴)
Jump to navigation Jump to search

모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 응용 소프트웨어(애플리케이션)의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.


보안


다크웹 사이트 코드에 웹 사이트 IP 주소도메인 네임을 삽입한다니 보안 의식은 어디에???


병신새끼... 친절하게 포트포워딩으로 외부에서 접속 가능하게 해주네ㅋㅋㅋ 뱅신 한마리 잡아가슈~~ 광고할 일이라도 있나 그리고 시발 클라이언트 쪽에 자바스크립트 쓰면 딥웹에서 쓰겠냐? 딥웹 떼고 그냥 노드채팅방 만드는 방법이라고 쓰던가 좆도 모르면서 어그로 끄네


그게 웹 코더로 일하는 일베충 수준임. 직업인데도 실력이 별로..

http://c2djzrn6qx6kupkn.onion/res/46738.html


  • 지금 내가 가지고있는게 pc 1대 , 노트북 1대

현금 100 만원인데 . 어떻게 돈벌수있을까 .. 파이썬이랑 장고 샀다 웹만들까 씨발 ㅠㅠ 또 어떤걸 만들어야 이 되냐 .


여기서 많이 벌었다고 소문 난 웰컴 투 비디오 (Welcome to video)처럼 아청물 팔거나, 하이 코리아처럼 마약 거래 중개해주고 에스크로 수수료 받거나.


쟁고우 (Django, [ˈdʒæŋɡoʊ]) 또는 쟁고 ([ˈdʒæŋgoː])는 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로, 모델-뷰-컨트롤러 패턴을 느슨하게 적용한다. 2005년 7월에 BSD 사용 허가서로 공개되었다. 남한에서는 쟝고장고라고도 부른다.


만들기 쉽냐


인서울 4년제 대학머가리면 쉽고, 지잡대전문대대가리면 어렵고.


니들이 MVC 패턴을 어떻게 알어 ? 실무 개발자로 일하고 있나 .. 소름돋네


MVC 패턴이란 Model, View, Controller의 합성어로 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴입니다.

Model: 백그라운드에서 동작하는 로직을 처리합니다.

View: 사용자가 보게 될 결과 화면을 출력합니다.

Controller: 사용자의 입력처리와 흐름 제어를 담당합니다.


MVCModel View Controller의 약자로 애플리케이션을 세가지의 역할로 구분한 개발 방법론이다. 아래의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다.


MVC 패턴 개념을 에 적용해보자.

1. 사용자가 웹사이트에 접속한다. (Uses)

2. Controller는 사용자가 요청한 웹페이지를 서비스 하기 위해서 모델을 호출한다. (Manipulates)

3. 모델은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴한다.

4. Controller는 Model이 리턴한 결과를 View에 반영한다. (Updates)

5. 데이터가 반영된 VIew는 사용자에게 보여진다. (Sees)

http://c2djzrn6qx6kupkn.onion/res/46493.html



대부분 웹툰 토토 정도는 만들음. 에스크로 만드려면 공부 좀 해야지.

본인 서버파이썬 직접 올리는데 못하는게 어딨음. 치고 싶으면 떡치는거지


웹툰, 토토, 에스크로는 파이썬으로 만들 수 있고. 온라인 게임 같은 건 다른 프로그래밍 언어로 만들고. 뭘 만드려느냐에 따라 쓰는 프로그래밍 언어도 달라짐.


애초에 어느 프로그래밍 언어를 쓰든 만들 수는 있음. 특정 작업에 더 효율적인 언어가 있을 뿐이지.

http://c2djzrn6qx6kupkn.onion/res/46604.html


게시판 두달만에 만드네 지랄들 하는데

만드는거랑 제대로 만드는거랑 차이가 있다는걸 모르냐?

좆병신이 국비학원 쳐가서 두달만에 만드는 게시판이 퍽이나 안전하겠다 병신들아

거기에 국비학원 가서 배울 정도 빡대가리토르에서 게시판 관리하고 디도스 막고 정기적으로 보안 점검 한다고? 근데 그걸 정보보안자격증 하나 따도 충분히 한다고? 니미럴 ㅋㅋㅋㅋㅋㅋ

진짜 파이썬 장고 해본적도 없고 print 함수도 모르는 병신MVC 모델 용어 하나 알았다고 위키내용 복붙하는거 ㄹㅇ 진짜 개역겨움


위키 복붙도 좆같지만 난 애초에 왜 딥웹까지 쳐 와서 장고쟁고우같은 초보 코더 글 올라오는게 이해가 안간다. 생활코딩 가세요 시벌놈들아


Django로 웹사이트 만드는 책에 chapter가 14개 있으면 하루에 하나씩만 해도 2주면 https://www.ilbe.com 같은 사이트의 기본적인 기능은 다 구현 가능함. 회원 로그인, 글쓰기, 추천 기능 등.

그걸 왜 학원 가서 두달씩이나 배우는지 no이해. 학원에서 2개월 코스로 가르치는 내용이나 Django 책 한권 전체에 있는 내용이나 별 차이 없던데.


그거야 국비 지원 학원 같은데서 몇 개월 배우고 웹 코더로 일하는 애들은 인서울 4년제 대학에 갈 머가리가 안 되니까 그렇지

http://c2djzrn6qx6kupkn.onion/res/46616.html


구성요소

모델-뷰-컨트롤러는 응용 프로그램을 세 가지의 구성요소로 나눈다. 각각의 구성요소들 사이에는 다음과 같은 관계가 있다. [1]

  • 컨트롤러는 모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다. (예: 워드 프로세서에서 문서를 편집하는 것) 또, 컨트롤러가 관련된 뷰에 명령을 보냄으로써 모델의 표시 방법을 바꿀 수 있다. (문서를 스크롤하는 것)
  • 모델은 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이와 같은 통보를 통해서 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가·제거·수정할 수 있다. 어떤 MVC 구현에서는 통보 대신 뷰나 컨트롤러가 직접 모델의 상태를 읽어 오기도 한다.
  • 는 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어 온다.

역사

MVC는 제록스 팰러앨토 연구소에서 스몰토크 관련 일을 하던 Trygve Reenskaug이 1979년 최초로 소개했다.[2] 관련 구현은 영향력있는 논문인 《스몰토크-80에서의 애플리케이션 프로그래밍: 모델-뷰-컨트롤러를 사용하는 방법》[3]에서 깊이 있게 설명되었다.

MVC는 여러 파생 패턴을 가지고 있다; 그 중 (마이크로소프트가 사용했기 때문에) 가장 널리 알려진 것은 1990년대 초기부터 등장하기 시작한 모델 뷰 프리젠터 패턴이다. 이 패턴은 MVC의 진화된 모습을 목표로 설계되었다. 그러나 모델-뷰-컨트롤러는 여전히 매우 널리 사용되고 있다.

2002년 11월 W3C는 미래의 웹 애플리케이션에 사용될 X폼즈(XForms) 아키텍처에 MVC 구조가 포함되도록 투표하여 가결하였다.[4] 이 규격은 XHTML 2.0 규격에 바로 통합될 것이다. 현재 20개가 넘는 업체가 애플리케이션 스텍에 MVC가 통합된 X폼즈 프레임워크를 지원하고 있다.

모델

모델(model)이란 어떠한 동작을 수행하는 코드를 말한다. 표시 형식에 의존하지 않는다. 다시 말해, 사용자에게 어떻게 보일지에 대해 신경쓰지 않아도 된다. 모델은 순수하게 public 함수로만 이루어진다. 몇몇 함수들은 사용자의 질의(query)에 대해 상태 정보를 제공하고 나머지 함수들은 상태를 수정한다.

MVC에서 모델은 여러 개의 뷰(view)를 가질 수 있다. 뷰는 모델에게 질의를 하여 모델로 부터 값을 가져와 사용자에게 보여준다.

컨트롤러

MVC의 뷰는 여러 개의 컨트롤러(Controller)를 가지고 있다. 사용자는 컨트롤러를 사용하여 모델의 상태를 바꾼다. 컨트롤러는 모델의 mutator 함수를 호출하여 상태를 바꾼다. 이때 모델의 상태가 바뀌면 모델은 등록된 뷰에 자신의 상태가 바뀌었다는 것을 알리고 뷰는 거기에 맞게 사용자에게 모델의 상태를 보여 준다.

원리

자바언어에서 모델은 java.util.Observable을 상속(extends)받아 만들 수 있다. 모델에는 현재의 상태 정보를 변경하거나 다른 클래스에게 알릴 수 있는 함수가 있어야 한다. 모델의 상태를 변경하는 함수(mutator)는 setChanged()와 notifyObservers()를 호출하여야 한다. NotifyObser는 모델에 등록된 모든 뷰에게 업데이트 메시지를 보내게 된다. 뷰는 java.util.Observer를 implement하여 만들면 update method를 구현할 수 있다. update함수의 두 번째 매개변수는 Object 모델에서 넘어온 추가정보를 받는 데에 사용된다.

interface Observer
{	void update(Observable t, Object o);
}

뷰는 반드시 모델에게 질의하여 업데이트하는 부분이 구현되야 한다. 모델은 addObserver라는 함수를 이용하여 뷰를 자신에게 등록시킨다. 모델은 자신에게 등록된 모든 뷰를 기억하고 있다가 자신의 상태가 바뀌게 되면 등록된 모든 뷰에 notify 함수를 호출하여 뷰를 update시킨다. 모델은 뷰를 여러 개 가질 수 있다. MVC에서는 이것을 허용하고 있다. 또한 뷰도 여러개의 모델에 등록될 수 있다.

같이 보기

참고 자료

각주

  1. Buschmann, Frank (1996) Pattern-Oriented Software Architecture.
  2. Trygve M. H. Reenskaug/MVC—제록스 팍 1978-79
  3. Template:웹 인용
  4. Forms 1.0 Basic Profile

외부 링크

Template:디자인 패턴(소프트웨어)

분류:프로그래밍 패러다임 분류:소프트웨어 구조 분류:소프트웨어 디자인 패턴