DOUG 로이드 : 때때로 때 우리가 프로그래밍을하고 우리는 그래서, 그래서 일반적으로 일을 자주, 그리고 많은 사람들 동일하거나 아무것도 모르겠어 똑같이 일,이 이름이있다. MVC는 정확히 하나의 일이다. 그것은 프로그래밍 패러다임이라고. 그것은 일종의 모범 사례처럼 그 아래로 증류 된 뭔가를 시도하는 사람들이. 이러한 경우에, 구현 페이지 시스템 사용자가 상호 작용하는 것을 더 복잡한 웹 사이트. 그리고 그렇게 일반적으로이 이루어집니다 그것은 표준으로 권장 다른 사람들이 따라하고 싶은 수도, 및 방법의 매우 구체적인 세트있다 하나는이 패러다임을 수행 할 수 있습니다. 따라서, MVC는 패러다임 및 이유는 우리는 거리 추상적 인 세부 사항이다 사용 사용자로부터. 어떤 것들은 사용자 정말 볼 필요가 없습니다. 그들은 단지 갖고 싶어 좋은 사용자 경험, 우리는 그것들을 가질 필요가 없습니다 모든 단일 파일에 액세스하는 아마도, 우리의 웹 서버에 존재합니다. 다만 일부 파일이있을 수 있습니다 사용자 경험을 강화하기 위해 사용되는, 멀리 사람들을 그래서 우리가 할 수있는 추상적 인. 우리는 일종의 그래서 그들을 숨길 수 있습니다 사용자는 그들과 함께 작업 할 수 없습니다 그러나 우리는 우리의 pages--을 pages-- 그들과 거래를하는 방법을 알고 그리고 그들에게 전화 혹은 필요 그들, 또는 그런 일을하려고합니다. 주요 동기 MVC는 데이터 보안이 들어 MVC는 보통에서 오기 때문에 데이터베이스 작업의 컨텍스트. 특히 우리의 사용자를 방지 할 직접 영향을 데​​이터베이스에서. 우리는, 간접적으로 수행 할 우리의 여과를 통해. 또는 제작해야합니다 모든의 확인에 의한 우리는 오류 검사의 조금을하고 안전 교정 우리 전에 데이터베이스로 전송 일이 아마 잘못 갈 수 우리가 조심하지 않으면, 정말 잘못. 그래서 MVC는 모델 뷰 컨트롤러를 의미합니다. 이들 각각의 의미는 무엇입니까? 기본적으로, 모델은 데이터베이스입니다. 그것은 어디 모든 귀하의 사이트에 대한 중요한 데이터 lives-- 사용자 이름, 로그인, 암호. 그리고 당신이 그것을 업데이트를 참조 할 수 있습니다, 그런 거의 모든. 당신은 데이터베이스를 조회 것, 물어 것 데이터베이스에서 정보를 제공합니다. 즉,의 model-- 전부 귀하의 사이트가 살고 데이터. 보기는 가지처럼 사용자 경험. 그것은 그들이 후에 볼 수있는 페이지입니다 그들은 정보를 요청했습니다. 그래서 어쩌면 그들은 제출 자신의 로그인 information-- 이들이 컨트롤러에 할 것, 저희는 두 번째에 대한 얘기하자. 그들은 어쩌면 제출 자신의 로그인 정보, 데이터베이스가 쿼리됩니다. 정보가 요구되고 데이터베이스에서 가져온. 그리고 나서 사용자가 기록되면 , 그들은 자신의 홈 페이지를 참조하십시오. 즉 확인,보기입니까? 그리고 컨트롤러는 무엇입니다 사이트의 비즈니스 로직이라고합니다. 비즈니스 로직은 그 용어 중 하나가 wishy-washy-- 같은 종류의 것입니다, 비즈니스 로직은 무엇을 의미 하는가? 기본적으로 당신의 사업 논리는 PHP입니다. 사용자는 필요하지 않습니다 직접 PHP를 보려면, 하지만 PHP는 아마 무슨 일이야 데이터베이스에 대한 요청을합니다. 따라서 사용자의 의지 입력 보기에서 정보, 어떤 컨트롤러를 통합 할 것이다. 마찬가지로, 그들은 형태로 입력합니다. 어떻게 그 형태 프로세스 정보는 컨트롤러이다. 그 사실의 PHP의 모델에 대한 요청을하는. 그리고 모델 제공 뷰에 대한 정보, 사용자에게 제공되는, 다음과 같이 가장 잘 시각화. 그래서 여기에 우리가 있습니다. 여기 왼쪽에 우리를, 그리고 우리의 모델 보기 컨트롤러 패러다임의 배열. 그것은 어떻게 작동합니까? user-- us--은한다 컨트롤러에 요청합니다. 우리는 정보를 제출 HTTP 양식으로 등. 상기 컨트롤러의 그것에 기초 작업이 있는지 확인하는 것입니다 주신 사용자가 아닌 그 무엇 모델을 손상 것이 뭔가. 그리고 컨트롤러는 것 반드시 모든 것이의 확인을합니다. 그것은 매우 신중하게 보는 것입니다. 오류가 있다면, 그것은 일을 중지합니다 그래서 사용자는 모델에 얻을 수 없습니다. 그러나 가정 모두의 확인을 유효한 쿼리이다, 제어기 model-- 쿼리 것 이는 정보를 제공하도록 요청할 것이다. 이 모델은 그를 제공 할 것입니다 뷰의 페이지 정보, 그것은 그것이를 전송합니다 방법, 다음보기 정보를 채 웁니다 모델로부터 요청했다. 따라서, 예를 들어, 우리가 이야기하고있는 경우 당신의 페이스 북 페이지에 로그인에 대한, 예를 들면. 뷰는 데이터 것 그 모델에서 나온 그 친구와 뉴스를 말한다 바로, 그런 식으로 공급 또는 물건? 하지만 당신은 다른 사람의를 볼 것이다. 당신은 너무 getting-- 할 것 당신은 쿼리를 제출, 당신은 model-- 변명에 로그인 나, 당신은 페이지에 로그인합니다. 컨트롤러 사용 로그인 정보 확인하기 위해 모델에 요청을하려면 당신이 있는지 당신은 당신이 말하는 사람. 모델처럼, 예, 확인, 당신은, 당신은 당신이 말하는 그 누구이며 그래서 내가 당신에게 당신의 뉴스 피드를 제공 할 수 있습니다. 난 당신에 대한 원시 데이터를 줄 것이다 보기에 당신의 뉴스 피드, 다음 뷰를 만든다 예쁜, 방법으로 그것을 처리 우리는 표시하는 데 사용하고 있는지 사용자에게 그 정보를 제공합니다. 의 접속에 주목 이 그림에 존재하지 않는. 직접 연결이 없습니다 당신과 모델 사이. 이 버퍼는 항상있다 입력측 컨트롤러 과의 버퍼있다 출력 측에 볼 수 있습니다. 어쩌면 당신은 좋은거야 사람, 그래서 어쩌면 당신에게 에 손상을 할 것 모델,하지만 어쩌면 당신은 아니에요. 아니면 사람이 누가 있어요입니다 악의적 인 사용자 사람은 아마 것 어쩌면, 데이터베이스를 손상 할 데이터베이스에서 모든 것을 삭제 매우 비싼이 될 수있다. 분명히 갖는 사용자 데이터 is-- 사용자 데이터를 갖는 가치가있다. 그리고 우리는이 버퍼를 두지 않았다 그렇다면 사용자와 database-- 사이의 영역 사용자와 model-- 일 우리를 위해 너무 잘 진행되지 않을 수 있습니다. 그리고 그것은에 중요 이 패러다임 곳이 사용자는, 데이터베이스와 상호 작용 물론 이죠,하지만 그들은 우리를 통과해야 그것을 할 수 있습니다. 그리고 기본적으로 MVC와 생각이다. 이는 데이터 보안을 구현하기 위해 노력하고있다. 이 모델을 보호하려고 실수 또는 의도적에서 악의적 인 사용자. 그래서이 때 발생 우리는이 패러다임을 적용? 음, 우리는 데이터를 분리하고 우리의 website--에서 필요 논리에서 model-- 즉, 우리의 웹 사이트의 구현 controller--을 functionality--과 단순한 미학 페이지에서 구성 템플릿 우리 사용자가보기를 experience--. 이것은 무엇을 의미 하는가? 글쎄, 당신이 할 수 있다는 것을 의미합니다 사용자에게 눈에 보이는 전망을 제공합니다. 당신은 멀리 모델을 숨길 수 있습니다. 및 사용자 controllers-- 아마 직접 조작 할 수 있습니다. 그들은 당신의 PHP 코드에 액세스 할 필요가 없습니다. 그들은 단지 형태를 볼 필요가 그들은 어디에서 물건을 입력 할 수 있습니다. 그래서 어쩌면 형태는 뷰, 컨트롤러 양식에 제출 PHP는, 제어기는, 모델에 조회하게 이 모델은 더 많은 정보를 제공합니다 다른보기에 그 당신에게 정보를 표시합니다. 귀하의 프로그램에 액세스 할 수 있습니다 당신의 모든 비즈니스 로직, 하지만 사용자가 직접 할 수 없습니다 비즈니스 로직에 액세스 할 수 있습니다. 그리고 하나 특히, 아마도, 이 보이는 그림 당신은 이제까지받은됩니다 403 금지 오류가 발생했습니다. 혹시 웹에 갔다 페이지와 볼 (403)은 금지? 그것은 404 찾을 수 없음의 같은 종류입니다. 금지 (403)는 사용자가 액세스하려고 의미 당신이 액세스 할 수없는 페이지. 아마도 그 사이트입니다 MVC 분리하여 비즈니스 로직을 멀리 숨기려면 그 순서대로 서버에 존재해야합니다 페이지가 작동하지 않지만하려면 당신이 직접 액세스 할. 그래서 당신은 403 금지 오류가 있습니다. 그리고 그것도 문제가되지 것 당신은 로그인 한 경우. 어떤 사용자는이 점 PHP 파일을 터치 할 수 없습니다. 그들은 단지 만질 수 이 하나,이 one-- 그들은 아마도 touch-- 수있는 하나 잠긴 파일과 상호 작용할 수 있습니다 더 간접적으로 사용자보다. 그래서, 우리는 때때로이 권한을 참조하십시오 오류는,이 (403)는 금지. 우리는 어떻게 있도록 권한을 변경합니까 일을하거나 볼 수없는 수 있다는 것을? 이렇게 할 때 일반적으로 사용하는 것입니다 리눅스 명령은 chmod-- C-H-모드를 불렀다. 이를 위해 포맷 예쁜 chmod를 simple--, 권한, 그리고 어떤 파일 당신이 원하는 해당 변경 사항을 적용합니다. 그래서, 어쩌면 당신이 뭔가를 볼 것 이 항아리처럼 600 helpers.php chmod를. 아니면 당신이 항아리는 chmod를 볼 것 디렉토리를 포함 플러스 X. 이 비록 뜻입니까 되었습니까? 그래서, 두 가지 방법이 있어요 권한은 보통 것을 chmod를을 사용하여 적용. 첫 번째는 호출되는 8 진수 방법. 이것은 일반적으로 권한을 적용 세 가지 다른 범주에 동시에 사용자들의. 그래서 chmod를 711 파일은 당신에게 허용 오른쪽은 읽기, 쓰기 및 실행하기 파일, 허용 others-- 구체적으로 그룹 및 전 세계에 - 단지 파일을 실행한다. 즉,이가 번역거야. 이 첫 번째 숫자 당신이 할 수있는 것입니다, 두 번째 숫자는 그룹이 무엇을 할 수 있는지, 세 번째는 세계가 할 수있는 것입니다. 당신의 방문의 누구 페이지, 즉 세계. 이 숫자는 무엇인가 실제로 그래도 번역? 그래서 이것들은 기본적으로 다음과 같이 번역합니다. 권한이있는 경우 제로는, 아무것도 일어나지 않을 수 있습니다. 그것은 하나의 경우를 실행할 수 있습니다 즉 사용자의 허가의 경우 file--. 이 두 가지의 경우 파일을 작성할 수 있습니다 하지만 당신은 다른 작업을 수행 할 수 없습니다. 그것은 세의 경우, 작성하고 실행할 수 있습니다. 등등, 당신은 볼 수 있습니다. 그리고 일곱 당신이 모든 것을 할 수 있다는 것을 의미합니다. 왜 이들은 8 진수라고? 글쎄, 당신은 그것에 대해 생각하면, 여기 noes 및 yeses처럼, 우리는 그들에 대해 생각하는 경우 빨간색과 녹색 상자와 같은, 어쩌면 그게 좀 명확합니다. 그러나 우리는 그 빨간색 상자에 대해 생각하는 경우 사람으로 0과 1의 녹색 상자와 같은, 이러한 사실은 단지 집합입니다 이진수의 오른쪽? 000 0 진수로 변환; 001, 1 소수점; 010 등 소수 2, 및. 그래서 우리는 이러한 진수를 호출 번호가 있기 때문에 8 가지 가능성이 있습니다. 팔이 있습니다 우리가 인 경우에 다른 자리 세 가지에 대해 이야기 information--의 비트 판독 비트, 기입 비트 및 실행 비트. 그래서 지금 당신은 바이너리를 말할 수 있습니다, 진수, 진수, 8 진수. 그래서 당신과 통신하는 방법을 알고 네 가지 수의 컴퓨터 시스템, 그래서 꽤 멋지다. 그래서, 8 진수 외에 허가 방식은 거기 또한 상징적 인 허가 약간 다른 방식 일반적으로 적용하는 것이 가장 사용 또는 전반적으로 권한을 제거합니다. 그래서 더하기 X 파일을 chmod를 권리를 추가 할 수 있습니다 세 가지를 실행합니다 users--의 범주 자신, 그룹, 세계. 즉, 플러스 추가 부분입니다. 실행할 수있는 권리, 즉 X입니다. 그리고 사실은 모두에 적용 사용자의 세 그룹이 될 것입니다. 그래서 더하기 x-- 아마 것입니다이 항아리 chmod를 711과 정확하게 일치하는 당신이 돌아 가면 때문에, 파일 및 8 진수 방식을보고, 사람과 세븐 즈는 우리에게 제공 파일을 실행하는 것이 좋습니다. 그래서 이것은 아마도 동일합니다. 그리고 당신은이를 사용할 수 있습니다 에 대한 참조 설명서 무엇 의 다양한 것들 상징적 chmod를-ING 구조입니다. 녹색 항목은 여기에있을 것입니다 여기서 모든 녹색 색깔 예 두 번째 전이었다. 파란색은 파란색이 될 것이다. 오렌지는 오렌지 것이다. 그래서 당신은 물건을 적용 할 수 있습니다 기, 다른 사람에게, 사용자에게, 또는 모두에게. 당신은 그들에게 읽어 줄 수있는, 쓰기 및 실행 권한, 당신은 추가하거나 제거 할 수 있습니다 또는 정확히 세트를 할당 이 모델을 사용 권한. 우리는 무엇을 확인하려면 어떻게 파일 권한 방식은 무엇입니까? 우리는 변경 전에있어 실제로 알고 아마 좋은 파일 사용 권한은 무엇인지. 이렇게하는 한 가지 방법은 LS를 실행하는 것 하지만 그냥 조금 조정할. 그래서 입력하면 LS는 그만하면 대시 그것은 아마도 그만하면 소문자의 나는 이런 식으로 뭔가를 볼 수 있습니다. 그것은 조금 애매한 보이지만, 우리가 정말 관심있는 부분 저기 왼쪽에있는 물건이다. 즉 실제로 지정 파일 권한 방식. 이 때문에 그리고 당신은 아마 알 수 있습니다 R의,의 W 및 X 년대 산재을 얻었다. 그 첫 번째 three-- 첫번째 무시 두 번째,에 대한 어떤 우리는 다시 두 번합니다. 그 첫 세 이후 first-- 두 번째 때문에, 3 및 제 4 자 그 10 문자열의 당신이 가지고있는 권한이 있습니다. 그래서 분명히 내가 읽을 수 쓰기와 PHP를 실행합니다. 나는 읽기, 쓰기, 수 , PHP 경우 Webdev을 실행 내가 읽고 test.php 쓸 수 있습니다. 내 그룹은이 작업을 수행 할 수 있습니다. 그래서 분명히 PHP로 와 PHP 경우 Webdev 디렉토리, 내 그룹에 쓸 수 있습니다 그들하지만 아무것도. 그리고 세계는 아무것도 할 수 없습니다. 그래서 이러한 파일은 없습니다 공개적으로 액세스 할 수 내가하려하는 경우 그들에 액세스하고 나는하지 않았다 아파치를 실행하는 그들에 액세스 할 수 있도록하기 위해, 그때 나는 403 오류를 얻을 것입니다. 그것은 실패입니다. 나는 파일에 액세스하려고하지만 그것을 할 수있는 권한이 없습니다. 그리고 그 첫 번째 문자는 무엇인가? 글쎄, 당신은 아마 추정 할 수 있습니다 여기 디부의이 디렉토리를 참조하는 것이 그리고 대시를 말한다 "일반 파일을."소위 당신이했습니다 때 어쩌면 당신은 본 적이 RM을 사용하여 파일을 제거하기 위해 노력했다. 당신은 암호 같은 메시지를 본 적이 "일반 파일을 제거"-이 경우, 그것은 test.php 것. 일반 파일은 뭔가 그 디렉토리 아니다. 다른 사람의 몇 가지 있습니다 여기에, 그러나 일반적으로 당신은있어 D의 디렉토리를 볼 것 첫 번째 요소에 대해 아무것도. 하지만 정말 모든이의 IT이다. 당신은 파일을 확인할 수 있습니다 LS 대시 L을 사용 권한, 당신은 chmod를을 사용하여 변경할 수 있습니다. 그리고 물론, these-- 사용 권한 변경 이 MVC 패러다임을 적용하는 당신의 웹 사이트에 데이터를 보호 사용자를 허용하지 모든 액세스하려면 그들이 필요로하지만 물건 페이지의 순서에 액세스 할 수 당신이 원하는 방식으로 작업합니다. 나는 더그 로이드입니다. 이 CS50입니다.