1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> DAVID 마란 : 좋습니다. 3 00:00:12,360 --> 00:00:15,970 이것은 CS50,이입니다 주 아홉의 끝. 4 00:00:15,970 --> 00:00:18,560 그것은 이상 회오리 바람되었습니다 지난 몇 일. 5 00:00:18,560 --> 00:00:21,580 당신이 무릎 있다면 그리고 문제는, 일곱 설정 깊은 그것으로, 꽤 거기에 실현 6 00:00:21,580 --> 00:00:23,340 비트 새로운 것을 거기에 있습니다. 7 00:00:23,340 --> 00:00:26,660 그러나 우리는 조각 할 수없는 경우에 보자 모든 것을 여기에서 함께 간단히 8 00:00:26,660 --> 00:00:29,230 그 전에 아직 오프 기울고 다른 방향으로 보는 9 00:00:29,230 --> 00:00:30,510 다른 어디 우리가 갈 수 있습니다. 10 00:00:30,510 --> 00:00:32,630 >> 그래서 지금까지 우리는 HTML에 대해 이야기했습니다. 11 00:00:32,630 --> 00:00:33,740 우리는 CSS에 대해 이야기했습니다. 12 00:00:33,740 --> 00:00:34,705 우리는 PHP에 대해 이야기했습니다. 13 00:00:34,705 --> 00:00:36,520 당신은 SQL을 경험하기 시작했습니다. 14 00:00:36,520 --> 00:00:38,360 오늘, 우리는 조금 얘기하자 자바 스크립트에 대해. 15 00:00:38,360 --> 00:00:41,230 그러나 방법이 다른 모든 수행 언어는 서로 맞지? 16 00:00:41,230 --> 00:00:44,970 >> 그래서 우리는에 대해 지난 주 이야기 서버를 갖는 개념. 17 00:00:44,970 --> 00:00:48,470 그래서 그냥이 사각형을 그려 보자 여기에서 웹 서버 등. 18 00:00:48,470 --> 00:00:52,200 그리고 웹 서버는 반드시 파일을 제공합니다. 19 00:00:52,200 --> 00:00:54,640 그리고 그 파일 중 일부 HTML 파일이 될 수 있습니다. 20 00:00:54,640 --> 00:00:58,270 그래서 중 하나가 웹 서버 뱉어 수있는 것은 파일이있을 수 있습니다 그 21 00:00:58,270 --> 00:01:01,290 우리는 단지 다음과 같이 그릴 수 있습니다 일부 HTML을 포함. 22 00:01:01,290 --> 00:01:04,786 그래서 쉽게 설명하자면, 어떤 HTML은 당신이 할 수 있도록합니까? 23 00:01:04,786 --> 00:01:06,036 >> 청중 : 페이지보다 좋은. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> DAVID 마란 : OK, 페이지가 좋은 보이게, 내가 증명했다고 생각하지만, 26 00:01:12,310 --> 00:01:13,370 그 그렇지. 27 00:01:13,370 --> 00:01:18,250 따라서 HTML은 페이지의 레이아웃을 수 있습니까 구조적으로, 그리고 당신은 할 수 있습니다 28 00:01:18,250 --> 00:01:22,410 종류의 예술 페이지를 표시, 정적 콘텐츠를 마크 업 있도록 29 00:01:22,410 --> 00:01:23,640 다음 웹 브라우저로 볼 수 있습니다. 30 00:01:23,640 --> 00:01:24,690 >> 하지만 그 핵심입니다. 31 00:01:24,690 --> 00:01:26,130 그것은 정적 콘텐츠입니다. 32 00:01:26,130 --> 00:01:28,590 당신이 그것을 쓰기, 당신은 그것을 저장, 그 때 당신은 그것을 발송한다. 33 00:01:28,590 --> 00:01:31,130 그리고 웹 서버는 역할을 그것은 당신의 방문자까지. 34 00:01:31,130 --> 00:01:35,700 >> 그러나 우리는 다른를 사용하여 물건을 양식에 일치 모두 언어입니다. 35 00:01:35,700 --> 00:01:40,150 우리는 스타일 특성을 사용하기 시작 특정 태그에. 36 00:01:40,150 --> 00:01:43,400 그리고 스타일 속성은 우리가 설정할 수 있습니다 글꼴 크기와 색상 같은 것들. 37 00:01:43,400 --> 00:01:46,460 그리고 당신은 아마 발견하기 시작했습니다, 또는 당신은 곧 마지막에 대한 의지 38 00:01:46,460 --> 00:01:50,160 잠재적 프로젝트, 또 다른 당신은 CSS에서 사용할 수있는 속성. 39 00:01:50,160 --> 00:01:54,710 그래서 쉽게 설명하자면, 어떤 정말 그런 다음 CSS는합니까? 40 00:01:54,710 --> 00:01:57,810 사람들은 그 단지 예입니다. 41 00:01:57,810 --> 00:02:00,730 무엇 당신이 할 수 있도록 않는 HTML 것과하지 않는 것 42 00:02:00,730 --> 00:02:02,606 우리는 지금까지 본 적이? 43 00:02:02,606 --> 00:02:04,850 >> 청중 : 직접 스타일을 정의합니다. 44 00:02:04,850 --> 00:02:06,700 >> DAVID 마란 : 스타일을 정의 혼자서. 45 00:02:06,700 --> 00:02:10,280 그래서 같은 클래스 같은 것들을 정의 고유하게 발생, 또는 수도 46 00:02:10,280 --> 00:02:13,800 문서의 노드를 식별하므로 당신이 그들을 양식에 일치 할 수있다. 47 00:02:13,800 --> 00:02:16,890 그러나 더 구체적으로, 그 CSS에게 말할 것 정말 당신이 일을 할 수있는 48 00:02:16,890 --> 00:02:20,790 마지막 마일은 당신이 많은 것을 지정할 수 있습니다 더 정확하게 미학, 49 00:02:20,790 --> 00:02:24,340 대부분의 경우 HTML이 할 수있는 반면 당신은 당신의 페이지를 구성. 50 00:02:24,340 --> 00:02:27,310 >> 일부 디폴트는있다하더라도, 같은 우리의 태그를 보았다 51 00:02:27,310 --> 00:02:30,690 대략 말하기 제목 태그, 상황이 크고 대담했다. 52 00:02:30,690 --> 00:02:34,250 즉, 꽤 일반적인 정의의 태그 - 크고 대담한. 53 00:02:34,250 --> 00:02:35,260 무슨 글꼴 크기? 54 00:02:35,260 --> 00:02:36,080 무슨 색입니까? 55 00:02:36,080 --> 00:02:36,890 그 방법은 대담? 56 00:02:36,890 --> 00:02:39,830 그리고 CSS는 더 미세하게 당신을 수 그런 조정할 것. 57 00:02:39,830 --> 00:02:42,150 뿐만 아니라 레이아웃, 일부 등 의 설명했습니다. 58 00:02:42,150 --> 00:02:45,180 >> 솔직히, CSS 조금이다 지저분한 언어. 59 00:02:45,180 --> 00:02:48,370 그것은 당신이 할 수 있다는 점에서 매우 강력 당신은했습니다 말 그대로 어떤 웹 사이트 60 00:02:48,370 --> 00:02:51,880 그것으로 오늘 웹에서 볼 수 있습니다 만, 그것은 목에 통증의 일종이다. 61 00:02:51,880 --> 00:02:54,440 그리고 당신의 일부는 머리를 부딪 혔습니다 이미 단지 할 수있는 벽에 62 00:02:54,440 --> 00:02:58,560 센터 메뉴에 같은 멍청한 짓 당신이받은 한 경우 문제가 일곱 설정 63 00:02:58,560 --> 00:02:59,470 아직 그 시점. 64 00:02:59,470 --> 00:03:01,530 >> 하지만, 그 일을 실현 시간이 지남에 따라 더 쉽게. 65 00:03:01,530 --> 00:03:02,820 당신은 패턴을 발견하기 시작합니다. 66 00:03:02,820 --> 00:03:06,020 그리고 또, 구글은 당신의 친구가 될 것입니다 당신이 할 수있는 다양한 방법에 대한 67 00:03:06,020 --> 00:03:07,220 이러한 종류의 문제를 해결한다. 68 00:03:07,220 --> 00:03:11,520 >> 그리고 CSS로 감히 및 HTML보다 일반적으로, 당신의 문제를 해결할 수 있습니다 69 00:03:11,520 --> 00:03:15,910 많은 방법으로, 모두 매우 수도 잘 당신이 할 수있는 것보다, 정확 70 00:03:15,910 --> 00:03:18,900 C와 같은 뭔가도 현재 PHP 나 자바 스크립트. 71 00:03:18,900 --> 00:03:21,080 다른 단지 많습니다 물건을 배치하는 방법. 72 00:03:21,080 --> 00:03:22,570 >> 그러나 이것은하기 시작 지저분한, 우리는 말했다. 73 00:03:22,570 --> 00:03:26,480 다만 종류의 당신의 HTML을 혼합 방사 스타일 특성과 함께 CSS했다 74 00:03:26,480 --> 00:03:27,590 조금 엉성. 75 00:03:27,590 --> 00:03:31,460 그래서 우리는 대신에 일종의 말했다 추상적으로 말하자면, 당신이해야한다고 76 00:03:31,460 --> 00:03:34,050 적어도 요인에 시작 아마 당신의 CSS 중. 77 00:03:34,050 --> 00:03:37,430 안 스타일 속성,하지만 적어도 어떤 내부의 스타일 태그를 사용 78 00:03:37,430 --> 00:03:38,840 웹 페이지의 일부? 79 00:03:38,840 --> 00:03:39,560 >> 청중 : 머리. 80 00:03:39,560 --> 00:03:40,120 >> DAVID 마란 : 머리에. 81 00:03:40,120 --> 00:03:43,270 지금까지, 우리는 제목을 가지고 거기에,하지만 당신은 스타일을 추가 할 수 있습니다 82 00:03:43,270 --> 00:03:47,230 태그를, 당신은 대략 당신의 CSS를 넣을 수 있습니다 페이지 상단으로 말하기. 83 00:03:47,230 --> 00:03:52,550 그러나 우리는 한 단계 더 일을했다 우리는 더 많은 것을을 고려 84 00:03:52,550 --> 00:03:54,130 별도의 파일로. 85 00:03:54,130 --> 00:03:57,240 >> 그리고이 두 파일이 있었다 어떻게 든 지금 연결했다. 86 00:03:57,240 --> 00:03:59,550 그리고 실제로 그것은이었다 그 한 태그입니다. 87 00:03:59,550 --> 00:04:02,920 그리고 무엇 무엇보다 중요한 중 하나 우리의 CSS를 인수 분해를위한 동기 부여 88 00:04:02,920 --> 00:04:04,057 더욱? 89 00:04:04,057 --> 00:04:05,280 >> 청중 : 재사용. 90 00:04:05,280 --> 00:04:05,785 >> DAVID 마란 : 재사용. 91 00:04:05,785 --> 00:04:06,150 오른쪽? 92 00:04:06,150 --> 00:04:09,470 당신은 볼 수도 P-설정 이미 일곱 그 많은 페이지, 93 00:04:09,470 --> 00:04:12,260 구매 페이지, 판매 페이지, 포트폴리오 페이지는 아마 94 00:04:12,260 --> 00:04:13,550 다소 유사하게 구성. 95 00:04:13,550 --> 00:04:17,579 상단에 CS50 금융 로고가있다 당신은 그것을 변경하기로 결정하지 않았다면. 96 00:04:17,579 --> 00:04:19,839 에서 바닥 글이있다 페이지의 맨 아래. 97 00:04:19,839 --> 00:04:24,315 그리고 CSS는 다음을 인수 분해 할 수 있습니다 그것은 별도의 파일에 만약에 그래야 98 00:04:24,315 --> 00:04:27,780 당신은 세계적으로 뭔가를 변경하려면 귀하의 사이트 전체에 걸쳐, 당신은 할 수 실제로 99 00:04:27,780 --> 00:04:29,390 한 곳에서 변경할 수 있습니다. 100 00:04:29,390 --> 00:04:32,750 >> 하지만 당신은 잠재적으로 지불 가격이있다 인수 분해 한 것으로 101 00:04:32,750 --> 00:04:38,380 별도에 내 HTML 파일에서 CSS 그것을 참조하는 파일 102 00:04:38,380 --> 00:04:40,650 우리는 월요일에보고 태그. 103 00:04:40,650 --> 00:04:43,850 단점이 어떻게 될 수 있는가? 104 00:04:43,850 --> 00:04:48,830 우리가있을 때까지 일주일 전에 다시 생각 HTTP 및 TCP / IP와 방법에 대해 이야기 105 00:04:48,830 --> 00:04:52,070 인터넷이 작동합니다. 106 00:04:52,070 --> 00:04:53,530 여기 뭔가? 107 00:04:53,530 --> 00:04:54,730 >> 관객 : 그것은 더 많은 시간이 걸립니다. 108 00:04:54,730 --> 00:04:55,470 >> DAVID 마란 : 그것은 더 많은 시간이 걸립니다. 109 00:04:55,470 --> 00:04:56,750 왜? 110 00:04:56,750 --> 00:04:59,450 >> 대상 : [들림]. 111 00:04:59,450 --> 00:04:59,750 >> DAVID 마란 : 네. 112 00:04:59,750 --> 00:05:01,240 그래서 틀림없이 조금 더 시간이 소요됩니다. 113 00:05:01,240 --> 00:05:04,290 하나는, CSS는 분명히 있기 때문에 아니 같은 파일합니다. 114 00:05:04,290 --> 00:05:06,920 그래서 지금 당신이하지 않는 것을해야 한,하지만 두 요청. 115 00:05:06,920 --> 00:05:11,230 그리고 그 요청의 각 우리에서 보았 듯이 소위 Inspector에서 크롬, 116 00:05:11,230 --> 00:05:15,740 우리는 각각의 네트워크 탭을 보았다 이러한 파일 중 하나를 HTTP를 필요로 117 00:05:15,740 --> 00:05:18,360 우리가 걸립니다보고 요청 다소의 시간. 118 00:05:18,360 --> 00:05:19,290 지금, 어쩌면 그것은 많은 아니에요. 119 00:05:19,290 --> 00:05:20,670 어쩌면 그것은 단지 20 밀리 초입니다. 120 00:05:20,670 --> 00:05:22,260 아마 200 밀리 초입니다. 121 00:05:22,260 --> 00:05:25,530 >> 하지만, 페이스 북과 같은 페이지에 대한 생각 많이하거나 CNN, 또는 Google, 122 00:05:25,530 --> 00:05:28,060 우리가했습니다 예보다 큰 지금까지 바라 보았다. 123 00:05:28,060 --> 00:05:32,070 해당 페이지는 수십 개의 파일이있을 수 있습니다 이는 각각이 필요할 수 있습니다 124 00:05:32,070 --> 00:05:33,550 파일로 다운로드 할 수 있습니다. 125 00:05:33,550 --> 00:05:35,800 그래서 일 가능성이 있습니다 천천히 시작합니다. 126 00:05:35,800 --> 00:05:39,280 >> 특히 요즘 때 우리 모두가 우리의 주머니에 휴대 전화를 가지고 127 00:05:39,280 --> 00:05:43,010 느린 인터넷 연결이 필요 몇 가지, 몇 밀리 초를 기다립니다 128 00:05:43,010 --> 00:05:46,110 추가로 더 많은 밀리 초 파일이 실제로 속도가 느려질 수 있습니다. 129 00:05:46,110 --> 00:05:50,430 대기 시간을 설명하는 단어입니다 종류의 당신이 가지고있는 대기하는 당신 130 00:05:50,430 --> 00:05:53,110 기다릴 때 경험 정보의 일부 조각. 131 00:05:53,110 --> 00:05:54,430 >> 그러나 거꾸로가있다. 132 00:05:54,430 --> 00:05:56,600 그래서 모든 종류의 아닙니다 - 133 00:05:56,600 --> 00:05:58,170 실제로 여기 시소의 비트입니다. 134 00:05:58,170 --> 00:06:02,970 이제 단점,하지만 브라우저에서 할 수 있습니다 그들은 방지하기 위해 스마트 있다면 135 00:06:02,970 --> 00:06:08,870 같은 styles.css가 요청하지 파일을 다시 무엇을 할 수 있습니까? 136 00:06:08,870 --> 00:06:09,390 >> 이를 캐시. 137 00:06:09,390 --> 00:06:10,370 그래서 캐싱 - 138 00:06:10,370 --> 00:06:11,690 C-A-C-H-E - 139 00:06:11,690 --> 00:06:15,810 일반적으로 단지를 저장하기 위해 여기를 의미 당신이 처음 요청 된 파일과 140 00:06:15,810 --> 00:06:17,440 다음에 대한 캐시를 확인합니다. 141 00:06:17,440 --> 00:06:20,400 당신은 저장 용기의 일종입니다 확인 그리고 당신은 이미이있는 경우 142 00:06:20,400 --> 00:06:24,520 styles.css가 사본, 심지어 다른 경우 P 세트,​​ 또는 웹 사이트에있는 페이지 143 00:06:24,520 --> 00:06:28,560 요청은 다시 단지를주는 사용자가 동일한 캐시 된 복사본. 144 00:06:28,560 --> 00:06:30,140 를 요청 귀찮게하지 않습니다. 145 00:06:30,140 --> 00:06:32,560 >> 이 단점하지만, 여러분 중 일부 등 P-세트에 걸려 넘어있다. 146 00:06:32,560 --> 00:06:35,870 당신은 서버에서 변경 한 경우 당신은 브라우저로 돌아가서 147 00:06:35,870 --> 00:06:39,250 때때로 브라우저가 않습니다, 다시 당신은 호의와 귀찮게하지 않습니다 148 00:06:39,250 --> 00:06:43,660 귀하의 styles.css가 파일을 다시 다운로드 때문에, 제발, 확률은 무엇입니까 149 00:06:43,660 --> 00:06:47,620 이 페이스 북을 사용하는 이러한 스타일 시간에 시간을 변경하거나 예정 150 00:06:47,620 --> 00:06:48,140 하루 하루? 151 00:06:48,140 --> 00:06:48,800 그것은 꽤 낮은입니다. 152 00:06:48,800 --> 00:06:52,260 그들은 시간이 지남에 따라 변화하지만,하지 않을 수도 있습니다 분하거나 시간 있습니다. 153 00:06:52,260 --> 00:06:55,810 >> 웹을 할 때 속임수 그래서, 그냥 FYI 개발, 자주를 누르고 있습니다 154 00:06:55,810 --> 00:06:59,500 예를 들어 키를 이동하고 다음을 클릭합니다 브라우저에서 다시로드, 그 것이다 155 00:06:59,500 --> 00:07:03,280 일반적으로 브라우저의 새로 고침을 알려 모든, 당신이 이미 가지고있는 경우에도 156 00:07:03,280 --> 00:07:04,180 캐시에. 157 00:07:04,180 --> 00:07:06,630 그래서 다시 그나 및 단점, 하지만 그들 모두 158 00:07:06,630 --> 00:07:08,260 궁극적으로 디자인 결정. 159 00:07:08,260 --> 00:07:11,520 >> 그래서 지금, 우리가하지 않았다 여기에 이​​야기를 끝낸다. 160 00:07:11,520 --> 00:07:15,790 지금 되돌아 가서 다시하고 다시하고있는 경우 다시, 우리는 단지 소개하기 시작 161 00:07:15,790 --> 00:07:18,060 HTML,하지만 PHP. 162 00:07:18,060 --> 00:07:20,786 그래서 평신도의 관점에서, 어떤 PHP는 우리가하자합니까? 163 00:07:20,786 --> 00:07:22,770 >> 대상 : [들림]. 164 00:07:22,770 --> 00:07:24,258 >> DAVID 마란 : 저게 뭐죠? 165 00:07:24,258 --> 00:07:25,250 >> 대상 : 로직을 소개 코드로. 166 00:07:25,250 --> 00:07:26,620 >> DAVID 마란 : 그래, 소개 코드에 논리. 167 00:07:26,620 --> 00:07:29,570 그래서 진정한 프로그래밍 언어의 루프, 변수 및과 168 00:07:29,570 --> 00:07:32,620 함수, 조건, 그리고 모든 우리는 다시 길을 사용했던 것 169 00:07:32,620 --> 00:07:33,780 때 처음입니다. 170 00:07:33,780 --> 00:07:36,780 그리고 PHP는, 우리가 본 적이 사용할 수 있습니다 두 명령 줄에서 - 그것 171 00:07:36,780 --> 00:07:39,190 할 수있는 아무것도 할 필요가 없습니다 웹과, 심지어는 비록 172 00:07:39,190 --> 00:07:43,150 정말 그 기원과 그것이 무엇 경향 에서 좋은에 공헌 할 수 - 173 00:07:43,150 --> 00:07:47,130 하지만 당신은 자연에 의해 단순히 PHP를 사용할 수 있습니다 이 인쇄 ()를 가지고 있다는 사실의 174 00:07:47,130 --> 00:07:49,660 기능 및 printf의 () 함수 또는 에코 () 함수를 호출합니다. 175 00:07:49,660 --> 00:07:52,440 방법 큼 거기이다 PHP와 텍스트를 인쇄 할 수 있습니다. 176 00:07:52,440 --> 00:07:56,540 >> 따라서이 프로그램을 사용할 수 있습니다 정확히 출력 할 언어 177 00:07:56,540 --> 00:07:58,460 우리는 전에 무슨 얘기를했는지. 178 00:07:58,460 --> 00:08:01,360 당신은 동적으로 생성 할 수 있습니다 귀하의 HTML. 179 00:08:01,360 --> 00:08:02,300 어쩌면 그것의 모든. 180 00:08:02,300 --> 00:08:06,460 같은 어쩌면 당신은 하드 코드 것들 머리글 및 바닥 글 및 로고, 181 00:08:06,460 --> 00:08:07,950 당신의 스타일 시트 그 모든. 182 00:08:07,950 --> 00:08:11,190 그러나 P 세트 일곱와 같은 뭔가를, 당신은 주식을 조작하고 가는지 183 00:08:11,190 --> 00:08:14,690 하는 사용자의 포트폴리오를 보여주는 당신은 동적으로 변화하는 수 것 184 00:08:14,690 --> 00:08:18,960 확실히 PHP 해주는 논리를 사용 프로그래밍 언어로 당신에게 185 00:08:18,960 --> 00:08:22,320 출력은 동적 부분 집합 페이지. 186 00:08:22,320 --> 00:08:25,900 >> 그래서 당신은 동적 웹 사이트에 대해 이야기 할 때, 또는 웹 프로그래밍, 그건 187 00:08:25,900 --> 00:08:27,200 당신이 진정으로 무엇을 이야기하고 있습니다. 188 00:08:27,200 --> 00:08:31,450 PHP와 같은 언어 또는 물건을 사용하여 라는 파이썬이나 루비 또는 Java 또는 189 00:08:31,450 --> 00:08:35,900 데이터베이스를 쿼리 아직 다른 언어 자주, 또는 다른 서버 및 190 00:08:35,900 --> 00:08:38,580 다음 동적으로 HTML을 뱉어. 191 00:08:38,580 --> 00:08:42,470 >> 이제 최종 결과는, 옆으로,이다 대부분의 웹 사이트의 H​​TML, 192 00:08:42,470 --> 00:08:45,970 귀하의 P-세트 일곱 포함하면 아마 거대한 엉망하면 될 것 193 00:08:45,970 --> 00:08:48,060 당신은 소스를 보면 브라우저에서 코드입니다. 194 00:08:48,060 --> 00:08:49,010 그것은 큰 문제가 아니다. 195 00:08:49,010 --> 00:08:51,550 이 시점에서, 우리는 신경 때 스타일, 우리는 신경 196 00:08:51,550 --> 00:08:52,740 당신이 작성하는 물건. 197 00:08:52,740 --> 00:08:56,240 우리는 물건을 걱정하지 않습니다 어떤 코드를 출력합니다. 198 00:08:56,240 --> 00:08:59,520 그래서 들여 쓰기에 대해 걱정하지 마십시오 그건 PHP의 여기 경우 199 00:08:59,520 --> 00:09:01,190 실제로 물건을 출력. 200 00:09:01,190 --> 00:09:04,430 결국, 브라우저, 걱정하지 않습니다 그리고 인간은보고되지 않습니다 201 00:09:04,430 --> 00:09:05,400 소스에서 어쨌든. 202 00:09:05,400 --> 00:09:09,000 우리 직원은, 예를 들어, 것 귀하의 PHP에서 찾고. 203 00:09:09,000 --> 00:09:13,440 >> 그래서 나는 간단한 예를 지금 제공하자 왜 다른 사람의이 유용 할 수 있습니다. 204 00:09:13,440 --> 00:09:18,620 그래서 솔직히, 나는 마지막을 기억할 수 없다 내가있는 문제를 해결하기 위해 C를 사용하는 시간 205 00:09:18,620 --> 00:09:19,620 현실 세계. 206 00:09:19,620 --> 00:09:22,330 이 대학원에 아마 때 I는 언어를 사용할 필요가 있다고 207 00:09:22,330 --> 00:09:26,710 매우 낮은 수준이었고, 나에게 준 매우 높은 작업을 수행 할 수있는 기회 208 00:09:26,710 --> 00:09:30,720 정말 많은 CPU를 저장 수행 사이클 내가 할 수있는 등, 많은 부분에서 209 00:09:30,720 --> 00:09:33,990 나는 거대한 데이터 세트를 사용했기 때문에, 모든 CPU 사이클 카운트. 210 00:09:33,990 --> 00:09:37,750 솔직히, 심지어 전화와 같은 것들에 이 일 및 기타 장치 211 00:09:37,750 --> 00:09:39,910 당신은 아주 많은이없는 곳 메모리와는 사뭇이 없습니다 212 00:09:39,910 --> 00:09:44,160 많은 CPU, 빠른 언어를 사용하여 여전히 매력적입니다. 213 00:09:44,160 --> 00:09:47,290 >> 그러나 현실 세계에서, 때 그냥 에 함께 일부 프로그램을 드릴게요 214 00:09:47,290 --> 00:09:50,340 일부 데이터를 분석하거나, 수집 한 에 대한 등록의 전체 무리 215 00:09:50,340 --> 00:09:53,330 일부 학생 그룹과 당신이 매우 원하는 신속하게 이메일을 보내는 자동화 216 00:09:53,330 --> 00:09:56,240 있는 모든 사람들을 하나 하나 등록자, 당신이 도달하는거야 217 00:09:56,240 --> 00:09:59,240 더 높은 레벨의 언어 보다 C 말하자면. 218 00:09:59,240 --> 00:10:04,060 PHP 나 파이썬이나 루비 같은, 또는 존재 대여섯 사람 219 00:10:04,060 --> 00:10:04,550 요즘. 220 00:10:04,550 --> 00:10:07,200 하지만 그 세 개는 아마 지금 가장 트렌디 한. 221 00:10:07,200 --> 00:10:10,840 >> 그리고 이것이 의미하는 것은 당신이 열 수 있다는 것입니다 텍스트의 gedit 같은 편집기 또는 최대 222 00:10:10,840 --> 00:10:14,030 그냥 시작 후 다른 대부분의 아무것도 고민 할 필요없이 코드를 작성 223 00:10:14,030 --> 00:10:17,800 않고도 컴파일 약 정말 메모리 관리에 대한 걱정, 224 00:10:17,800 --> 00:10:20,820 하지만 염두에두고 그 작은 엉성함은 결국 다시 올 것이다 225 00:10:20,820 --> 00:10:24,790 데이터 세트가 얻는 경우에 당신을 물린 크거나 문제가 큰 가져옵니다. 226 00:10:24,790 --> 00:10:27,230 그러나이 수단 우리는 다음과 같다. 227 00:10:27,230 --> 00:10:29,860 >> 내가 가서 검사기를 실행하자 에서 문제가 여섯을 설정합니다. 228 00:10:29,860 --> 00:10:33,480 그래서 이것은 내 트라이 기반 구현 나는 큰에 사용한 229 00:10:33,480 --> 00:10:35,500 내가 잘하지 수행 보드. 230 00:10:35,500 --> 00:10:38,720 우리는 일주일의 시간에 돌아오고 있습니다 꼭대기 끝 않은 사람들을 다시 231 00:10:38,720 --> 00:10:40,430 우리의 마지막 강의에서 큰 보드. 232 00:10:40,430 --> 00:10:44,520 하지만 지금은 내가 앞서 그냥 가자 텍스트 내 솔루션을 실행하고, 우리는 할 수 있습니다 233 00:10:44,520 --> 00:10:48,460 킹 제임스 성경, 그리고 여기에 우리가 간다. 234 00:10:48,460 --> 00:10:51,080 >> 그래서 사람들은 가정의 모든 있습니다 중 맞춤법이 틀린 단어 235 00:10:51,080 --> 00:10:52,240 킹 제임스 성경. 236 00:10:52,240 --> 00:10:55,560 그리고 내 구현했다 총 절반 두 번째. 237 00:10:55,560 --> 00:10:58,270 이에 따라서도 나쁘지 않다 특정 컴퓨터. 238 00:10:58,270 --> 00:11:01,540 그러나 얼마나 많은 생각 코드를 내가 작성했다. 239 00:11:01,540 --> 00:11:02,880 여러분이 작성했던 코드의 양 생각합니다. 240 00:11:02,880 --> 00:11:06,170 당신이에서 보낸 몇 시간 생각 D-홀이나 기숙사 또는 어디에 241 00:11:06,170 --> 00:11:07,890 실제로 솔루션을 코딩. 242 00:11:07,890 --> 00:11:11,850 >> 음, 사실은 높은 수준이있는 경우 PHP와 같은 언어, 노트를 가지고 243 00:11:11,850 --> 00:11:13,350 나는 여기에서 무엇을 할 수 있는지. 244 00:11:13,350 --> 00:11:16,410 첫째,이 대신라고 가정 배포 코드입니다. 245 00:11:16,410 --> 00:11:17,790 이 검사기라는 파일입니다. 246 00:11:17,790 --> 00:11:20,220 그것은 오늘날의 일환으로 사용할 수의 배포 코드입니다. 247 00:11:20,220 --> 00:11:22,670 그리고 대부분에 내 손을 흔들거야 세부 사항,하지만 실제로의 248 00:11:22,670 --> 00:11:25,500 방법의 흥미로운 예 당신은 포트 언어를 수도 249 00:11:25,500 --> 00:11:28,870 PHP를 통해 C 등을들 수있다. 250 00:11:28,870 --> 00:11:33,420 말 그대로 두 개의 텍스트 창을 열어, speller.c 내 C 버전으로 하나, 251 00:11:33,420 --> 00:11:36,960 그리고 나는 단지로 번역하기 시작 내 PHP에 머리 및 사용하여 그것을 입력 252 00:11:36,960 --> 00:11:38,840 가장 비슷한 기능을합니다. 253 00:11:38,840 --> 00:11:40,100 >> 그래서 이런 것들 중 일부는 다릅니다. 254 00:11:40,100 --> 00:11:43,730 우리는 PHP를 사용하지 않는 마지막을 보았다 아주 동일한 방법으로 있습니다. 255 00:11:43,730 --> 00:11:47,050 그래도 일반적으로 필요합니다 등이 존재하지 않습니다. 256 00:11:47,050 --> 00:11:50,330 정의는 다소 다르다 #은 C에서 정의하지만 그건 257 00:11:50,330 --> 00:11:51,890 우리는 일정을 확인하는 방법. 258 00:11:51,890 --> 00:11:55,860 $, 그것은 PHP에 존재 밝혀 ARGC 그래서 우리는 그 전에 봤어요. 259 00:11:55,860 --> 00:11:58,650 이것은 단지 변수, 모든입니다 하는 달러 기호로 시작합니다. 260 00:11:58,650 --> 00:12:00,590 이들은 다만 무리입니다 리콜 점을 떠. 261 00:12:00,590 --> 00:12:03,970 >> , 당신은 환영 너무 오래 짧은 이야기입니다 이 넘기 호기심 경우,이는 262 00:12:03,970 --> 00:12:10,010 거의 라인을위한 라인 전환 PHP에 speller.c의 C 버전. 263 00:12:10,010 --> 00:12:12,630 그리고 당신은 다시이 작업을 수행 할 수 대여섯 다른 언어. 264 00:12:12,630 --> 00:12:14,910 >> 그러나 흥미로운 것은 이것이다. 265 00:12:14,910 --> 00:12:16,910 아니면 무슨 일이 솔직히 엉망이다 이입니다. 266 00:12:16,910 --> 00:12:20,790 내가 가서 약을 입력하자 난 dictionary.php 및 청구 267 00:12:20,790 --> 00:12:23,670 가서 다시 구현하는 것 문제는 여기에 여섯을 설정합니다. 268 00:12:23,670 --> 00:12:27,530 >> 그래서이에 먼저 제안하자 구현 될 파일 269 00:12:27,530 --> 00:12:30,550 PHP는, 그래서 나 같은 내 태그를 열 수 있습니다. 270 00:12:30,550 --> 00:12:34,780 나 자신에게 세계를 줘 보자 변수 $의 크기가 0을 가져옵니다. 271 00:12:34,780 --> 00:12:36,710 그리고 줄거야 자신 해시 테이블. 272 00:12:36,710 --> 00:12:38,110 나는이 일을 위해 해시 테이블을 사용합니다. 273 00:12:38,110 --> 00:12:42,070 어떻게 PHP에 해시 테이블을 선언합니까? 274 00:12:42,070 --> 00:12:42,990 완료. 275 00:12:42,990 --> 00:12:43,980 OK. 276 00:12:43,980 --> 00:12:48,870 >> 그래서 오픈 브래킷 대괄호 나타냅니다 우리가 본 것처럼 PHP에? 277 00:12:48,870 --> 00:12:51,850 배열 할 수 있지만, 배열 연관 배열합니다. 278 00:12:51,850 --> 00:12:54,320 연관 배열은 데이터 구조 것을 279 00:12:54,320 --> 00:12:55,860 값으로 키를 연결합니다. 280 00:12:55,860 --> 00:12:59,430 >> 이제 숫자 인덱스 간단한의 배열, 그 열쇠는 무엇인가? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 제로, 하나, 둘, 셋, 오른쪽? 283 00:13:03,960 --> 00:13:08,780 오래된 학교는 다시 C.에서 물건 그러나 수 또한 foo는, 바 같은 문자열 수, 284 00:13:08,780 --> 00:13:12,210 또는 맥스웰, 또는 같은 문자열입니다. 285 00:13:12,210 --> 00:13:14,240 그래서 나는 그것을 활용할 수 다만 순간. 286 00:13:14,240 --> 00:13:17,550 >> 내가 가서 선언하자 같은 함수 - 287 00:13:17,550 --> 00:13:19,020 의 첫 번째로드를 () 할 수 있습니다. 288 00:13:19,020 --> 00:13:20,690 그래서 기능 하중 (). 289 00:13:20,690 --> 00:13:23,440 그리고 PHP는 점에서 조금 다르다 당신은 말 그대로 기능을 입력하지만, 290 00:13:23,440 --> 00:13:24,930 반환 유형을 입력하지 마십시오. 291 00:13:24,930 --> 00:13:28,760 내가 가서 말 거​​라는 부하 () 함수에서해야 292 00:13:28,760 --> 00:13:31,000 인수 $ 사전, 단지 같은 C 버전은 않았다. 293 00:13:31,000 --> 00:13:32,510 나는 메모리에서 그 일을 해요. 294 00:13:32,510 --> 00:13:34,910 >> 그리고 난 것을 제안 이 작업을 수행하는 것. 295 00:13:34,910 --> 00:13:37,080 단순히 foreach는 할거야. 296 00:13:37,080 --> 00:13:40,710 나는라는 함수를 호출하는거야 그의 이름을 전달, 파일 () 297 00:13:40,710 --> 00:13:44,990 변수입니다, 파일 $ 단어로 $ 사전. 298 00:13:44,990 --> 00:13:49,410 그리고 내 여기 루프, 난의 내부 가서에 저장하려는 내 299 00:13:49,410 --> 00:13:57,440 $ 단어가 참 얻는다 $ 테이블. 300 00:13:57,440 --> 00:13:57,918 완료. 301 00:13:57,918 --> 00:14:01,264 아, 잠깐. 302 00:14:01,264 --> 00:14:02,422 완료. 303 00:14:02,422 --> 00:14:02,760 OK. 304 00:14:02,760 --> 00:14:04,970 >> 즉, 부하 () 함수 PHP에서 말한다. 305 00:14:04,970 --> 00:14:05,865 지금, 왜 작동합니까? 306 00:14:05,865 --> 00:14:07,010 그리고 종류는 여기에 바람을 피우고 있어요. 307 00:14:07,010 --> 00:14:09,980 >> 그래서, 하나, 우리는 보았다 FOREACH 잠시 시간입니다. 308 00:14:09,980 --> 00:14:13,680 그것은 당신이 반복 할 수 있음을 의미 내가 고생하지 않고 배열 309 00:14:13,680 --> 00:14:16,150 n 및 플러스 플러스, 그 모든. 310 00:14:16,150 --> 00:14:21,350 사전은 물론 파일 이름 크고 작은 같은 두 311 00:14:21,350 --> 00:14:22,830 우리가 지난 시간을 사용 사전. 312 00:14:22,830 --> 00:14:26,715 파일은 텍스트를 여는 기능입니다 파일 라인으로 라인을 읽고, 313 00:14:26,715 --> 00:14:29,840 당신이 거대한 배열을 다시 손, 그 각각의 요소 인 314 00:14:29,840 --> 00:14:31,340 해당 파일의 라인. 315 00:14:31,340 --> 00:14:36,040 그래서 fopen을의 조합, 그리고 FREAD, 루프 및 fclose를하는 동안, 316 00:14:36,040 --> 00:14:37,080 그리고 그 모든. 317 00:14:37,080 --> 00:14:40,150 단어는 단지 수단으로서 마지막으로, 그의 변수는 난에 액세스 할거야 318 00:14:40,150 --> 00:14:41,890 이 루프의 모든 반복에. 319 00:14:41,890 --> 00:14:46,910 >> 그래서 한마디로, 여기 하나 라이너는 의미 이름이있는 파일을 열어 320 00:14:46,910 --> 00:14:50,750 사전, 변수는 반복 그 줄의 선, 그리고 당신이 얻을 때마다 321 00:14:50,750 --> 00:14:54,290 변수라는 단어 라인, 저장, 다음 단어로 작업을 수행합니다. 322 00:14:54,290 --> 00:14:55,280 나는 무엇을 하시겠습니까? 323 00:14:55,280 --> 00:14:58,110 내 해시 테이블에 단어를 넣을. 324 00:14:58,110 --> 00:15:00,860 >> 글쎄, 난 뭔가를 넣을 수 있습니다 내 다만 C에서 같은 테이블을 해시 325 00:15:00,860 --> 00:15:02,140 대괄호를 사용하여. 326 00:15:02,140 --> 00:15:03,660 이것은 내 해시 테이블의 이름입니다. 327 00:15:03,660 --> 00:15:07,180 그 해쉬에 인덱스에 갈거야 이 위치에서 표. 328 00:15:07,180 --> 00:15:08,920 그래서 제로 브라켓없는, 하나의 브라켓 없습니다. 329 00:15:08,920 --> 00:15:11,990 브라켓 인용을 끝 맺다 뭔가, 무엇이든 그 단어입니다. 330 00:15:11,990 --> 00:15:15,200 그리고 당신을 좋아하는가에있을 수 있습니다 당신의 해시 테이블 작업 트라이, 당신은 상점 331 00:15:15,200 --> 00:15:17,650 효과적으로 부울 암시 또는 명시 적으로. 332 00:15:17,650 --> 00:15:18,260 완료. 333 00:15:18,260 --> 00:15:20,000 나는 값이 true 저장하고 있습니다. 334 00:15:20,000 --> 00:15:23,150 >> 이제 몇 가지가있다 여기에 모서리를 절단하고 있습니다. 335 00:15:23,150 --> 00:15:27,720 기술적으로,이있을거야 의 끝 부분에 짜증나는 새로운 라인, / N, 336 00:15:27,720 --> 00:15:28,820 이러한 각각의 단어. 337 00:15:28,820 --> 00:15:31,770 그래서 아마 PHP 함수를 호출한다 라고 잘라 ()하는 것 338 00:15:31,770 --> 00:15:33,460 말 그대로 그 잘라낼. 339 00:15:33,460 --> 00:15:35,020 그리고 실제로 필요 다른 하나의 일을. 340 00:15:35,020 --> 00:15:38,380 아마 각각의 크기를 증가한다 반복, 그래서 추적을 유지하고있어 341 00:15:38,380 --> 00:15:39,560 세계적으로 그것이 무엇의. 342 00:15:39,560 --> 00:15:43,180 솔직히, 이것은 중 하나입니다 당신이 있다면 PHP의 나쁘지 측면, 343 00:15:43,180 --> 00:15:46,950 전역 변수를 사용하여, 당신이 필요합니다 명시 적으로 당신이 말할 수 있습니다. 344 00:15:46,950 --> 00:15:51,670 그래서 사실은 세계에 입력거야 지금 $ 크기, 글로벌 $ 테이블 및 345 00:15:51,670 --> 00:15:52,690 내 기능이 완료됩니다. 346 00:15:52,690 --> 00:15:57,475 >> 그래서 확실히 이전과 간단하지만 아마 C 이하의 시간이 걸렸습니다 347 00:15:57,475 --> 00:15:58,220 버전, 아마? 348 00:15:58,220 --> 00:15:58,730 OK. 349 00:15:58,730 --> 00:16:00,390 >> 그래서 지금의이 체크 () 함수를 수행 할 수 있습니다. 350 00:16:00,390 --> 00:16:04,300 이 이상했다 있는지 보자 이 C. 그래서 우리를했다 끝에 시간 351 00:16:04,300 --> 00:16:06,500 내가 가서 선언하자 함수로 확인. 352 00:16:06,500 --> 00:16:09,070 인, 인수 단어에 걸린다 철자에서 온 것. 353 00:16:09,070 --> 00:16:13,410 그리고 난 그냥 확인하는거야 경우 다음 변수 ISSET, 테이블 354 00:16:13,410 --> 00:16:18,400 단어의 브라켓하여 strtolower - 355 00:16:18,400 --> 00:16:20,590 의 내 괄호를 모두 균형있게 - 356 00:16:20,590 --> 00:16:24,275 다음 true를 반환합니다. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 다른 - 359 00:16:28,460 --> 00:16:30,330 정말 힘들었다 이 프로그램의 일부입니다. 360 00:16:30,330 --> 00:16:31,940 그렇지 않으면, false를 반환합니다. 361 00:16:31,940 --> 00:16:32,630 완료. 362 00:16:32,630 --> 00:16:33,460 즉, () 확인합니다. 363 00:16:33,460 --> 00:16:34,520 >> 자, 왜이 작동합니까? 364 00:16:34,520 --> 00:16:37,040 음, 하나는 내가 단어에 전달 하는 문자열입니다. 365 00:16:37,040 --> 00:16:41,400 둘째, 난 해시 내부 알아보고 있어요 $ 테이블라는 테이블. 366 00:16:41,400 --> 00:16:45,470 나는 호출하여 소문자로 그것을 강요 해요 에서 () tolower를 매우 유사한 기능 367 00:16:45,470 --> 00:16:48,580 C,하지만 전체 단어를 않습니다, 아니 하나의 문자. 368 00:16:48,580 --> 00:16:52,680 그리고 거기 즉 설정되면 값 즉, 설정되고, 369 00:16:52,680 --> 00:16:54,880 그게 사실이라면, 다음 네, 이 단어입니다. 370 00:16:54,880 --> 00:16:56,530 내가 부하가 넣어 있기 때문에 (). 371 00:16:56,530 --> 00:16:59,100 그렇지 않은 경우, 나는 false를 반환하겠습니다. 372 00:16:59,100 --> 00:17:00,090 >> 이제 다른 사람은 쉽습니다. 373 00:17:00,090 --> 00:17:03,570 기능 크기 (), 나는이 방법을합니까? 374 00:17:03,570 --> 00:17:05,230 나는 기본적으로 $ 크기를 반환 할. 375 00:17:05,230 --> 00:17:07,770 하지만 기술적으로 필요 이 성가신 일을. 376 00:17:07,770 --> 00:17:10,640 실제로 듣고까지, 나는 절단 된 너무 많은 한 구석. 377 00:17:10,640 --> 00:17:12,920 정말 글로벌 $ 테이블을 할 필요가있다. 378 00:17:12,920 --> 00:17:16,260 >> 그러나 고 말했다되는) 언로드있다. 379 00:17:16,260 --> 00:17:17,380 언로드 ()은 놀랍습니다. 380 00:17:17,380 --> 00:17:20,500 기능 언로드 (). 381 00:17:20,500 --> 00:17:23,990 어떻게) (언로드를 구현하고 싶어? 382 00:17:23,990 --> 00:17:25,079 완료. 383 00:17:25,079 --> 00:17:25,450 OK. 384 00:17:25,450 --> 00:17:28,900 >> 그래서 (), 메모리 관리가 언로드 완전하게 당신을 위해 알아서 385 00:17:28,900 --> 00:17:31,800 PHP와 많은 같은 높은 레벨의 언어. 386 00:17:31,800 --> 00:17:32,600 그래서이 놀랍습니다. 387 00:17:32,600 --> 00:17:36,080 도대체 우리가 과거를 보냈다 않은 이유와 같은 C 쓰기에 여덟 플러스 주 388 00:17:36,080 --> 00:17:41,030 외관상으로는 아주 천천히, 정말 시간 수십 시간과 소모 문제 389 00:17:41,030 --> 00:17:42,530 우리의 벨트에서 작동? 390 00:17:42,530 --> 00:17:46,110 >> 음, 한 가지,이 작동하지 않을 수 있습니다 작은 프로그램에 대한 벌금. 391 00:17:46,110 --> 00:17:47,840 그것은 확실히 가속화 내 개발 시간. 392 00:17:47,840 --> 00:17:49,790 그러나 이제 어떻게되는지 보자 현실 세계에서. 393 00:17:49,790 --> 00:17:52,370 >> 날이 디렉토리로 가자 터미널 창에서. 394 00:17:52,370 --> 00:17:53,370 철자가있다. 395 00:17:53,370 --> 00:17:56,570 그리고 옆으로 통지, 당신은 수도 설정 문제이 발생했습니다 396 00:17:56,570 --> 00:17:58,190 여섯이나 문제가 일곱을 설정합니다. 397 00:17:58,190 --> 00:18:01,610 당신은 엄격 필요가 없습니다 . PHP와 PHP 파일을 종료합니다. 398 00:18:01,610 --> 00:18:05,250 당신의 그 처음과 같은 줄을 추가하는 경우 맨 위에, 즉 특별한 라인의 399 00:18:05,250 --> 00:18:10,980 구문의 본질적 의미 찾기 PHP를 호출하고 그것을 사용하는 프로그램 400 00:18:10,980 --> 00:18:12,270 이 파일을 해석한다. 401 00:18:12,270 --> 00:18:15,410 그래서 지금 아무도 정말 알고 나는 PHP 프로그램을 실행하고 있습니다. 402 00:18:15,410 --> 00:18:19,860 나는 것처럼 단지 그것을 실행할 수 있습니다 뭔가 C에서 컴파일 된 403 00:18:19,860 --> 00:18:20,650 >> 하지만, 여기에 일이다. 404 00:18:20,650 --> 00:18:21,600 사실, 다시 한 번이 작업을 수행 할 수 있습니다. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 철자가있다. 407 00:18:25,390 --> 00:18:26,720 OK, 0.44 초. 408 00:18:26,720 --> 00:18:28,080 그것은 빨리이 시간을 얻었다. 409 00:18:28,080 --> 00:18:29,745 >> 이제 PHP 버전으로 가자. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 좋은 터치. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 그러나 얼마나 많은 시간을 생각한다 나는 근무 시간에 저장. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 OK. 416 00:18:57,790 --> 00:19:01,020 >> 그래서 3.59 초, 어떤 사실 하나 정확한 소리를하지 않습니다. 417 00:19:01,020 --> 00:19:03,710 하지만, 긴 이야기를 짧은 때문이다 당신은 엄청난 금액을 인쇄 할 때 418 00:19:03,710 --> 00:19:06,840 물건의 화면에, 그 자체가 느려진다. 419 00:19:06,840 --> 00:19:11,260 정말의 CPU를했다 무엇 어플라이언스는 3.59 초에 있었다 420 00:19:11,260 --> 00:19:15,260 0.44했다 C에 대비 초 가장 최근에. 421 00:19:15,260 --> 00:19:17,620 즉, 진정의 명령이다 다른 크기. 422 00:19:17,620 --> 00:19:20,280 >> 어디 그 가격이오고있다? 423 00:19:20,280 --> 00:19:21,790 이유는 너무 느리다? 424 00:19:21,790 --> 00:19:24,220 왜 PHP는 저조한 수행합니까? 425 00:19:24,220 --> 00:19:25,242 다니엘? 426 00:19:25,242 --> 00:19:26,550 >> 청중 : 당신은하지 않았다 정말 해시 테이블을 사용한다. 427 00:19:26,550 --> 00:19:27,710 >> DAVID 마란 : 정말하지 않았다 해시 테이블을 사용한다. 428 00:19:27,710 --> 00:19:28,760 그래서 나는 종류의했다. 429 00:19:28,760 --> 00:19:29,870 그래서 연관 배열입니다. 430 00:19:29,870 --> 00:19:33,650 대부분의 경우 PHP에서 사람들이하는 경우 정말 똑똑, 그들은 아래에 사용 431 00:19:33,650 --> 00:19:39,520 구현 후드 실제 해시 테이블 C 또는 C + +와 같은 뭔가. 432 00:19:39,520 --> 00:19:41,290 그러나. 433 00:19:41,290 --> 00:19:42,760 그래. 434 00:19:42,760 --> 00:19:44,010 >> 청중 : [청취]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> DAVID 마란 : 네. 437 00:19:47,080 --> 00:19:50,780 그래서 지금 내가 쓴 각각의 기능 - 실제로, 당신은 말할 수있는 그 한 번 더 438 00:19:50,780 --> 00:19:51,480 조금 더 크게? 439 00:19:51,480 --> 00:19:54,509 >> 대상 : 각 기능이 당신이 포함되어 더 많은 전체 440 00:19:54,509 --> 00:19:56,610 용량보다 - 441 00:19:56,610 --> 00:19:57,550 >> DAVID 마란 : 그래서 매우 사실입니다. 442 00:19:57,550 --> 00:20:01,490 우리가 걸 더 많은 오버 헤드가있다 정말 만에 초점을 맞춤으로써 표시되지 443 00:20:01,490 --> 00:20:03,730 난 그냥 쓴 dictionary.php. 444 00:20:03,730 --> 00:20:08,020 대조적으로, 전체 인터프리터 거기 백그라운드에서 진행. 445 00:20:08,020 --> 00:20:12,040 사실,이 프로그램을 실행하면, 컴파일 된 0과 1을 실행하지 않은 446 00:20:12,040 --> 00:20:14,290 내 인텔 CPU를위한 설계. 447 00:20:14,290 --> 00:20:19,270 오히려 선으로 라인을 실행중인 정확히 보이는 PHP 코드 448 00:20:19,270 --> 00:20:20,350 처럼 우리는 그것을 입력했습니다. 449 00:20:20,350 --> 00:20:22,475 그리고 당신에게 사용할 때마다 해석 언어, 당신은 450 00:20:22,475 --> 00:20:23,850 실제로이 가격을 지불 않습니다. 451 00:20:23,850 --> 00:20:27,010 그것은 읽을 시간이 걸릴 것 하단에 파일의 상단, 왼쪽 452 00:20:27,010 --> 00:20:30,740 오른쪽하고 각 실행 선 또 다시. 453 00:20:30,740 --> 00:20:34,250 >> 지금 현실에서, 특히 웹, 실제로이 프로세스를 신속하게 처리 할 수​​ 있습니다 454 00:20:34,250 --> 00:20:38,660 의 결과를 캐싱하여 PHP 코드를 해석된다. 455 00:20:38,660 --> 00:20:41,640 그리고는, 웹에 의미가 있기 때문에 당신은 하나의 사용자처럼하지 않은 경우 456 00:20:41,640 --> 00:20:46,300 나를 여기에,하지만 1,000 만 사용자, 다음 파일이 아마 처음 457 00:20:46,300 --> 00:20:49,050 액세스는 그 후 천천히,하지만 그것은 훨씬 더 빠릅니다. 458 00:20:49,050 --> 00:20:51,000 >> 그러나이도 다시 무역 꺼져 있습니다. 459 00:20:51,000 --> 00:20:53,870 그리고 연구 데이터와 같은 뭔가 설정, 또는 같은 큰 뭔가 460 00:20:53,870 --> 00:20:58,330 이, 사용자는 결국 것입니다 그 감속을 느낄 시작합니다. 461 00:20:58,330 --> 00:21:02,670 >> 그래서 한마디로, 언어가 해석 , 유행에 매우 인기, 그리고 462 00:21:02,670 --> 00:21:06,710 솔직히 언어 당신이 아마 문제를 풀 때 도달한다 463 00:21:06,710 --> 00:21:08,200 CS50 이후. 464 00:21:08,200 --> 00:21:12,720 하지만 실제로 당신이있어 얼마나 실현 후드 아래에 부여 복용 465 00:21:12,720 --> 00:21:15,910 해시 정말 그 지난 몇 주 동안 테이블, 나무와 시도, 466 00:21:15,910 --> 00:21:20,770 궁극적으로 실제로 사용되는 오픈 브래킷과 같은 것들을 구현 467 00:21:20,770 --> 00:21:24,200 대괄호, 이는 우리가 지금 할 수 부여를 위해 기꺼이 걸릴. 468 00:21:24,200 --> 00:21:26,360 >> 그럼 이제 살펴 보겠습니다 이 웹 컨텍스트에서. 469 00:21:26,360 --> 00:21:29,890 그리고이 있다는 것을 지난 시간에 언급 PHP의 슈퍼 전역의 무리가 470 00:21:29,890 --> 00:21:32,490 정말 관련이없는 명령 줄에서. 471 00:21:32,490 --> 00:21:36,210 그들은 상황에 더 많은 관련성이 의 웹 환경에서 PHP를 사용하여. 472 00:21:36,210 --> 00:21:41,220 그래서 순서로 웹 서버에 PHP를 실행 HTML과 같은 물건을 생성 할 수 있습니다. 473 00:21:41,220 --> 00:21:44,540 >> 그리고 우리는 $ _GET과 $ _POST 훑어하고, 그 위치를 자동으로 사용자의 474 00:21:44,540 --> 00:21:49,100 당신이 제출하는 경우 입력이 간단하게 끝납니다 로 끝나는 파일을 형성한다. 웹에서 PHP는 475 00:21:49,100 --> 00:21:50,460 기기와 같은 서버. 476 00:21:50,460 --> 00:21:53,310 하지만 그건에서 간략하게 살펴 보자 $의 _COOKIE와 $ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> 쉽게 설명하자면, 쿠키로 무엇인가 당신은 문맥에서 이해 478 00:21:56,670 --> 00:21:58,220 웹을 사용하고 계십니까? 479 00:21:58,220 --> 00:21:59,450 >> 대상 : 컴퓨터에 파일. 480 00:21:59,450 --> 00:21:59,920 >> DAVID 마란 : 네. 481 00:21:59,920 --> 00:22:03,500 그것은 사용자의 컴퓨터에있는 파일의 정보 어떤 웹 사이트에 심어 482 00:22:03,500 --> 00:22:04,410 당신이 방문하는 일. 483 00:22:04,410 --> 00:22:07,334 그래서 당신은 당신이 갈 페이스 북에 갈 때 당신이가는 bankofamerica.com에 484 00:22:07,334 --> 00:22:10,330 google.com에, 당신은 거의 모든에 갈 때 세계 웹 사이트 요즘, 485 00:22:10,330 --> 00:22:14,850 cs50.net 포함, 쿠키가 심어 져 컴퓨터에서하는 것입니다 486 00:22:14,850 --> 00:22:19,800 에 RAM에 저장된 값도 당신의 브라우저의 메모리 또는 컴퓨터에 487 00:22:19,800 --> 00:22:22,800 때로는 참으로 파일 저장 하드 드라이브에. 488 00:22:22,800 --> 00:22:26,960 >> 그리고 일반적으로 해당 파일에 어떻게 저장되어 사용자 이름, 아닌 아닙니다 489 00:22:26,960 --> 00:22:31,060 암호, 일반적으로하지 뭔가 민감한 웹 사이트는 그렇게하지 ​​않는 한 490 00:22:31,060 --> 00:22:35,040 자신의 안전과 좋은 것이 아니라 그것은 큰 고유 식별자 중 하나입니다 491 00:22:35,040 --> 00:22:35,680 다른 것들. 492 00:22:35,680 --> 00:22:38,920 그것은 심어 큰 임의의 수의 사용자 컴퓨터하지만 당신은 생각할 수 493 00:22:38,920 --> 00:22:42,740 에서 같은 종류의 가상 핸드 스탬프 클럽이나 일부 놀이 공원이 494 00:22:42,740 --> 00:22:47,160 수있는 직원, 그것의 소유자 서비스,​​ 당신이 누군지 기억. 495 00:22:47,160 --> 00:22:51,030 큰 난수처럼이 경우 12345678, 그 분명히 비록 496 00:22:51,030 --> 00:22:54,180 등이 너무 랜덤하지, 생각 핸드 스탬프 당신은 방문 할 때 497 00:22:54,180 --> 00:22:57,930 facebook.com 처음으로, 그들은 당신의 손에 그 번호를 각인. 498 00:22:57,930 --> 00:23:01,510 그리고 당신은 당신은 HTTP를 구사하기 때문에 브라우저되고, 때문에 페이스 북 499 00:23:01,510 --> 00:23:06,440 분명히 웹과 동일한 시군 서버 프로토콜 HTTP는 말한다 그 500 00:23:06,440 --> 00:23:09,930 언제든지 이후 방문 facebook.com, 그것의 여부를 제 501 00:23:09,930 --> 00:23:13,560 나중에 시간 후, 심지어 다음 날, 그래서 당신이 명시 적으로하지 않은 것처럼 502 00:23:13,560 --> 00:23:17,050 로그 아웃, 어느 효과적으로 손을 씻는 것과 같습니다. 503 00:23:17,050 --> 00:23:20,280 HTTP는 당신이 존재해야한다고 말했습니다하여 핸드 스탬프 때마다 504 00:23:20,280 --> 00:23:22,020 해당 웹 사이트로 돌아갑니다. 505 00:23:22,020 --> 00:23:24,390 >> 페이스 북은 그들이 무엇입니까 않습니다 그 손 스탬프를보고 506 00:23:24,390 --> 00:23:26,850 그들은 123456789, 오, 말한다. 507 00:23:26,850 --> 00:23:30,260 나는 첫눈에 모르는이 데이비드 마란 케임브리지입니다 508 00:23:30,260 --> 00:23:34,690 매사 추세 츠,하지만 그들은 확인할 수 있습니다 그들의 데이터베이스와 말 오, 사람 509 00:23:34,690 --> 00:23:39,930 그의 컴퓨터 우리는 123456789를 심어에 데이비드 마란, 케임브리지에서입니다 510 00:23:39,930 --> 00:23:40,440 매사추세츠. 511 00:23:40,440 --> 00:23:46,000 의 자신의 프로필을 해당 사용자를 표시하자 페이지 또는 자신의 뉴스 피드. 512 00:23:46,000 --> 00:23:49,660 >> 그러나 한 가지 문제가있다이 경우 웹이 실제로 작동하는 방법이다. 513 00:23:49,660 --> 00:23:51,390 이제 간단한 예제를 살펴 보도록하자. 514 00:23:51,390 --> 00:23:55,190 의 실제 facebook.com 말을 가자. 515 00:23:55,190 --> 00:23:58,130 우리가 거​​기에 갈 수 전에,하자 내가 가서 크롬을 열어 516 00:23:58,130 --> 00:23:59,790 여기 관리자 아래. 517 00:23:59,790 --> 00:24:01,140 내가 네트워크 탭을 살펴 보자. 518 00:24:01,140 --> 00:24:06,020 그리고 지금의이 가서 입력하자 https://facebook.com합니다. 519 00:24:06,020 --> 00:24:09,410 우리가보고되지 않도록 그리고 그 일을 해요 그 리디렉션 및 폐기물의 모든 520 00:24:09,410 --> 00:24:10,660 그 시간을 통해 찾고. 521 00:24:10,660 --> 00:24:12,690 내가 입력 나갑시다. 522 00:24:12,690 --> 00:24:13,130 >> 좋아. 523 00:24:13,130 --> 00:24:14,580 우리는 요청의 전체 무리를 참조하십시오. 524 00:24:14,580 --> 00:24:15,640 페이스 북이 제공됩니다. 525 00:24:15,640 --> 00:24:16,930 파일의 전체 무리가있다. 526 00:24:16,930 --> 00:24:19,290 그리고 여기, 내 기재의 당 대기 마지막으로, 그건 527 00:24:19,290 --> 00:24:21,240 HTTP 요청을 많이. 528 00:24:21,240 --> 00:24:23,700 그러나 첫 번째는 아마도 가장 흥미로운. 529 00:24:23,700 --> 00:24:26,420 >> 그럼 여기에서 아래로 스크롤시켜, 나는 두 번째의 확대합니다. 530 00:24:26,420 --> 00:24:29,090 이 종류의 될 것입니다 엉망, 그러나 보자. 531 00:24:29,090 --> 00:24:31,660 페이스 북은 우리에게 보내는 물건의 전체 무리. 532 00:24:31,660 --> 00:24:33,490 >> 하지만 워, 흥미. 533 00:24:33,490 --> 00:24:37,880 그들은없는 한,하지만 네 심기입니다 여기에 내 손 위에 손 스탬프. 534 00:24:37,880 --> 00:24:40,400 설정 - 쿠키 설정 - 쿠키 설정 쿠키, 설정 쿠키. 535 00:24:40,400 --> 00:24:44,030 그리고 몇 가지 기능이 여기에있다. 536 00:24:44,030 --> 00:24:46,170 그들 모두는 몇 가지를 언급 만기 종류. 537 00:24:46,170 --> 00:24:50,090 페이스 북은 기대하고있다처럼 그것은 보인다 2015까지 나를 기억합니다. 538 00:24:50,090 --> 00:24:53,670 그래서 아마 시간이되는 나는 로그 아웃해야 또는 그들은 단지거야 539 00:24:53,670 --> 00:24:55,710 자동으로 난 가정 돌아 오지 않아. 540 00:24:55,710 --> 00:24:57,840 그래서 실제로 괜찮은의 시간. 541 00:24:57,840 --> 00:24:59,170 >> 그리고 다른이 있습니다 상황이 여기에 간다. 542 00:24:59,170 --> 00:25:03,036 이 쿠키는 강제로 나타납니다 그것은 1970 년에 만료 말에 의해 삭제 543 00:25:03,036 --> 00:25:04,460 쿠키가 존재하기 전에. 544 00:25:04,460 --> 00:25:06,510 따라서 브라우저가 단지 것입니다 OK 가정, 그처럼 545 00:25:06,510 --> 00:25:07,910 손 스탬프를 세척. 546 00:25:07,910 --> 00:25:11,240 >> 하지만 지금은 내 브라우저 만들 때 후속 요청 - 547 00:25:11,240 --> 00:25:14,340 내가 가서 이렇게하자 또 다시로드. 548 00:25:14,340 --> 00:25:18,170 지금 나에게로 다시 이동하자 상단 요청 및 아래로 이동 549 00:25:18,170 --> 00:25:20,760 여기에, 헤더를 요청합니다. 550 00:25:20,760 --> 00:25:21,390 이 알 수 있습니다. 551 00:25:21,390 --> 00:25:25,280 그래서 지금은하지 응답 헤더에서 해요, 하지만 요청 헤더를 말한다 확인할 수 있습니다. 552 00:25:25,280 --> 00:25:29,220 그리고 그 통지의 일환으로 내 브라우저 다시로드 타격 후 그 요청이 553 00:25:29,220 --> 00:25:32,780 다음 적어도 전송 정보. 554 00:25:32,780 --> 00:25:34,670 설정되지 않음 - 쿠키,하지만 쿠키. 555 00:25:34,670 --> 00:25:38,750 그래서이 라인, HTTP 헤더 때문에 내 브라우저 종류이고, 말하자면 556 00:25:38,750 --> 00:25:43,340 내 그것을 제시 모르고 내 페이스 북의 검사를 위해 손을. 557 00:25:43,340 --> 00:25:46,020 >> 그래서 이러한 쿠키는 할 수있다 무엇을 위해 그 사용? 558 00:25:46,020 --> 00:25:49,420 당신이 누구인지 기억하거나 기억하는 방법 여러 번 당신은 거기, 또는 한 559 00:25:49,420 --> 00:25:50,280 정말 아무것도. 560 00:25:50,280 --> 00:25:52,742 >> 그래서 여기 counter.php입니다. 561 00:25:52,742 --> 00:25:53,780 그리고 나 글꼴을 확대 할 수 있습니다. 562 00:25:53,780 --> 00:25:58,380 그리고이 페이지 통지를 다시로드 할 때마다 그것은 기억 얼마나 많은 시간 563 00:25:58,380 --> 00:25:59,250 나는 거기에 갔었습니다. 564 00:25:59,250 --> 00:26:00,570 글쎄, 그건 모두 인상적인 아니다. 565 00:26:00,570 --> 00:26:03,140 , 그냥 해당 탭을 닫을 수 있도록 그리고 이제 다시 가자 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> 아, 재미있다. 568 00:26:08,970 --> 00:26:10,960 아직 심지어 기억 내가 탭을 닫았지만. 569 00:26:10,960 --> 00:26:14,010 솔직히, 나는 브라우저를 닫을 경우, 올바른 방법으로 구현하는 경우, I 570 00:26:14,010 --> 00:26:18,950 여전히 사용자인지 기억할 수 그 또는 그녀는 누가 처음이고, 571 00:26:18,950 --> 00:26:22,840 한 번만 나는 크롬의 메뉴로 이동하는 여기에 여기에, 그리고 이동 572 00:26:22,840 --> 00:26:25,990 역사 및 인터넷 사용 정보 삭제를 클릭 당신의 일부에있을 수로 573 00:26:25,990 --> 00:26:33,050 과거, 그런 후에 만​​ 쿠키 실제로 웹 중에 삭제 574 00:26:33,050 --> 00:26:33,970 개발. 575 00:26:33,970 --> 00:26:35,340 >> 그래서, 우리가 갈 경우 - 576 00:26:35,340 --> 00:26:37,080 여기서 gedit를 가까이하자. 577 00:26:37,080 --> 00:26:38,910 그리고 우리는이 파일에 지금 이동합니다. 578 00:26:38,910 --> 00:26:44,210 나에게로 가자 우리 가상 호스트 / 로컬 호스트 / 공공, 나를하자 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 이 사랑스러운 주목 간단한 프로그램. 581 00:26:48,350 --> 00:26:50,250 그것은 매우 간단한 웹 사이트입니다. 582 00:26:50,250 --> 00:26:51,770 >> 따라서 파일의 맨 그냥 의견입니다. 583 00:26:51,770 --> 00:26:54,930 하지만, 여기에 당신이 할 수있다 새로운 라인의 , P-설정 일곱 이미 보았다 584 00:26:54,930 --> 00:26:56,000 때 session_start (). 585 00:26:56,000 --> 00:27:00,380 이것은 PHP 코드의 라인입니다 본질적으로, 웹 서버 확인 지시 586 00:27:00,380 --> 00:27:03,400 손을 스탬프와 확인하십시오 손 스탬프를 확인하십시오. 587 00:27:03,400 --> 00:27:06,810 즉, 모든 라인이하는, 그리고 그것을 우리를 위해 그 과정을 모두 수행합니다. 588 00:27:06,810 --> 00:27:09,510 그럼 난 그냥있어주의 여기에 두 가지. 589 00:27:09,510 --> 00:27:14,150 만약이 내부 카운터 키 라는 특별한 전역 변수 590 00:27:14,150 --> 00:27:18,010 $ _SESSION 설정한다 - 즉, 일부 값이이 있다면 - 591 00:27:18,010 --> 00:27:22,440 의이 그것을 얻을 수 있도록하고 로컬에 저장 변수 $ 카운터했다. 592 00:27:22,440 --> 00:27:27,000 또,의 원 카운터를 할당 할 수 기본값 인 0. 593 00:27:27,000 --> 00:27:30,320 >> 지금 여기에 PHP의 한 측면이다 축복과 저주. 594 00:27:30,320 --> 00:27:32,080 PHP는 조금 엉성하다. 595 00:27:32,080 --> 00:27:35,160 그래서 반면 C에서, 어떤 것 카운터의 범위는왔다 596 00:27:35,160 --> 00:27:36,725 하나는 여기에 또는 여기에? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> 그것은 밀폐 된 것 그 중괄호에. 599 00:27:41,690 --> 00:27:42,090 무엇을 추측? 600 00:27:42,090 --> 00:27:46,920 PHP에서, 심지어는 사람들의 외부에 존재 중괄호, 여기, 그리고 여기, 601 00:27:46,920 --> 00:27:49,120 여기, 여기, 그리고 도 아래로 아래. 602 00:27:49,120 --> 00:27:52,400 그래서 나는이 점에서 축복이라고 당신은 생각하지 않는 것이 603 00:27:52,400 --> 00:27:54,070 우리는 주 전에했던 하드로. 604 00:27:54,070 --> 00:27:56,880 그러나 그것은 또한의 저주 약간의 당신의 변수를 사용하여 상관없이 605 00:27:56,880 --> 00:28:00,020 PHP,이 같은 프로그램에서 적어도, 그것은을 위해 전 세계적으로 접근 가능 606 00:28:00,020 --> 00:28:01,170 좋든 나쁘 든. 607 00:28:01,170 --> 00:28:06,130 그래서 당신은 지금 명심해야 당신의 변수는 정의되지 않을 수 있습니다. 608 00:28:06,130 --> 00:28:07,640 당신은 다른 곳을 정의 할 수도 있습니다. 609 00:28:07,640 --> 00:28:09,460 >> 하지만 제가 궁극적으로해야 돼? 610 00:28:09,460 --> 00:28:13,160 그 세계의 내부에 저장하는거야 의 값으로 변수 611 00:28:13,160 --> 00:28:17,060 카운터 결과를 키 입력 카운터에 1을 더한 일. 612 00:28:17,060 --> 00:28:18,910 그래서 이것은 단지 산술 그 수행 613 00:28:18,910 --> 00:28:20,590 해당 카운터의 점진. 614 00:28:20,590 --> 00:28:24,850 내가 저장하고있어 사실 그 다시 여기에있는 값은 의미 615 00:28:24,850 --> 00:28:29,970 기본적으로 데이터베이스를 업데이트 사용자 123456789이되었음을 기억 616 00:28:29,970 --> 00:28:31,010 여기에 두 번. 617 00:28:31,010 --> 00:28:33,780 그리고 다음 번 다시 할 때 페이지를 다시로드, 그것은 확인할 것 618 00:28:33,780 --> 00:28:36,710 내 손 스탬프와 오, 말, 사용자 123456789 지금이 619 00:28:36,710 --> 00:28:38,410 세 시간은 여기에 있었다. 620 00:28:38,410 --> 00:28:43,390 >> 그리고 어떤 PHP와 유사한 언어 우리를 위해하고있는 것은 그들이 계산하는 것입니다 621 00:28:43,390 --> 00:28:47,720 방법과 장소 밖으로 얼마 동안 이 특별한의 값을 저장하는 622 00:28:47,720 --> 00:28:48,830 전역. 623 00:28:48,830 --> 00:28:52,750 이 전역 다음 I 페이지가 일종의 마술이다 방문 624 00:28:52,750 --> 00:28:57,440 미리 채워진 그 값으로 채워 당신이 마지막으로 방문한 것은이 있었다 625 00:28:57,440 --> 00:29:02,310 두 번째 전인지 여부, 주 전, 또는 2013 년과 우리가 지금 얘기 626 00:29:02,310 --> 00:29:03,790 2015에 대한. 627 00:29:03,790 --> 00:29:07,600 PHP와 웹 서버가 알아서 당신을 위해 모든의. 628 00:29:07,600 --> 00:29:08,850 >> 대상 : [들림]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> DAVID 마란 : PHP의 변수가있다 당신이하지 않으면 기본적으로 항상 글로​​벌 631 00:29:15,760 --> 00:29:18,400 , 함수의 내부를 선언 그리고 그들은에 로컬 632 00:29:18,400 --> 00:29:19,420 기능 만. 633 00:29:19,420 --> 00:29:22,300 하지만 난 작성하지했기 때문에 함수는, 그들은 지금 효과적이다 634 00:29:22,300 --> 00:29:25,090 여기에 내 모든 파일에 걸쳐 세계. 635 00:29:25,090 --> 00:29:26,040 >> 대상 : 방법이 그들이 현지 만드는 방법? 636 00:29:26,040 --> 00:29:28,470 >> DAVID 마란 : 어떤이 있는가 그들이 현지 만드는 방법은? 637 00:29:28,470 --> 00:29:30,680 함수 만에 그들을 배치하여. 638 00:29:30,680 --> 00:29:32,790 그 중 최신 버전 PHP, 당신은이 작업을 수행 할 수 있습니다 639 00:29:32,790 --> 00:29:34,130 익명 함수. 640 00:29:34,130 --> 00:29:35,930 의 그것에 대한하지만 더 자바 스크립트의 컨텍스트입니다. 641 00:29:35,930 --> 00:29:37,260 하지만 짧은 대답은 no입니다. 642 00:29:37,260 --> 00:29:40,888 더 이상 대답은 '예'입니다. 643 00:29:40,888 --> 00:29:42,380 좋은. 644 00:29:42,380 --> 00:29:43,380 좋은 퀴즈 질문입니다. 645 00:29:43,380 --> 00:29:43,930 좋아. 646 00:29:43,930 --> 00:29:47,760 >> 그래서 마지막으로, 페이지 자체는 실제로 매우 간단하다. 647 00:29:47,760 --> 00:29:51,470 한번 기억, PHP 모드를 종료 통지 그이 물건 아래의 648 00:29:51,470 --> 00:29:53,700 아래는 다만 침을 얻을 수있다 브라우저.에 익지 649 00:29:53,700 --> 00:29:57,050 내가 보내려 때문에 어느, 괜찮습니다 사용자가 어떤 HTML,하지만 난 싶어 650 00:29:57,050 --> 00:29:59,140 동적으로 해당 HTML을 업데이트합니다. 651 00:29:59,140 --> 00:30:03,930 그리고 내가 할 수있는 한 가지 방법은 정렬 할 수 있습니다 의 매우 빠르게 PHP로 다시 드롭 652 00:30:03,930 --> 00:30:07,730 모드, 오픈 브래킷 물음표 이용 다음 등호 및 출력 값 653 00:30:07,730 --> 00:30:08,650 카운터. 654 00:30:08,650 --> 00:30:12,360 >> 또는 조금 이상한 보인다면,이 등호은 실제로 일부입니다 655 00:30:12,360 --> 00:30:16,190 이에 대한 구문 설탕 printf를 (카운터). 656 00:30:16,190 --> 00:30:19,160 하지만 솔직히 그건 좀 추한 그리고 약간의 고민을 입력합니다. 657 00:30:19,160 --> 00:30:23,660 그래서 PHP는 매우 친절이 기능을 제공합니다 당신은 다만 그것을 말할 수있는 658 00:30:23,660 --> 00:30:25,450 간결 같은 방법으로한다. 659 00:30:25,450 --> 00:30:26,940 >> 그래서 밑으로 일어나고 후드? 660 00:30:26,940 --> 00:30:31,210 네트워크 보면 빨리하자 counter.php 여기 탭을 클릭합니다. 661 00:30:31,210 --> 00:30:35,090 그리고 내가 앞으로하고 처음으로 가자 의는 쿠키를 취소 할 수 있습니다. 662 00:30:35,090 --> 00:30:38,670 이후하자의 브라우저 데이터 삭제 시간의 시작. 663 00:30:38,670 --> 00:30:39,680 이제 여기에 다시 가자. 664 00:30:39,680 --> 00:30:41,340 이제이 페이지를 다시로드 할 수 있습니다. 665 00:30:41,340 --> 00:30:42,170 그리고 제로 돌아 왔어요. 666 00:30:42,170 --> 00:30:44,810 나의 손 스탬프는 세척 되었기 때문에, 지금은 새 쿠키를 얻을. 667 00:30:44,810 --> 00:30:48,780 >> 내가 네트워크 탭을 보면 참 경우 통지, 응답 헤더를 보면 668 00:30:48,780 --> 00:30:51,960 어플라이언스는 날을 보내는 것을 이름이 어쩐지 쿠키 669 00:30:51,960 --> 00:30:55,820 의 임의하지만 종류 합리적 PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 그리고이 정말 날을 보내는 것 큰 임의의 숫자. 671 00:30:58,440 --> 00:30:59,440 꽤 숫자 아니다. 672 00:30:59,440 --> 00:31:00,390 꽤 진수 아닙니다. 673 00:31:00,390 --> 00:31:03,600 그것은 영숫자 어떤 종류의 하지만 아마도 그것은 임의의. 674 00:31:03,600 --> 00:31:06,830 그리고 이렇게에 손 스탬프입니다 내가 말하는 겁니다 것을 말한다. 675 00:31:06,830 --> 00:31:11,960 >> 그런 다음 다시로드를 클릭 한편 경우 내 두 번째이 두 번째 줄에 보면 676 00:31:11,960 --> 00:31:17,600 요청 지금 알이 내 요청 헤더 PHPSESSID가이 같음 포함 677 00:31:17,600 --> 00:31:19,390 없는 설정 쿠키,하지만 단지 쿠키입니다. 678 00:31:19,390 --> 00:31:22,950 그리고 그것은 내 브라우저의 프레 젠 테이션의 나의 손 스탬프. 679 00:31:22,950 --> 00:31:28,820 >> 그래서 지금 맛보기로, 우리는 더 이야기 할 것 일주일 정도이 있지만, 약 680 00:31:28,820 --> 00:31:31,590 어떤 방법이 당신을하지 않습니다 취약 Facebook 계정 681 00:31:31,590 --> 00:31:34,137 취약, 그리고 기타 계정 취약? 682 00:31:34,137 --> 00:31:35,510 >> 대상 : 누군가가 쿠키가있는 경우. 683 00:31:35,510 --> 00:31:36,750 >> DAVID 마란 : 그래, 만약 누군가가 쿠키가 있습니다. 684 00:31:36,750 --> 00:31:39,920 나는 진심으로 일부처럼, 진정한 의미 같은 클럽에서 시도했을 수 있습니다 685 00:31:39,920 --> 00:31:44,030 놀이 공원, 당신이 뭔가를하려고하면 다음과 같이이기는하지만, 스탬프를 복사합니다 686 00:31:44,030 --> 00:31:47,560 거꾸로 다른 사람의 손 위에, 그리고 그 또는 그녀가로 제시 687 00:31:47,560 --> 00:31:53,250 자신의, 그것은 실제로 보면 않는 경우 다음과 동일, 123456789, 웹 688 00:31:53,250 --> 00:31:57,980 서버는 분명히 그냥가는 해당 사용자는 것을 믿습니다. 689 00:31:57,980 --> 00:32:01,450 >> 그리고 이것은 참으로 중요한 요소입니다 위협 쿠키를 사용하는 시간 690 00:32:01,450 --> 00:32:05,420 때문에 사람은 너무 스푸핑 경우 무엇 밖으로 쿠키, 인물 이야기 691 00:32:05,420 --> 00:32:08,660 진정으로 그것을 복사하는 중 하나에 의해 컴퓨터를 보면서 692 00:32:08,660 --> 00:32:09,890 그리고 OK처럼되고있다. 693 00:32:09,890 --> 00:32:14,520 다윗의 쿠키 JJ3JIK하고 등등, 그리고 그들은 알만큼 똑똑 694 00:32:14,520 --> 00:32:18,080 의 정렬 방법을 수동으로 그 전송 브라우저에서 또는에서 쿠키 695 00:32:18,080 --> 00:32:22,350 그들이 쓰는 프로그램, 그들은 완전히 수 당신과 같은 웹 사이트에 로그인합니다. 696 00:32:22,350 --> 00:32:28,560 그것은 힘든 척하는 것이 아니다 다른 사람이 우리가 P 세트를 다시하지 않는 697 00:32:28,560 --> 00:32:30,790 무엇을 소개 두? 698 00:32:30,790 --> 00:32:32,065 >> 대상 : 암호화. 699 00:32:32,065 --> 00:32:33,860 >> DAVID 마란 : 약간 암호화 비트. 700 00:32:33,860 --> 00:32:36,550 최소한의 간단한 암호화, 표준 버전,하지만 암호화 701 00:32:36,550 --> 00:32:36,870 그럼에도 불구하고. 702 00:32:36,870 --> 00:32:37,410 덜. 703 00:32:37,410 --> 00:32:41,440 당신은 모두를 암호화하는 경우 그래서 그것은 밝혀 뭔가를 사용하여이 헤더를하는 당신 704 00:32:41,440 --> 00:32:48,770 지금은 친하게 SSL로 알고 있습니다, 보안 소켓 계층 또는 https:// URL을 705 00:32:48,770 --> 00:32:51,890 다음 이러한 것들을 우리 모두가 있었어요 에서이기는 것은 실제로 암호화 706 00:32:51,890 --> 00:32:54,800 이것은 당신처럼 것을 의미합니다 손에 스탬프를 읽을 수 없습니다. 707 00:32:54,800 --> 00:32:59,350 만 facebook.com는, 할 수있다, 또는 google.com 또는,이 경우 제품 수 708 00:32:59,350 --> 00:33:00,550 그 손 스탬프를 참조하십시오. 709 00:33:00,550 --> 00:33:04,020 >> 비극적하지만, 다시이는 NSA 물건을 가진 모든 너무 적절한 710 00:33:04,020 --> 00:33:06,410 늦게도 SSL을 깨뜨릴 수 있습니다. 711 00:33:06,410 --> 00:33:09,850 그리고 그것은 실제로 어렵지 않다 그 암호를 해독도 있습니다. 712 00:33:09,850 --> 00:33:12,040 , 암호화 크래킹에 의해 너무 많이하지 그러나를 속여 713 00:33:12,040 --> 00:33:15,720 해독에 브라우저 데이터를 중간. 714 00:33:15,720 --> 00:33:17,880 그러나 다시, 우리는 당신을 애타게 것 그 전에 오래 함께. 715 00:33:17,880 --> 00:33:21,242 지금은 그냥 두려워합니다. 716 00:33:21,242 --> 00:33:23,070 그것은 사실의 비극적 종류입니다. 717 00:33:23,070 --> 00:33:23,760 >> 좋아. 718 00:33:23,760 --> 00:33:27,910 그럼, 여기서 지금 우리를 떠나지 않습니다? 719 00:33:27,910 --> 00:33:29,010 음,이 해 보자. 720 00:33:29,010 --> 00:33:31,790 이제 가서 빠른 보자 우리가 휴식을 맛보기 전에. 721 00:33:31,790 --> 00:33:33,790 그리고 나는 우리가 조금 더 남아있을 거라 생각 오늘, 그러나 우리는에 뛰어들거야 722 00:33:33,790 --> 00:33:37,850 뭔가 아주 새로운 섹시한, 어떤 것 더를위한 당신의 식욕을 자극. 723 00:33:37,850 --> 00:33:38,950 그래서 맛보기입니다. 724 00:33:38,950 --> 00:33:41,520 >> 그래서 SQL, 우리는 얘기를 시작했다 아무리 짧게 시간입니다. 725 00:33:41,520 --> 00:33:44,670 당신은 정말 당신의 손이 더러운거야 P-설정 일곱에있는 그것의 일부. 726 00:33:44,670 --> 00:33:46,480 그리고 쉽게 설명하자면, 어떤 SQL을 수행 - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 당신을 위해? 729 00:33:49,850 --> 00:33:50,310 그것은 무엇입니까? 730 00:33:50,310 --> 00:33:51,546 그래. 731 00:33:51,546 --> 00:33:53,240 >> 청중 : 당신의 데이터에 액세스하자. 732 00:33:53,240 --> 00:33:53,360 >> DAVID 마란 : 네. 733 00:33:53,360 --> 00:33:55,120 그것은 당신의 데이터에 액세스 할 데이터베이스. 734 00:33:55,120 --> 00:33:56,710 쿼리 언어를 구조적. 735 00:33:56,710 --> 00:33:59,890 그리고 이것은 본질적으로 프로그래밍 언어입니다. 736 00:33:59,890 --> 00:34:03,400 그것의 기능이 있습니다 그 우리는 심지어 클래스에서 사용하지 않습니다. 737 00:34:03,400 --> 00:34:04,710 하지만 당신은 효과적으로 할 수 함수를 정의합니다. 738 00:34:04,710 --> 00:34:06,870 그들은 저장이라 불리는 SQL 절차. 739 00:34:06,870 --> 00:34:09,860 그러나 우리는 매우 간단하고 그냥 계속 거 몇 가지 기본적인 작업에 사용 740 00:34:09,860 --> 00:34:14,320 , 데이터를 선택하는 데이터를 삽입처럼 데이터를 업데이트하고, 데이터를 삭제. 741 00:34:14,320 --> 00:34:17,400 >> 그리고 당신이 정말로 데이터베이스 생각할 수있는, SQL 데이터베이스와 같은, 그냥 742 00:34:17,400 --> 00:34:18,800 Microsoft Excel을 주도했습니다. 743 00:34:18,800 --> 00:34:21,989 SQL 관계형 참조하기 때문에 데이터베이스 곳 744 00:34:21,989 --> 00:34:23,480 관계는 단지 테이블을 의미합니다. 745 00:34:23,480 --> 00:34:24,739 행과 열. 746 00:34:24,739 --> 00:34:27,929 그러니 당신은 스프레드 시트에 넣을 수 있습니다 이 나 구글 문서 도구와 같은, 747 00:34:27,929 --> 00:34:32,460 당신은 SQL 데이터베이스에 넣을 수 테이블을 선언하여. 748 00:34:32,460 --> 00:34:34,800 >> 지금, 당신은 어떻게 실제로 액세스합니까 그 내용은? 749 00:34:34,800 --> 00:34:38,239 음, 명령 또는 이 같은 질의. 750 00:34:38,239 --> 00:34:40,199 SELECT, INSERT, UPDATE 및 DELETE. 751 00:34:40,199 --> 00:34:44,489 그리고 대부분의 경우, 사람들은이 아르 당신이해야합니다 네 만 성분 752 00:34:44,489 --> 00:34:47,370 아주 강력하게 뭔가를 문제의 칠을 설정합니다. 753 00:34:47,370 --> 00:34:49,940 >> 이제 그 시절에, 당신은 실제로 것 의 데이터베이스와 상호 작용 754 00:34:49,940 --> 00:34:52,730 흑인과 백인 터미널 창 다음과 같은 프롬프트가 나타나면. 755 00:34:52,730 --> 00:34:56,370 그리고 우리는 실행중인 데이터베이스 어플라이언스 인 MySQL의 호출 756 00:34:56,370 --> 00:34:58,560 무료 및 오픈 소스 데이터베이스 엔진. 757 00:34:58,560 --> 00:35:02,240 당신이 구글과 위키 피 디아에게 읽는다면 기사, 당신은 이름이 있음을 알 수 있습니다 758 00:35:02,240 --> 00:35:05,060 일부 전환의 비트 리눅스 버전. 759 00:35:05,060 --> 00:35:10,460 마리아 데이터베이스는 실제로 MySQL을 말하자면 포크. 760 00:35:10,460 --> 00:35:12,740 >> 긴 이야기를 짧게, 오라클은 MySQL을 샀다. 761 00:35:12,740 --> 00:35:13,870 오라클은 큰 회사입니다. 762 00:35:13,870 --> 00:35:17,010 사람들은 까봐 걱정되었습니다 더 이상, 확실히 오픈 소스 남아 763 00:35:17,010 --> 00:35:20,930 그래서 이것은의 MySQL의 단지 사본입니다 여전히 무료 여전히 오픈 소스 및 764 00:35:20,930 --> 00:35:23,550 기본적으로 페도라 리눅스에 설치. 765 00:35:23,550 --> 00:35:26,130 >> 그러나 이것은에있는 고통의 종류 에 익숙해하는 목 766 00:35:26,130 --> 00:35:27,310 데이터베이스이 방법. 767 00:35:27,310 --> 00:35:30,560 그래서 우리는 CS50 어플라이언스에 포함 라는 무료 오픈 소스 도구 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin을. 769 00:35:31,700 --> 00:35:33,940 그냥 우연의 일치가 그것은 PHP로 작성된 것. 770 00:35:33,940 --> 00:35:36,450 근본적인가 없습니다 여기에 PHP를 위해 필요합니다. 771 00:35:36,450 --> 00:35:40,090 그러나 이것은 단지 웹 기반 도구입니다 우리는 설치, 무료로 다운로드 772 00:35:40,090 --> 00:35:43,850 우리가 할 수있는기구, 그래픽 사용자 인터페이스가 어떤 773 00:35:43,850 --> 00:35:48,610 P-설정 일곱 데이터베이스와 탐험 어느 새 데이터베이스를 만들려면 774 00:35:48,610 --> 00:35:51,980 자신의 마지막 프로젝트에 대해 말을 당신이하려는 경우 등을들 수 있으며, 궁극적으로 만들 775 00:35:51,980 --> 00:35:55,900 CS50 금융과 같은 동적 웹 사이트 데이터를 조회 할 수 있도록하고 776 00:35:55,900 --> 00:35:58,140 데이터를 동적으로 업데이트 할 수 있습니다. 777 00:35:58,140 --> 00:36:01,420 >> 당신은 사용할 필요하지 않을거야 그냥 간단한 텍스트 파일 또는 CSV. 778 00:36:01,420 --> 00:36:05,950 당신은 실제로 스마트 데이터베이스를 사용할 수 있습니다 당신은 더 많은 프로그램을 실행할 수 있도록 779 00:36:05,950 --> 00:36:10,240 그냥 읽는 것보다 복잡한 쿼리 선형 적으로 모든 것을 통해. 780 00:36:10,240 --> 00:36:14,150 >> 그래서 예를 들어, 이것은 우리가주는 것입니다 P-설정 일곱의 상자 밖으로 당신. 781 00:36:14,150 --> 00:36:18,280 이것은 분명히 이상이있는 테이블 그 중 하나는 세 개의 열, 782 00:36:18,280 --> 00:36:21,450 이름 중 하나는, 해시 다른 어느은 ID입니다. 783 00:36:21,450 --> 00:36:26,200 >> 그러나 흥미로운 것은, 단지에 여기에 생각을 애타게, 사용자 이름 784 00:36:26,200 --> 00:36:29,270 바로, 아마도 이미 고유? 785 00:36:29,270 --> 00:36:31,190 내 말은, 대부분의 모든 웹 사이트, 경우 당신은 거기, 이름이 786 00:36:31,190 --> 00:36:32,370 두 시저스 수 없습니다. 787 00:36:32,370 --> 00:36:33,440 두 malans가 될 수 없습니다. 788 00:36:33,440 --> 00:36:34,950 두 jharvards가 될 수 없습니다. 789 00:36:34,950 --> 00:36:35,600 독특한. 790 00:36:35,600 --> 00:36:38,610 그렇지 않으면 몰라하는 jharvard 실제로입니다. 791 00:36:38,610 --> 00:36:42,710 그래서도에 대한 동기 부여가 될 수 있습니다 왼쪽에서 세 번째 열을 갖는 792 00:36:42,710 --> 00:36:46,970 과 같은 존재라는 ID, 마찬가지로 고유의 번호? 793 00:36:46,970 --> 00:36:51,300 그것은 약간의 중복을 느낀다 첫눈에 날에. 794 00:36:51,300 --> 00:36:54,910 왜 가지고 강력한 수 있습니다 뿐만 아니라 고유 한 사용자 이름, 795 00:36:54,910 --> 00:36:56,837 고유 번호뿐만 아니라? 796 00:36:56,837 --> 00:36:59,460 >> 독자 : 그들은 가질 수 같은 암호를 입력합니다. 797 00:36:59,460 --> 00:37:01,720 >> DAVID 마란 : 사람들이있을 수 있습니다 같은 암호를 확인합니다. 798 00:37:01,720 --> 00:37:03,900 즉, 절대적으로 일어날 수 있습니다. 799 00:37:03,900 --> 00:37:08,270 그러나이 독특한 이름이있는 경우, I 그 정말하지 않는 주장 800 00:37:08,270 --> 00:37:11,630 문제 때문에 그들이에 입력하면 자신의 사용자 이름 만 검사 할 필요가 자신의 801 00:37:11,630 --> 00:37:15,060 암호, 그 자신의 해시입니다. 802 00:37:15,060 --> 00:37:15,970 왜 또? 803 00:37:15,970 --> 00:37:17,950 >> 청중 : 빠른 탐색. 804 00:37:17,950 --> 00:37:18,680 >> DAVID 마란 : 빠른 탐색. 805 00:37:18,680 --> 00:37:19,548 왜? 806 00:37:19,548 --> 00:37:21,460 >> 청중 : ID는 하나입니다. 807 00:37:21,460 --> 00:37:24,040 >> DAVID 마란 : ID는 하나의 문자, 또는 더 정확히 말하면, 그것은 다수의 정보, 808 00:37:24,040 --> 00:37:26,910 그래서 아마 32 비트의 또는 그런 일. 809 00:37:26,910 --> 00:37:30,270 반면에 사용자 이름, 분명히 제이슨 허쉬 호른의 최대 종류의가 810 00:37:30,270 --> 00:37:33,900 엄청나게 긴, 그리고 것 문자열로 나에게 더 많은 시간을 811 00:37:33,900 --> 00:37:40,910 어쩌면 H-I-R-S-C-H-H-O-R-N을 비교하고, 위해 같은 / 0 또는 뭔가, 812 00:37:40,910 --> 00:37:45,100 반대로, 제이슨를 찾기 위해 단지 말을하는 것은 나에게 사용자의 두 번째를 제공합니다. 813 00:37:45,100 --> 00:37:46,510 즉, 32 비트입니다. 814 00:37:46,510 --> 00:37:48,550 그것은 하나 INT의 그 당신이 비교해야합니다. 815 00:37:48,550 --> 00:37:52,150 그리고 사실, 그건 이유를 정확하게 데이터베이스 에 고유 ID를 할당하는 경향이 816 00:37:52,150 --> 00:37:53,710 그 행. 817 00:37:53,710 --> 00:37:56,280 >> 이제 다른 데이터 유형은 무엇입니까가 분명히 INT 게다가 818 00:37:56,280 --> 00:37:57,160 이 같은 문자열? 819 00:37:57,160 --> 00:37:59,700 음, 더 적절한 될, 같은 SQL 데이터베이스, 820 00:37:59,700 --> 00:38:02,060 MySQL은, CHAR 필드가 있습니다. 821 00:38:02,060 --> 00:38:05,320 그리고 CHAR 약간의 오해 하나의 CHAR 없습니다. 822 00:38:05,320 --> 00:38:10,290 MySQL 데이터베이스의 CHAR 필드는 하나 이상의 문자, 그러나 그것은의 823 00:38:10,290 --> 00:38:11,780 문자의 고정 된 수의. 824 00:38:11,780 --> 00:38:15,710 >> 그래서 예를 들면, 나는에 갈 경우, 당신은 이미 나있다 phpMyAdmin을로 825 00:38:15,710 --> 00:38:21,340 곧 문제가 일곱 설정, 그리고 난 갈 것이다 내 데이터베이스에, 그냥 재미를 위해, 826 00:38:21,340 --> 00:38:25,700 의라는 새 테이블을 만들 수 있습니다 단지 두 개의 열 테스트합니다. 827 00:38:25,700 --> 00:38:27,160 그런 다음 이동을 클릭합니다. 828 00:38:27,160 --> 00:38:30,070 그리고 이것은 상당히 잘 될 것입니다 특히 어설프게로 829 00:38:30,070 --> 00:38:31,130 자신의 주위에. 830 00:38:31,130 --> 00:38:34,140 여기 내가 작성하는 ID를 입력 할 수 있습니다 int 형식의 새 테이블. 831 00:38:34,140 --> 00:38:37,770 그러나 나는 여기에 사용자 이름을 입력 할 수 있습니다 그 이전 테이블을 다시 만듭니다. 832 00:38:37,770 --> 00:38:40,700 그리고 난 전체 무리를 발견 유형으로 선택할 수 있습니다. 833 00:38:40,700 --> 00:38:43,610 >> 그리고 너무 이유 phpMyAdmin을합니다 어떤 좋은입니다. 834 00:38:43,610 --> 00:38:46,770 그것은 자기 수업의 종류의 점에서 당신 단지 점의 종류 및 클릭 수 835 00:38:46,770 --> 00:38:50,730 드롭 다운 메뉴를 살펴보고에서 추론 힘 SQL이 당신을주는 그 무엇. 836 00:38:50,730 --> 00:38:54,090 >> 그리고 실제로, 나는 CHAR 선택하면, 그때 길이, 또는 방법을 지정해야합니다 837 00:38:54,090 --> 00:38:55,940 많은 값, 얼마나 많은 문자. 838 00:38:55,940 --> 00:39:00,090 그래서 아주 일반적인 값은 같은 것들입니다 255,하지만 조금 오래이다. 839 00:39:00,090 --> 00:39:02,250 일반적으로 사용자 이름 여덟입니다. 840 00:39:02,250 --> 00:39:03,590 하지만 조금 작은이 일이다. 841 00:39:03,590 --> 00:39:05,430 그래서이 디자인 결정이다. 842 00:39:05,430 --> 00:39:08,630 그것은 8 자 최대이며, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 그것은 당신에게 정말이다. 844 00:39:09,830 --> 00:39:12,350 그러나 CHAR 필드는 고정 된 숫자입니다. 845 00:39:12,350 --> 00:39:16,420 그래서 너무 적은 선택하고 어떤 종류의이야 당신은 더 이상 이름을 원하는 경우 놨어. 846 00:39:16,420 --> 00:39:19,132 너무 많은 선택과 무슨 단점? 847 00:39:19,132 --> 00:39:20,820 >> 대상 : [들림]. 848 00:39:20,820 --> 00:39:21,620 >> DAVID 마란 : 그것은 낭비입니다. 849 00:39:21,620 --> 00:39:24,835 당신은 더 큰 있다면, 그냥 C에서와 마찬가지로 당신이 필요로하는 것보다 메모리 청크, 당신이있어 850 00:39:24,835 --> 00:39:27,190 그냥 시간을 낭비하고 공간을 낭비. 851 00:39:27,190 --> 00:39:31,430 그래서 대안으로 존재 이 문제를 해결 VARCHAR, 852 00:39:31,430 --> 00:39:36,390 아닌 고정 길이로 길이를 치료, 하지만, 최대 길이, 그리고 사용과 같은 853 00:39:36,390 --> 00:39:40,990 문자의 가변 수를 선택한 다음, 당신이 많은 문자로만 사용하는 경향이 854 00:39:40,990 --> 00:39:42,710 실제로이 필요합니다. 855 00:39:42,710 --> 00:39:43,670 그 완벽한 소리. 856 00:39:43,670 --> 00:39:45,640 >> 우리는 왜 제거하지 않습니다 CHAR 데이터를 입력 한 다음? 857 00:39:45,640 --> 00:39:48,500 의 단점이 될 수 있는가 VARCHAR에를 사용하는 소리 858 00:39:48,500 --> 00:39:51,644 그것은 좋은 승리처럼? 859 00:39:51,644 --> 00:39:52,596 그래? 860 00:39:52,596 --> 00:39:53,846 >> 대상 : [들림]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID 마란 : OK, 좋아. 863 00:39:57,790 --> 00:40:01,101 모든 데이터는 동일합니다 그래서 만약 길이 관심사는 무엇입니까? 864 00:40:01,101 --> 00:40:05,250 >> 대상 : 당신이 낭비 때문에 그들 모두를 말하여 데이터. 865 00:40:05,250 --> 00:40:09,060 >> DAVID 마란 : 모든 데이터는 그래서 경우 같은 길이,하지만, 내가 주장 866 00:40:09,060 --> 00:40:12,300 그 최대 길이를 지정 VARCHAR에 다르지는 않습니다 867 00:40:12,300 --> 00:40:16,070 CHAR에 고정 된 길이의 경우 지정 당신은 사전에 해당 번호를 알고있다. 868 00:40:16,070 --> 00:40:19,500 그러나이 참으로, 나는 일종의 것이다 그 대답 현실에서 추출 869 00:40:19,500 --> 00:40:22,610 최대, 수는 여전히이 있다는 것을 , 성가신, 특히 당신 870 00:40:22,610 --> 00:40:25,920 의 사람의 이름을 발생 비정상적으로 오래 당신이하지 않았다 871 00:40:25,920 --> 00:40:26,860 기대하고 있습니다. 872 00:40:26,860 --> 00:40:31,420 그리고 그것은 또한 좀 덜 효율적이다 실제로 같은 VARCHAR에 검색 할 873 00:40:31,420 --> 00:40:35,620 특히, 검색 문자, 반대 제비가 긴 테이블 874 00:40:35,620 --> 00:40:36,510 데이터를 제공합니다. 875 00:40:36,510 --> 00:40:40,060 그래서 여기, 너무 주제는 또 다시 분명한 선택의 여지가 없습니다. 876 00:40:40,060 --> 00:40:42,870 >> 그래서 당신에게 다른 감각을주는 관심의 대상이 될 수있는 데이터 형식 877 00:40:42,870 --> 00:40:45,400 하나 P 세트 일곱이나있는 미래는, INT있다. 878 00:40:45,400 --> 00:40:47,270 BIGINT는, 거기에 어떤 오래 오래 같이있다. 879 00:40:47,270 --> 00:40:48,880 그것은 64 비트 경향이있다. 880 00:40:48,880 --> 00:40:51,640 당신은에서 볼 수 있습니다 DECIMAL이 있습니다 많이 문제 세트 881 00:40:51,640 --> 00:40:55,300 문제 클리너 응답 우리 플로트에있어서 부동 882 00:40:55,300 --> 00:40:55,980 포인트 부정확. 883 00:40:55,980 --> 00:40:57,390 그리고 DATETIME있다. 884 00:40:57,390 --> 00:41:01,530 이 데이터 형식은 그대로 있습니다 년, 월, 일처럼 보이도록, 885 00:41:01,530 --> 00:41:03,730 그리고 시간, 분, 초. 886 00:41:03,730 --> 00:41:07,470 >> 그러나 SQL 데이터베이스는이 일 우리가 인덱스를 호출합니다. 887 00:41:07,470 --> 00:41:11,630 그리고 색인 뭔가하고 있다는 에 테이블을 만들 때 지정 888 00:41:11,630 --> 00:41:15,720 검색 및 기타 작업을 보다 효율적으로. 889 00:41:15,720 --> 00:41:18,550 특히,라는 뭔가가있다 당신이 할 수있는 기본 인덱스 890 00:41:18,550 --> 00:41:19,440 다음과 같이 선언합니다. 891 00:41:19,440 --> 00:41:22,330 >> 우리는 당신을 위해 이런 짓을 사용자 테이블 우리는 당신을 제공합니다. 892 00:41:22,330 --> 00:41:26,160 내가 수동으로 다시 한 경우에 통지 주고 여기에 사용자 테이블 893 00:41:26,160 --> 00:41:27,110 사용자는 이름입니다. 894 00:41:27,110 --> 00:41:28,125 난 이미 ID를 지정했습니다. 895 00:41:28,125 --> 00:41:29,330 내가 INT를 지정했습니다. 896 00:41:29,330 --> 00:41:32,000 내가와 이름을 지정 최대 32 자. 897 00:41:32,000 --> 00:41:36,140 그러나 우리는이 공정에서 스크롤을 유지하는 경우 넓은 창이있어 주목 898 00:41:36,140 --> 00:41:38,260 나는 지정할 수있는 다른 것들의 무리. 899 00:41:38,260 --> 00:41:40,950 >> 하나는, 내가 속성을 지정할 수 있습니다 좋아, 당신은 무엇을 알고,이 900 00:41:40,950 --> 00:41:42,190 INT는 UNSIGNED해야합니다. 901 00:41:42,190 --> 00:41:45,510 나는 음수를 원하지 않는 그럼 그것을 UNSIGNED 만들어 보자. 902 00:41:45,510 --> 00:41:48,660 널 (NULL)이 여기에 해당되지 않기 때문에 나는에 모든 사용자가 원하는 903 00:41:48,660 --> 00:41:49,640 고유 번호가 있습니다. 904 00:41:49,640 --> 00:41:50,830 나는 그것이 null이되고 싶지 않아. 905 00:41:50,830 --> 00:41:52,330 >> 하지만이 흥미 롭다. 906 00:41:52,330 --> 00:41:57,780 나는 ID 중 하나입니다하도록 지정할 수 있습니다 기본이 데이터베이스의 키, 또는의 907 00:41:57,780 --> 00:42:00,620 독특한, 또는의 색인, 또는 전체 텍스트입니다. 908 00:42:00,620 --> 00:42:05,630 그래서 오늘의 목적을 위해 긴 이야기 이한다 그 짧은 PRIMARY 방법 909 00:42:05,630 --> 00:42:10,570 두 개념 및 기술적 수 우리는 고유에 사용하는 필드 910 00:42:10,570 --> 00:42:12,140 사용자를 식별합니다. 911 00:42:12,140 --> 00:42:16,140 >> 그래서 우리는 사용자를 볼 때,이 종류는 에 의해 주로 그들을 볼 수있는 약속 912 00:42:16,140 --> 00:42:17,370 이 고유 식별자입니다. 913 00:42:17,370 --> 00:42:21,930 그리고 데이터베이스를 지킬 경우, 당신 사용자 번호 3을 가지고, 당신은 할 수 없습니다 914 00:42:21,930 --> 00:42:25,400 물리적으로 다른 사용자 삽입 같은 번호 3. 915 00:42:25,400 --> 00:42:28,380 데이터베이스은 거부합니다 변경 사항을 저장합니다. 916 00:42:28,380 --> 00:42:32,310 당신이 할 수 있기 때문에 어떤 좋은 일입니다 자신으로부터 자신을 보호합니다. 자기 917 00:42:32,310 --> 00:42:34,270 >> 또한, 사용자 이름. 918 00:42:34,270 --> 00:42:37,670 그래서 두 번째 행, 리콜, 사용자 이름 필드입니다. 919 00:42:37,670 --> 00:42:41,860 그래서 두 번째 행, 여기에 사용자 이름 우리는 지금까지이 왼쪽에 그랬던 것처럼. 920 00:42:41,860 --> 00:42:43,940 >> 그래서 또 내가 지정 할 수 있습니다? 921 00:42:43,940 --> 00:42:47,840 I는 SQL에 따르면, 허용되지 않아 두 개의 기본 키를 지정합니다. 922 00:42:47,840 --> 00:42:50,750 당신은 당신의 공동 키를 지정할 수 있습니다 두 필드를 봐,하지만 그들은 할 수 없습니다 923 00:42:50,750 --> 00:42:52,260 개별적으로 기본 키합니다. 924 00:42:52,260 --> 00:42:54,750 그래서 밖으로 질문입니다. 925 00:42:54,750 --> 00:42:56,040 그래서 선택 할 수도 있습니다? 926 00:42:56,040 --> 00:42:59,710 >> 음, UNIQUE는 정신 비슷 당신이 지정하는 기본 키 927 00:42:59,710 --> 00:43:03,570 필드는 유일해야한다, 그러나 그것은의 하나 될 수 없습니다 928 00:43:03,570 --> 00:43:04,410 나는 모든 시간을 사용합니다. 929 00:43:04,410 --> 00:43:08,450 그리고 우리는이 하나를 사용하지 않을거야 또 어떤 이유로 시간? 930 00:43:08,450 --> 00:43:10,490 경우에 잠재적으로 느린 그것은 긴 이름이다. 931 00:43:10,490 --> 00:43:11,740 그것은 단지 시간 낭비. 932 00:43:11,740 --> 00:43:16,140 >> INDEX는, 그 사이에, 그것의 것을 지정 고유 한 것,하지만 내가 좋아하는 것 없습니다 933 00:43:16,140 --> 00:43:19,470 당신은 아래에 당신의 마술을 작동하는 더 빨리 나를 위해 할 수있는 후드 934 00:43:19,470 --> 00:43:21,420 이 필드에 검색 할 수 있습니다. 935 00:43:21,420 --> 00:43:23,320 그래서 이것은 아마 여기에 관련이 없습니다. 936 00:43:23,320 --> 00:43:26,500 사용자 이름, 나는 주장하는 것 UNIQUE 좋은 대답이다. 937 00:43:26,500 --> 00:43:31,200 그러나 우리는 더 많은 사용자를 만든 가정 단지 사용자 이름보다 재미있는, 938 00:43:31,200 --> 00:43:32,430 해시 및 ID 번호. 939 00:43:32,430 --> 00:43:33,860 우리가 사람들에게 전체 이름을 주면? 940 00:43:33,860 --> 00:43:37,700 우리는 그들에게 주소를 준 경우는 어떻게 그리고 그들에 대한 다른 데이터? 941 00:43:37,700 --> 00:43:43,360 >> 물론, 경우에 당신은 지정이의 열 데이터베이스 색인, 즉 의미 942 00:43:43,360 --> 00:43:47,730 MySQL은, 또는 오라클, 또는 어떤 데이터베이스 당신은 마술을 작동합니다, 사용하는 943 00:43:47,730 --> 00:43:51,300 공상 데이터의 어떤 종류를 사용 나무, 또는 트라이, 또는 같은 구조 944 00:43:51,300 --> 00:43:55,940 해시 테이블 또는 보증하는 것이 당신이 사용하여 데이터를 검색 할 때 945 00:43:55,940 --> 00:43:58,150 특정 필드를 선택합니다 - 946 00:43:58,150 --> 00:44:01,310 같은 날 모두에게 보여 그 옥스포드 스트리트 (Oxford Street)에 살고있다. 947 00:44:01,310 --> 00:44:02,540 같은 쿼리. 948 00:44:02,540 --> 00:44:06,250 당신은 사전에 지정한 경우 그 해당 필드에 인덱스를 원하는, 949 00:44:06,250 --> 00:44:09,050 검색은 훨씬 더 빨리, 훨씬 더 될 것입니다. 950 00:44:09,050 --> 00:44:12,090 >> 당신은 인덱스, 최선을 지정하지 않는 경우 당신이 할 수있는 선형 검색하는 경우입니다 951 00:44:12,090 --> 00:44:13,030 그것은 분류 아니에요. 952 00:44:13,030 --> 00:44:16,220 하지만 당신은 INDEX, 스마트을 지정하는 경우 데이터베이스를 만든 사람들 - 953 00:44:16,220 --> 00:44:19,340 지금은 나무를 알고 당신 같은 사람 그리고 시도 및 해시 테이블 - 954 00:44:19,340 --> 00:44:23,220 자동적으로 데이터를 구축 할 것 있는지 확인하는 RAM의 구조 955 00:44:23,220 --> 00:44:26,050 그 검색이 훨씬 빠릅니다. 956 00:44:26,050 --> 00:44:29,660 >> FULLTEXT는 한편, 정신 비슷 그러나 와일드 카드를 수행 할 수 있습니다 957 00:44:29,660 --> 00:44:35,480 검색, 같은 날 모두에게 보여 그 로 시작하는 거리에 살고있다 958 00:44:35,480 --> 00:44:36,960 어떤 이유에서 편지 O. 959 00:44:36,960 --> 00:44:38,850 와일드 카드 검색을 수행 할 수 있습니다 그런. 960 00:44:38,850 --> 00:44:45,880 또는, 쇼 같은 더 강력한 것들 저 단어가 모두 - 961 00:44:45,880 --> 00:44:49,400 나에게 그 이름이 시작하는 모두에게 보여 특정 문자로. 962 00:44:49,400 --> 00:44:51,880 당신은 키워드를 검색 할 수 있습니다 이러한 방법. 963 00:44:51,880 --> 00:44:52,630 좋아. 964 00:44:52,630 --> 00:44:55,760 >> 따라서, 디자인 기회 이 잠재적으로. 965 00:44:55,760 --> 00:44:57,740 다른 사람이 있다는 것을 나는거야 나의 손을 흔들어. 966 00:44:57,740 --> 00:45:00,530 그것은 당신이 할 수 있다고 밝혀 다른 스토리지 엔진. 967 00:45:00,530 --> 00:45:04,390 그리고 이것은 우리가 필요로하는 것보다 더 많은 비전입니다 확실히 문제에 대한 일곱을 설정합니다. 968 00:45:04,390 --> 00:45:06,920 기본적으로 사람이 사용하는 이노라는 것을. 969 00:45:06,920 --> 00:45:10,910 당신은이 곳의 언급을 볼 수 있습니다 phpMyAdmin과의 인터페이스 대부분. 970 00:45:10,910 --> 00:45:14,130 그러나 다른 디자인이 있다는 것을 알고 잠재력으로 의사 결정 971 00:45:14,130 --> 00:45:18,030 관심은 최종 프로젝트를 올 경우 당신은 웹 기반의 작업을 수행합니다. 972 00:45:18,030 --> 00:45:19,330 >> 그러나이 해 보자. 973 00:45:19,330 --> 00:45:23,130 이제 가서에 이것을 넣어 보자 이야기에 대한 맛보기로 화면 974 00:45:23,130 --> 00:45:26,330 당신을 포함, 룸메이트, 우유의 유리. 975 00:45:26,330 --> 00:45:28,240 의는 2 분을 보자 또는, 그래서 여기에 휴식. 976 00:45:28,240 --> 00:45:31,060 당신이 주변에 찌를 수 있다면, 이제 오게 다시, SQL에서 좀 더보고, 977 00:45:31,060 --> 00:45:35,160 다음과 자바 스크립트의 비트 P-설정을 염두에 여덟. 978 00:45:35,160 --> 00:45:36,120 >> 좋아. 979 00:45:36,120 --> 00:45:40,420 그래서, 당신이에 대해 생각하자 아주 쉽게 발생할 수있는 코너 케이스 980 00:45:40,420 --> 00:45:44,240 데이터베이스를 사용하여, 또는 문맥 솔직히, 심지어 실제 물건을 사용하여 981 00:45:44,240 --> 00:45:46,280 ATM은 돈을받을 것을 좋아합니다. 982 00:45:46,280 --> 00:45:47,640 그래서 여기에 냉장고입니다. 983 00:45:47,640 --> 00:45:50,040 당신은 너무 한있어 가정 기숙사 나 집. 984 00:45:50,040 --> 00:45:54,990 그리고 당신은 하나의 룸메이트, 모두의있어 당신은 정말 예를 들어 우유를 좋아한다. 985 00:45:54,990 --> 00:45:57,210 >> 그래서 어느 날 클래스에서 집에 와서. 986 00:45:57,210 --> 00:45:58,490 그 또는 그녀는 아직 돌아 오지. 987 00:45:58,490 --> 00:45:59,180 당신은 냉장고를 엽니 다. 988 00:45:59,180 --> 00:46:00,870 당신은 정말 우유의 큰 유리를 원한다. 989 00:46:00,870 --> 00:46:01,820 어떤 우유가 없습니다. 990 00:46:01,820 --> 00:46:02,920 그래서 당신은 무엇을해야합니까? 991 00:46:02,920 --> 00:46:03,840 당신은 냉장고를 닫습니다. 992 00:46:03,840 --> 00:46:04,670 당신은 당신의 키를 잡아. 993 00:46:04,670 --> 00:46:05,930 당신은 광장에 나가. 994 00:46:05,930 --> 00:46:09,240 그리고 당신은 그에서 CVS에서 줄을 얻을 셀프 체크 아웃 것들, 어떤 항상 995 00:46:09,240 --> 00:46:11,180 이상 실제로보다 오래 걸릴 출납원 데. 996 00:46:11,180 --> 00:46:11,820 여하튼. 997 00:46:11,820 --> 00:46:15,490 >> 그럼, 그 사이에,, 점 점 점 당신의 룸메이트가 집에 와서 그 또는 그녀 998 00:46:15,490 --> 00:46:17,440 마찬가지로 열망을 가지고 일부 우유. 999 00:46:17,440 --> 00:46:20,380 그래서 그 또는 그녀는 냉장고를 엽니 다 내부보고, 오, 빌어 먹을. 1000 00:46:20,380 --> 00:46:21,160 아니 우유 없습니다. 1001 00:46:21,160 --> 00:46:24,750 그래서 그 또는 그녀가 밖으로 머리는 갈 일이 만 있던 다른 CVS에 1002 00:46:24,750 --> 00:46:27,900 어떤 이유로 거리에 차단하고, 그 또는 그녀는 우유를 구입하는 줄을 가져옵니다. 1003 00:46:27,900 --> 00:46:30,480 >> 그 사이에, 당신은 그가 집에 와서 또는 그녀는 집에 와서, 그리고 무엇 1004 00:46:30,480 --> 00:46:31,980 당신은 궁극적으로이? 1005 00:46:31,980 --> 00:46:33,080 두 배의 우유. 1006 00:46:33,080 --> 00:46:34,620 하지만 당신은 정말 싫어 우유 많이있다. 1007 00:46:34,620 --> 00:46:37,300 그래서 지금 당신은 지금 너무 많은 우유가 그 중 하나가 바로 신 갈 것입니다 1008 00:46:37,300 --> 00:46:37,820 결국. 1009 00:46:37,820 --> 00:46:39,370 그래서 이것은 정말 나쁜 문제입니다. 1010 00:46:39,370 --> 00:46:39,900 오른쪽? 1011 00:46:39,900 --> 00:46:41,990 >> 그래서 무슨 일이 있었습니까? 1012 00:46:41,990 --> 00:46:44,810 그래서 기본적으로,이 종류 말도 안되는 예. 1013 00:46:44,810 --> 00:46:48,580 하지만 후드 아래에, 우리는 무엇을 했어 여기 발생하면 모두 체크 1014 00:46:48,580 --> 00:46:52,390 일부 조각의 상태 메모리, 냉장고. 1015 00:46:52,390 --> 00:46:54,420 당신의 두 상태를 확인 일부 변수. 1016 00:46:54,420 --> 00:46:57,360 둘은 결론을 끌었다 그런 다음에 행동 것을. 1017 00:46:57,360 --> 00:47:01,420 그러나 불행하게도, 동안 룸메이트 가게에 있었다, 그 상태 1018 00:47:01,420 --> 00:47:05,670 변수 변경, 그 또는 그녀가 돌아왔다 현재 상태를 변경하고자하지만 1019 00:47:05,670 --> 00:47:07,480 이미 변경 한 것 그 또는 그녀에. 1020 00:47:07,480 --> 00:47:11,120 그리고 물론, 그 또는 그녀는 없을 것 그들이 알고 있다면 가게에 갔다 1021 00:47:11,120 --> 00:47:13,010 당신은 도중에 이미 있다고. 1022 00:47:13,010 --> 00:47:16,430 >> 그래서 현실 세계에서, 당신은 어떻게 할 수 당신이 가정,이 문제를 방지 1023 00:47:16,430 --> 00:47:18,940 냉장고, 당신은 룸메이트가, 당신은 실제로 우유를 좋아하세요? 1024 00:47:18,940 --> 00:47:19,760 >> 청중 : 통신. 1025 00:47:19,760 --> 00:47:20,580 >> DAVID 마란 : 통신. 1026 00:47:20,580 --> 00:47:21,160 확인을 클릭합니다. 1027 00:47:21,160 --> 00:47:22,500 그러나 당신은 어떻게 의사 소통을 할 수 있습니까? 1028 00:47:22,500 --> 00:47:23,990 >> 대상 : 메모를 남겨주세요. 1029 00:47:23,990 --> 00:47:25,480 >> DAVID 마란은 : 오른쪽 메모를 남겨? 1030 00:47:25,480 --> 00:47:28,025 항상을 위해 메모를 남겨 쇼의 팬. 1031 00:47:28,025 --> 00:47:31,580 바로 모든 있으므로 항상 메모를 남기거나, 자물쇠 또는 뭔가처럼 진정으로 넣어 1032 00:47:31,580 --> 00:47:35,440 당신을 유지하는 냉장고에 의 상태를 검사에서 룸메이트 1033 00:47:35,440 --> 00:47:36,540 그 변수. 1034 00:47:36,540 --> 00:47:40,800 >> 자, 왜이 밀접한 될 수 있습니다 문제 세트 일곱, 또는 ATM을합니다. 1035 00:47:40,800 --> 00:47:46,780 음, ATM 곳에서 세상을 상상 당신은 ATM까지 갈 수 있습니다 1036 00:47:46,780 --> 00:47:48,920 여기에 기계, 여기에 또 다른 ATM. 1037 00:47:48,920 --> 00:47:50,680 그리고이 자주 발생합니다. 1038 00:47:50,680 --> 00:47:54,150 그리고, 두 개의 ATM 카드를 있다고 가정 어느 얻을 수있다. 1039 00:47:54,150 --> 00:47:57,420 그리고 당신은 두 시스템에 로그인 효과적으로 동시에 희망 1040 00:47:57,420 --> 00:47:58,660 아무도보고되지있는 동안. 1041 00:47:58,660 --> 00:48:01,260 그리고 당신은 당신의 PIN을 입력 거의 동시에. 1042 00:48:01,260 --> 00:48:06,280 그리고 당신은 균형 쿼리를 수행 당신이 얼마나 많은 현금을 볼 수 있습니다. 1043 00:48:06,280 --> 00:48:08,920 합시다 당신이 100 달러를 가지고 있다고 귀하의 계정에 남아. 1044 00:48:08,920 --> 00:48:13,310 그래서 본질적으로 동시에 당신 하나를 말하자면, 제로, 제로, 입력합니다. 1045 00:48:13,310 --> 00:48:16,000 그리고 당신은 잘하면 돈을 돌려받을. 1046 00:48:16,000 --> 00:48:18,440 >> 하지만 다시 얼마나 많은 돈을받을 수 있습니까? 1047 00:48:18,440 --> 00:48:21,710 하루의 끝에 지금은 컴퓨터, 그들이 이야기하고 특히 1048 00:48:21,710 --> 00:48:27,360 서버는 반드시 일을하지 않 순서대로 해당이 예상있어. 1049 00:48:27,360 --> 00:48:30,860 >> 그렇게 때문에, 무슨 가정 거기에 어떤 네트워크 속도 문제 1050 00:48:30,860 --> 00:48:34,530 , 또는 거기에 CPU의 문제, 또는 그런 아무것도, 가정이 1051 00:48:34,530 --> 00:48:38,530 최초의 ATM은 균형을 확인합니다 보고, 오,이 사람은 $ 100이 있습니다. 1052 00:48:38,530 --> 00:48:41,840 하지만 산만됩니다 아마 때문에 백업이 일어나고있다 그리고 그것은이다 1053 00:48:41,840 --> 00:48:42,500 둔화. 1054 00:48:42,500 --> 00:48:45,080 아니면, 네트워크를 확인하면서 연결은 약간 느린 가지고 있기 때문에 1055 00:48:45,080 --> 00:48:45,910 이것은 단지 발생합니다. 1056 00:48:45,910 --> 00:48:47,100 그들은 물리적 장치입니다. 1057 00:48:47,100 --> 00:48:49,330 그래서 그 사이에, 두 번째 ATM은 같은 질문을. 1058 00:48:49,330 --> 00:48:53,030 다윗은 얼마나 많은 돈을 가지고 있습니까? 대답은 $ 100. 1059 00:48:53,030 --> 00:48:58,930 하지만 첫 번째 ATM은 아직 가지고 있기 때문에 메시지가 모두 $ 100 빼기 보낸 1060 00:48:58,930 --> 00:49:03,000 현금 인출기는 은행의 금고를 검사했다 100 달러가있어보고, 그리고 지금 1061 00:49:03,000 --> 00:49:07,160 두 시스템은 잠재적 있습니다 대답을 뱉어 것. 1062 00:49:07,160 --> 00:49:12,240 >> 지금이 어떤 의미에서 당신을 위해 중대하다 은행이 궁극적으로 무엇을하면 1063 00:49:12,240 --> 00:49:17,200 에 의해 마이너스 100의 양을 변경합니다 사용자에 해당 변수를 설정 1064 00:49:17,200 --> 00:49:21,570 0이 은행 계좌로 반대 100 마이너스하고 있습니다. 1065 00:49:21,570 --> 00:49:24,410 이제 은행에 대한 최악의 경우 - 1066 00:49:24,410 --> 00:49:27,470 또는 은행 제일의 사이에, 그들은 당신에게 $ 200주고, 1067 00:49:27,470 --> 00:49:31,690 귀하의 은행 계좌는 이제 음을 보여줍니다 정말하지 않는 $ 100 1068 00:49:31,690 --> 00:49:32,950 모두에서 당신을 혜택을 누릴 수 있습니다. 1069 00:49:32,950 --> 00:49:36,500 그러나 요점은이 경기 두 룸메이트를 얻는 조건 1070 00:49:36,500 --> 00:49:40,660 우유, 한 두 ATM은 현금을 얻으려고 와 볼트의 상태를 변경 1071 00:49:40,660 --> 00:49:44,510 동시에 모든 존재 시간은 당신이 데이터베이스가 있습니다. 1072 00:49:44,510 --> 00:49:48,290 >> 지금 문제는,이 문제를 일곱 설정 의미에서 발생하는 경우를 구입하는 경우 1073 00:49:48,290 --> 00:49:52,110 다음 페이스 북 주식의 공유 및 용 예 당신은 두 번째 구매하기 공유 1074 00:49:52,110 --> 00:49:55,160 페이스 북의 주식은, 당신이해야 할 프로그래머로 결정. 1075 00:49:55,160 --> 00:49:58,710 을 업데이트하는 방법을 결정하기 위해, 데이터베이스 확률 당신은 거 야 수 있습니다 1076 00:49:58,710 --> 00:50:02,250 하나 그 주식에 대한 행이 있습니다 그것을 구현하는 한 방법입니다. 1077 00:50:02,250 --> 00:50:06,640 그리고 당신은 한 몫을해야 할 것입니다 그들의 주식 시세 상징 FB, 1078 00:50:06,640 --> 00:50:10,120 이 사용자 이름, 또는 사용자에 대한 ID, 고유 식별자입니다. 1079 00:50:10,120 --> 00:50:12,340 >> 하지만 같은 이야기는 여기에서 발생할 수 있습니다. 1080 00:50:12,340 --> 00:50:15,800 당신이 볼 수로서 당신은, SQL에서 SELECT 경우 당신이 볼 때 문제에 일곱 설정 1081 00:50:15,800 --> 00:50:18,460 오, 데이비드 하나의 점유율을 가지고 페이스 북 주식. 1082 00:50:18,460 --> 00:50:23,240 나 이제 이주가 수 있도록이 변경할 수 그는 사고 싶어하기 때문에 1083 00:50:23,240 --> 00:50:24,120 두 번째 공유 할 수 있습니다. 1084 00:50:24,120 --> 00:50:27,860 그러나 다윗은 실제로 두 있다고 가정 브라우저 창을 열고, 또는 가정이 1085 00:50:27,860 --> 00:50:32,150 그것은 두 배우자와 공동 계좌의 그리고 둘 다 수행하려고 1086 00:50:32,150 --> 00:50:36,770 같은 작업도도 가능성이 될 수있는 결정을 위해 존재 1087 00:50:36,770 --> 00:50:39,670 이전에 기초를 두어 세계의 국가 - 1088 00:50:39,670 --> 00:50:41,290 계정을 하나의 점유율을 가지고 - 1089 00:50:41,290 --> 00:50:45,630 지금은 두 사람 또는 두 서버, 이주로 증가 말하려고합니다. 1090 00:50:45,630 --> 00:50:49,020 그러나이 경우에, 당신은 위탁 수도 나를 두 공유를 위해 돈 있지만, 1091 00:50:49,020 --> 00:50:50,830 그냥 한 번 증가합니다. 1092 00:50:50,830 --> 00:50:54,730 >> 그래서 짧은, 근본적인 문제 여기를 떠나는에 대한 농담과 마찬가지로 1093 00:50:54,730 --> 00:50:58,750 주의, 또는에 자물쇠를 가하고있다 만약 두 사람 또는 두 개의 스레드 - 1094 00:50:58,750 --> 00:50:59,930 스크래치 다시 생각한다 - 1095 00:50:59,930 --> 00:51:03,220 일부 변수의 상태를 검사 할 수 있습니다 그리고 그 변수를 변경하려고 1096 00:51:03,220 --> 00:51:07,950 그러나 그 두 가지에서 발생하지 않습니다 동시에이 중단받을 수 있지만 1097 00:51:07,950 --> 00:51:11,500 다른 일들이 발생하여 데이터를 수 매우 이상한 상태로 얻는다. 1098 00:51:11,500 --> 00:51:15,450 그리고 당신은 혜택을 누릴 수 있습니다 또는 당신은 고통을 수 돈을 예제 의미합니다. 1099 00:51:15,450 --> 00:51:18,110 >> 그래서 문제 세트 일곱, 우리는 당신을 제공합니다 이 코드 한 줄, 긴 1100 00:51:18,110 --> 00:51:21,000 짧은 이야기,이 해결 MySQL에서 문제가 발생합니다. 1101 00:51:21,000 --> 00:51:24,950 하지 않는이 매우 긴 명령어 도에 한 줄에 맞게 1102 00:51:24,950 --> 00:51:30,370 여기에 화면이 보장 당신의 작업 원자라는 것입니다. 1103 00:51:30,370 --> 00:51:33,720 그것은 한 번에 발생, 또는 전혀 발생하지 않습니다. 1104 00:51:33,720 --> 00:51:37,530 이 매우 긴 구절은 할 수 없습니다 부분적으로 중단됩니다. 1105 00:51:37,530 --> 00:51:39,840 >> 그리고 그것이 무엇 문자 그대로 그것은 말하는. 1106 00:51:39,840 --> 00:51:44,200 일부 테이블에 다음을 삽입 세 개의 필드를 해당 특정 값, 1107 00:51:44,200 --> 00:51:47,280 하지만 중복 키에, 삽입하지 않습니다. 1108 00:51:47,280 --> 00:51:48,280 업데이트를 수행합니다. 1109 00:51:48,280 --> 00:51:52,450 그래서이 SELECT와 일을 같이입니다 동시에 말하자면 삽입합니다. 1110 00:51:52,450 --> 00:51:55,150 그리고 아마 키는 무엇인가 여기에서 참조되는? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> 그것은 밝혀, 당신은이를 볼 수 있습니다 문제는, 일곱의 사양을 설정하기 때문에 1113 00:52:01,380 --> 00:52:06,040 우리는 고유 키가있을 선언했습니다 이 특정 테이블에 같은 그 1114 00:52:06,040 --> 00:52:08,480 여러 행을 가질 수 없습니다 와 같은 사용자에 대한 1115 00:52:08,480 --> 00:52:10,150 같은 페니 주식 기호 - 1116 00:52:10,150 --> 00:52:13,780 여기이 예에서, DVN.V입니다 바보 페니 주식 우리 1117 00:52:13,780 --> 00:52:14,980 사양에 참조하십시오. 1118 00:52:14,980 --> 00:52:17,860 , 우리가 고유하게 선언했습니다 때문에 이것이 의미하는 것은 당신에게 경우 1119 00:52:17,860 --> 00:52:23,580 중복 행을 삽입하려고하면 야 대신없이 업데이트 예정 1120 00:52:23,580 --> 00:52:27,020 다른 사람이 변경할 수있는 기회를 갖는 하나는 세계의 상태. 1121 00:52:27,020 --> 00:52:29,400 그래서 짧은에, 이렇게하면 가지 원자이다. 1122 00:52:29,400 --> 00:52:32,530 >> 더 일반적으로하지만, 데이터베이스 MySQL은 같은 - 1123 00:52:32,530 --> 00:52:35,460 당신은이 기능을 필요로하지 않는다 일곱 P-설정하지만, 염두에 보관 1124 00:52:35,460 --> 00:52:36,200 미래 - 1125 00:52:36,200 --> 00:52:38,870 거래라는 것을 지원 당신은 말할 수 1126 00:52:38,870 --> 00:52:40,990 말 그대로 트랜잭션을 시작. 1127 00:52:40,990 --> 00:52:43,270 그런 다음 실행할 수 있습니다 두 SQL 문. 1128 00:52:43,270 --> 00:52:45,710 당신이 볼 수 있듯이 SQL 문 P-설정 일곱, 조금 보이는에서 1129 00:52:45,710 --> 00:52:46,750 다음과 같이. 1130 00:52:46,750 --> 00:52:48,820 테이블이라는 계정을 업데이트합니다. 1131 00:52:48,820 --> 00:52:52,550 무엇에 해당하는 잔액 항목을 설정 균형 열 현재 1132 00:52:52,550 --> 00:52:57,280 1,000 마이너스 여기서 숫자 사용자 ID와 같은 계좌 번호, 1133 00:52:57,280 --> 00:53:00,830 = 2, 다음 업데이트 계정이 점 점 점. 1134 00:53:00,830 --> 00:53:04,350 >> 그래서 쉽게 설명하자면, 어떤 않는이 두 쿼리에 일을 할 것 1135 00:53:04,350 --> 00:53:05,840 은행의 실제 의미? 1136 00:53:05,840 --> 00:53:07,440 >> 청중 : 저축 전송. 1137 00:53:07,440 --> 00:53:08,020 >> DAVID 마란 : 그렇지. 1138 00:53:08,020 --> 00:53:10,470 하나에서 자금을 전송 다른 계정. 1139 00:53:10,470 --> 00:53:14,400 그리고 이것은 또 다른 예입니다 당신 정말이 두 가지가 발생합니다 1140 00:53:14,400 --> 00:53:15,570 또는 발생하지. 1141 00:53:15,570 --> 00:53:18,880 당신은 무언가에 싶지 않아 그들 가운데 잠재적으로 엉망 1142 00:53:18,880 --> 00:53:22,220 수학, 또는 엉망으로 얼마나 당신이 돈, 또는 얼마나 많은 1143 00:53:22,220 --> 00:53:23,170 돈을 은행이 있습니다. 1144 00:53:23,170 --> 00:53:26,890 그렇다면 거래에 대해 정말 좋은 데요 MySQL에서 즉,과 1145 00:53:26,890 --> 00:53:30,160 더 일반적으로 데이터베이스이며, 그들이 및 구현 한 스마트 사람들 1146 00:53:30,160 --> 00:53:33,670 이러한 기능을 확인하는 방법을 알아낼 그 일이 모두 발생해야 1147 00:53:33,670 --> 00:53:35,120 또는 전혀. 1148 00:53:35,120 --> 00:53:38,580 >> 그리고 당신은 진정으로 만들기 위해 야심 찬 경우 사람들에 의해 사용되는 웹 사이트 1149 00:53:38,580 --> 00:53:41,490 캠퍼스, 현실 세계에서 사람들은 일을 시작의 의미에서 무엇인가, 1150 00:53:41,490 --> 00:53:43,300 이러한 종류의 수 있습니다 디자인 결정이 1151 00:53:43,300 --> 00:53:45,020 아무리 중요하게. 1152 00:53:45,020 --> 00:53:48,240 그렇지 않으면, 당신은 손실, 데이터가 손실 시작 사용자, 또는 최악의 경우 1153 00:53:48,240 --> 00:53:51,800 우리는 잠재적으로, 여기에 본 적이 돈을 잃게됩니다. 1154 00:53:51,800 --> 00:53:56,180 그래서 다시, 더 많은 것을에 문제 설정 칠뿐만 아니라, 아마도 몇몇위한 1155 00:53:56,180 --> 00:53:57,530 최종 프로젝트에서 당신. 1156 00:53:57,530 --> 00:54:01,870 >> 그럼 우리가 가진 그 사진을 변경할 수 하나 이상의 방법으로 전 잠시. 1157 00:54:01,870 --> 00:54:04,070 그래서 내가 할 수있는 경우에 저 실제로 보자 - 1158 00:54:04,070 --> 00:54:06,030 아니, 그가 사라 졌어요. 1159 00:54:06,030 --> 00:54:06,690 저기있다. 1160 00:54:06,690 --> 00:54:09,020 >> 우리가 마지막으로 남아 곳이야. 1161 00:54:09,020 --> 00:54:12,390 그리고 그것은 우리가 던져거야 밝혀 여기에 믹스에 한 가지 더 - 1162 00:54:12,390 --> 00:54:14,510 자바 스크립트라는 언어. 1163 00:54:14,510 --> 00:54:18,060 따라서 자바 스크립트는 실제로 맞는 이 조각에 - 1164 00:54:18,060 --> 00:54:22,086 나는 아주 충분한 공간을 남기지 않았습니다, 그래서 이것은 확장 지금은 아닙니다. 1165 00:54:22,086 --> 00:54:23,900 OK,이 정말 애처 롭다. 1166 00:54:23,900 --> 00:54:27,075 OK, 그래서 자바 스크립트입니다. 1167 00:54:27,075 --> 00:54:27,340 괜찮아요. 1168 00:54:27,340 --> 00:54:28,760 난 정말 그것을 학대하고 있어요. 1169 00:54:28,760 --> 00:54:29,390 괜찮아요. 1170 00:54:29,390 --> 00:54:34,790 >> 따라서 자바 스크립트는 다른 프로그램입니다 언어, 우리의 마지막, 그 도움이된다면 1171 00:54:34,790 --> 00:54:37,770 더는 존재하지 않는다는 것이 안심 여기 소화전의. 1172 00:54:37,770 --> 00:54:41,100 따라서 자바 스크립트는 해석이다 당신이하지 않는 것을 의미 언어, 1173 00:54:41,100 --> 00:54:42,670 0과 1로 컴파일. 1174 00:54:42,670 --> 00:54:43,690 당신은 그것을 실행합니다. 1175 00:54:43,690 --> 00:54:47,680 하지만이 근본적으로 다르​​다 자바 스크립트는 일반적으로 당신에게 그 1176 00:54:47,680 --> 00:54:49,815 웹 서버에서 실행되지 않습니다. 1177 00:54:49,815 --> 00:54:52,570 그것은 실행되지 않습니다 제품 자체. 1178 00:54:52,570 --> 00:54:57,490 오히려, 그것은 사용자에 의해 다운로드되는 브라우저에 HTTP를 통해 - 1179 00:54:57,490 --> 00:55:00,260 크롬, 사파리, 인터넷 익스플로러, 파이어 폭스, 무엇이든 - 1180 00:55:00,260 --> 00:55:03,860 그리고이를 실행하는 브라우저의 특정 프로그래밍 언어입니다. 1181 00:55:03,860 --> 00:55:08,000 >> 그래서 명확하게, PHP는 지금까지왔다 명령 행에서 하나를 실행 1182 00:55:08,000 --> 00:55:11,290 서버에 우리의 검은 색과 흰색 창 기기, 컴퓨터 등 1183 00:55:11,290 --> 00:55:14,490 제품을 좋아하거나이되었습니다 웹 서버에 의해 실행될 1184 00:55:14,490 --> 00:55:15,860 컴퓨터에서 실행. 1185 00:55:15,860 --> 00:55:20,490 하지만, 여기에 주제는 지금까지 그 PHP입니다 서버 측 실행, 그래서 한 1186 00:55:20,490 --> 00:55:24,820 사용자와 사용자의 브라우저 PHP 코드의 라인을 결코 볼 수 없다. 1187 00:55:24,820 --> 00:55:28,530 >> 사실, 당신은 영원히 브라우저를 열면 귀하의 웹 사이트 또는 다른 당신 1188 00:55:28,530 --> 00:55:32,400 실제로 윈도우에서 PHP 코드를 참조 누군가가 엉망입니다. 1189 00:55:32,400 --> 00:55:34,950 그것이 될 운명이 아니니까 직접 브라우저로 전송. 1190 00:55:34,950 --> 00:55:38,150 그것은 실행 및 설정을해야하는데 HTML과 같이 넣습니다. 1191 00:55:38,150 --> 00:55:40,120 >> 그러나 자바 스크립트는 본질적으로 반대. 1192 00:55:40,120 --> 00:55:44,350 그것은 일반적으로 내부 실행 의미하는 것 사용자의 브라우저 창. 1193 00:55:44,350 --> 00:55:46,840 그리고 웹 사이트의 종류 사용 자바 스크립트 다음 요즘? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> 말 그대로 모든 인기있는 웹 사이트 등을들 수있다. 1196 00:55:52,180 --> 00:55:55,430 모든 웹 사이트가 너희들 아마 을 위해 자바 스크립트를 사용하여 매일 사용 1197 00:55:55,430 --> 00:55:57,330 간단한 심지어 매력적인 기능을 제공합니다. 1198 00:55:57,330 --> 00:55:59,800 >> 그래서 페이스 북과 같은 당신이 그것을 사용하는 경우 채팅. 1199 00:55:59,800 --> 00:56:01,040 어떻게 그런 일이 실제로 작동합니까? 1200 00:56:01,040 --> 00:56:05,090 그럼 지금까지, 재료는 모두 우리했습니다 HTML로 수행 및 PHP는 가정 1201 00:56:05,090 --> 00:56:08,750 , 당신은 URL을 당겨, 당신은 Enter 키를 누르십시오 당신은 약간의 HTML 콘텐츠를 참조하십시오. 1202 00:56:08,750 --> 00:56:11,970 그리고 당신은 변경 링크를 클릭 URL는, 페이지를 변경하고, 다시로드 1203 00:56:11,970 --> 00:56:12,740 새로운 콘텐츠. 1204 00:56:12,740 --> 00:56:16,340 다른 URL을 클릭하거나, 폼을 제출 다른 페이지로 털과 기회 1205 00:56:16,340 --> 00:56:17,420 당신은 몇 가지 새로운 내용을 참조하십시오. 1206 00:56:17,420 --> 00:56:22,710 >> 그러나 페이스 북 채팅과 같은 것을 사용하여, 또는 Gchat, 또는 Google지도, 드물게 1207 00:56:22,710 --> 00:56:27,350 전체 페이지는 것을 새로 않습니다 당신은 흰색 화면이 순간적보고 1208 00:56:27,350 --> 00:56:28,470 다음 새로운 콘텐츠. 1209 00:56:28,470 --> 00:56:32,610 오히려, 웹 페이지는 현재 동적 아르 다시 업데이트하고 점점 1210 00:56:32,610 --> 00:56:35,570 또 다시 모든 종류 의 장면 뒤에. 1211 00:56:35,570 --> 00:56:38,560 그리고 그것은 밝혀 당신은 이동 않는 경우 페이스 북, 또는 Gchat 같은, 1212 00:56:38,560 --> 00:56:43,050 또는 Gmail, 페이지 업데이트 자동으로 다시로드하지 않고 1213 00:56:43,050 --> 00:56:47,630 전체 화면이, 무슨 일이 있었는지입니다 브라우저가 일종의 몰래했다 1214 00:56:47,630 --> 00:56:49,410 추가 HTTP 요청 - 1215 00:56:49,410 --> 00:56:52,740 하지 전체 웹 페이지에 대한,하지만 단지에 대한 같은 데이터의 작은 덩어​​리, 1216 00:56:52,740 --> 00:56:55,740 인스턴트 메시지 당신의 친구 단지 당신이, 또는 상태 업데이트를 전송하는 1217 00:56:55,740 --> 00:56:58,210 누군가가 당신, 또는 트윗을 전송 누군가가 그냥 보냈다. 1218 00:56:58,210 --> 00:57:02,120 그것은 단지에 대한 약간의 요청을 만들고있다 데이터하고 자바, 이것을 사용 1219 00:57:02,120 --> 00:57:06,370 프로그래밍 언어는 무엇을 변경하려면 웹 페이지가없이 보이는 1220 00:57:06,370 --> 00:57:09,860 서버 서버없이, 도움 그 HTML을 생성하는 단계를 포함한다. 1221 00:57:09,860 --> 00:57:13,820 >> 그래서 한마디로, 자바 스크립트는 사용할 수 있습니다 에서 데이터 업데이트를 할뿐만 아니라, 1222 00:57:13,820 --> 00:57:16,750 전체를 다시로드하지 않고 서버 페이지 또는 양식을 제출. 1223 00:57:16,750 --> 00:57:20,060 또한 변경하는 데 사용될 수있다 소위 DOM - 1224 00:57:20,060 --> 00:57:21,520 문서 객체 모델 - 1225 00:57:21,520 --> 00:57:24,620 어떤만을위한 멋진 방법입니다 HTML의 나무를 말 1226 00:57:24,620 --> 00:57:26,220 우리는 지난 시간을 보았다. 1227 00:57:26,220 --> 00:57:31,640 >> 그래서 안심하기 위해, 자바 스크립트입니다 구문 때문에 C와 유사한뿐만 아니라. 1228 00:57:31,640 --> 00:57:32,820 더 주요 기능은 없습니다. 1229 00:57:32,820 --> 00:57:35,430 당신은 코드를 작성 시작 그리고 실행, 또는 얻을 것이다 1230 00:57:35,430 --> 00:57:36,900 더 제대로 해석. 1231 00:57:36,900 --> 00:57:38,660 조건은 다음과 같이 표시됩니다. 1232 00:57:38,660 --> 00:57:41,230 어떤 C에서 다른하거나 그 문제에 대한 PHP. 1233 00:57:41,230 --> 00:57:43,890 부울 식 또는 혼성 함께 다음과 같이 표시됩니다. 1234 00:57:43,890 --> 00:57:45,590 AND로는 다음과 같습니다. 1235 00:57:45,590 --> 00:57:47,750 >> 스위치는 다음과 같이 표시됩니다. 1236 00:57:47,750 --> 00:57:49,440 루프는 다음과 같이 표시됩니다하십시오. 1237 00:57:49,440 --> 00:57:51,060 루프는 다음과 같이 표시됩니다 동안. 1238 00:57:51,060 --> 00:57:53,316 루프는 다음과 같이 표시됩니다 동안 수행합니다. 1239 00:57:53,316 --> 00:57:54,780 >> 이 새로운 기능입니다. 1240 00:57:54,780 --> 00:57:58,753 그래서 자바 스크립트에 foreach하지 그 자체를 구성하지만,이 구조 1241 00:57:58,753 --> 00:58:03,870 이 가변 배열의 난, 그리고 난 경우는 인덱스 값이됩니다. 1242 00:58:03,870 --> 00:58:06,880 그래서 그것과 조금 다르다 foreach는하지만 새 버전의 1243 00:58:06,880 --> 00:58:10,280 자바 스크립트는 항상 나오고있다, 그래서 심지어 이러한 언어 기능 1244 00:58:10,280 --> 00:58:10,880 진화하고있다. 1245 00:58:10,880 --> 00:58:16,920 >> 그리고 옆으로, 자바 스크립트를 요즘으로 또한 마찬가지로 서버에 이용 될 수있다 1246 00:58:16,920 --> 00:58:19,920 PHP는 Node.js.라는 프레임 워크를 사용하여 1247 00:58:19,920 --> 00:58:24,670 CS50의 TF가, 케빈 중 하나를 주도하고있다 에서 사용할 수의 Node.js 세미나 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 당신이 궁금 그렇다면, 알고 당신에게 그 서버 사이드로 이것을 사용할 수 있습니다 1250 00:58:28,830 --> 00:58:33,870 잘하지만, 상당히 최근의 추세입니다 하지만에서 강력한 한. 1251 00:58:33,870 --> 00:58:35,270 >> 이 약간 다릅니다. 1252 00:58:35,270 --> 00:58:37,910 이것은 자바 스크립트의 배열입니다. 1253 00:58:37,910 --> 00:58:40,115 그리고 어떤 다른 당신을 공격 C 나 PHP 대? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 몇 가지 간단한 이야기​​가있다 우리는 여기에서 알 수 있습니다. 1256 00:58:47,420 --> 00:58:49,367 어떻게 PHP 대 실종? 1257 00:58:49,367 --> 00:58:51,652 >> 청중 : [청취]. 1258 00:58:51,652 --> 00:58:52,110 >> DAVID 마란 : 예? 1259 00:58:52,110 --> 00:58:53,322 죄송합니다, 다시 말? 1260 00:58:53,322 --> 00:58:54,740 >> 청중 : 선언되지 않음 변수의 유형입니다. 1261 00:58:54,740 --> 00:58:56,390 >> DAVID 마란 : 우리는 선언하지 않을 변수의 유형입니다. 1262 00:58:56,390 --> 00:58:59,630 그래서 사실은 꽤 PHP와 같이, 우리는 아니에요 이 변수의 타입을 지정. 1263 00:58:59,630 --> 00:59:02,670 오히려, 우리는 일반적입니다 변수에 대한 말을 VAR. 1264 00:59:02,670 --> 00:59:06,690 우리의 PHP의 불편이 없습니다 달러 기호, 어떤 지루한에있는 동안 1265 00:59:06,690 --> 00:59:09,160 유형은 더 명확 있는지 확인 않습니다 뭔가가 변수입니다. 1266 00:59:09,160 --> 00:59:11,830 여기 반면, 우리는 종류의 뒷면에있어 바로 호출하여 C의 접근 방식 1267 00:59:11,830 --> 00:59:14,500 우리가 원하는 이름으로 변수 숫자처럼, 그것은을 제공합니다. 1268 00:59:14,500 --> 00:59:17,170 또한 PHP와 같이, 우리는이 에 대한 대괄호 1269 00:59:17,170 --> 00:59:19,170 그 배열 안에 값. 1270 00:59:19,170 --> 00:59:22,490 >> 자바 스크립트에 따라서 변수도 다음과 같을 수 있습니다. 1271 00:59:22,490 --> 00:59:26,900 이의라는 문자열을 여기에 주목, 그러나 마찬가지로 우리가 지정하지 않은 1272 00:59:26,900 --> 00:59:28,750 그것은 문자열 있다고. 1273 00:59:28,750 --> 00:59:33,160 여기에 생각하지 않는 기능입니다 PHP에서 동일하게 존재 1274 00:59:33,160 --> 00:59:34,460 하지만 약간의 유사. 1275 00:59:34,460 --> 00:59:36,530 이것은 자바 스크립트의 개체입니다. 1276 00:59:36,530 --> 00:59:42,110 그리고 객체 종류의 스위스 군용 있습니다 당신의 데이터 구조의 칼 1277 00:59:42,110 --> 00:59:43,900 관광 명​​소의 번호를 사용할 수 있습니다. 1278 00:59:43,900 --> 00:59:46,860 >> 여기에, 예를 들어, 우리는 선언입니다 변수는 인용했다. 1279 00:59:46,860 --> 00:59:49,110 그 변수의 유형 개체입니다. 1280 00:59:49,110 --> 00:59:53,550 당신은 C 구조체로 생각할 수 있습니다 그 키와 값을 가지고 있습니다. 1281 00:59:53,550 --> 00:59:55,250 기호 키입니다. 1282 00:59:55,250 --> 00:59:57,350 FB는 분명히 값 주식 기호. 1283 00:59:57,350 --> 00:59:57,930 쉼표. 1284 00:59:57,930 --> 01:00:02,180 가격은 또 다른 핵심이며, 그 값은 외관상으로는 부동 소수점, 또는 1285 01:00:02,180 --> 01:00:06,510 더 일반적으로의 번호 $ 49.26의 자바 스크립트. 1286 01:00:06,510 --> 01:00:09,030 >> 그래서 PHP는 없습니다 - 1287 01:00:09,030 --> 01:00:12,980 우리는 아주 PHP 객체에 보지 이 같은, 그러나 우리는 아날로그 봤어 1288 01:00:12,980 --> 01:00:14,093 무슨 일이있는인가? 1289 01:00:14,093 --> 01:00:14,980 >> 청중 : [청취]. 1290 01:00:14,980 --> 01:00:16,110 >> DAVID 마란 : 연관 배열. 1291 01:00:16,110 --> 01:00:19,990 PHP는 연관 배열을 가지고있는 반면 따라서 누구의 구문도 약간 그렇습니다 1292 01:00:19,990 --> 01:00:20,370 다른 - 1293 01:00:20,370 --> 01:00:21,780 우리는 대괄호를 보았다. 1294 01:00:21,780 --> 01:00:23,860 우리는 이상한 화살표 기호를 보았다. 1295 01:00:23,860 --> 01:00:27,330 자바 스크립트 객체를 가지고 있지만,이는 대부분의 의미 차이 1296 01:00:27,330 --> 01:00:29,260 지금은 다른 동의어. 1297 01:00:29,260 --> 01:00:35,060 그러나, 옆으로, PHP는이 방식으로 개체하는 자바 및 기타 1298 01:00:35,060 --> 01:00:37,810 언어의 개체가 객체 지향 프로그래밍. 1299 01:00:37,810 --> 01:00:40,440 그러나 우리는이를 사용합니다 지금은 데이터 유형에 대한. 1300 01:00:40,440 --> 01:00:42,170 개체 및 연관 배열. 1301 01:00:42,170 --> 01:00:44,140 >> 이 하나는 만들 수 있습니다 좀 더 명확. 1302 01:00:44,140 --> 01:00:45,890 개체가 유용한 이유는 여기에 있습니다. 1303 01:00:45,890 --> 01:00:48,760 당신은 학생을 선언 할 때, Zamyla처럼, 우리가 실제로 할 수 1304 01:00:48,760 --> 01:00:52,630 그래서 내부 말을 캡슐화 처럼 중괄호를 사용하여 객체 1305 01:00:52,630 --> 01:00:55,060 키를 왕창 전에 여기에 값. 1306 01:00:55,060 --> 01:00:59,150 우리는 ID, 집, 이름이 등 뒤에 세미콜론 Zamyla, 1307 01:00:59,150 --> 01:01:00,690 끝에 보통. 1308 01:01:00,690 --> 01:01:04,840 >> 여기 아래도이 약간 다른뿐만 아니라, 매우 강력한 1309 01:01:04,840 --> 01:01:05,690 요즘. 1310 01:01:05,690 --> 01:01:08,780 여기에 배열, 그리고 내가 알고 있기 때문에 대괄호까지이있다 1311 01:01:08,780 --> 01:01:11,090 위쪽 및 대괄호 맨 아래에. 1312 01:01:11,090 --> 01:01:16,050 그리고 이것은 어떤 데이터의 배열 자바 스크립트 외관상으로 입력? 1313 01:01:16,050 --> 01:01:21,260 이것은 모양의 배열 세 개체처럼. 1314 01:01:21,260 --> 01:01:24,580 그리고 나는 그것이 개체를 알고 만 중괄호 때문에. 1315 01:01:24,580 --> 01:01:28,760 그리고 열린 중괄호가의 통지 몇 가지 물건, 닫기 중괄호, 쉼표, 1316 01:01:28,760 --> 01:01:31,180 다음 몇 가지 더, 쉼표, 그리고 좀 더. 1317 01:01:31,180 --> 01:01:33,800 그래서 세 가지 인수의 두 개의 쉼표로 구분. 1318 01:01:33,800 --> 01:01:36,810 >> 그래서이 세 개체의 배열입니다. 1319 01:01:36,810 --> 01:01:39,940 그리고 그 각 개체는 것으로 나타납니다 일부 학생이나 교직원 1320 01:01:39,940 --> 01:01:42,370 정렬 각각의 ID와, 집 및 이름. 1321 01:01:42,370 --> 01:01:45,060 하지만이 뭔가라는 것 JSON이라고 - 1322 01:01:45,060 --> 01:01:47,450 자바 스크립트 객체 표기법. 1323 01:01:47,450 --> 01:01:52,060 그리고 이것은 실제로 데이터 형식입니다 그래서 매우 인기있는입니다 1324 01:01:52,060 --> 01:01:55,100 유행 요즘 당신이 작성하는 경우 그 페이스 북을 사용하는 응용 프로그램 1325 01:01:55,100 --> 01:01:59,150 API, 트위터 API, 정말 거의 거기 어떤 API 요즘, 1326 01:01:59,150 --> 01:02:02,820 CS50의 자신의 일부를 포함 당신은 다시 데이터에없는 1327 01:02:02,820 --> 01:02:04,720 오래된 학교 CSV 형식입니다. 1328 01:02:04,720 --> 01:02:06,780 >> 때문에 리콜하는 CSV 슈퍼 간단합니다. 1329 01:02:06,780 --> 01:02:10,230 그것은 단지 열을 분리 쉼표로. 1330 01:02:10,230 --> 01:02:13,190 JSON 데이터는 더 많은 메타 데이터를 제공합니다. 1331 01:02:13,190 --> 01:02:17,800 모든 값 때문에와는 연관 키를 그들은 단지 가정 할 필요가 없습니다 1332 01:02:17,800 --> 01:02:22,460 0 번째 열에는 하나의 값 열입니다 또 다른 한개이고, 두 번째 열에는 또 다른 것입니다. 1333 01:02:22,460 --> 01:02:26,790 JSON 오브젝트의 모든 여기 일종이다 자기 - 설명, 각 때문에 1334 01:02:26,790 --> 01:02:30,940 이 파일의 이름 중 하나는 그대로있다 로 그것의 앞에 이름 1335 01:02:30,940 --> 01:02:32,510 문자열을 인용. 1336 01:02:32,510 --> 01:02:34,950 >> 그러니 살펴 보자 여기에 예제 몇 가지. 1337 01:02:34,950 --> 01:02:36,800 저 장비로 가자. 1338 01:02:36,800 --> 01:02:41,000 나 우리의 가상 호스트에 가자 공중에 디렉토리에 있습니다. 1339 01:02:41,000 --> 01:02:45,590 그리고 나에 가자 자바 스크립트 디렉토리에 있습니다. 1340 01:02:45,590 --> 01:02:49,610 그리고하자 가서 열어 DOM은 단지 의미 DOM-0.html, 1341 01:02:49,610 --> 01:02:51,010 문서 객체 모델. 1342 01:02:51,010 --> 01:02:53,490 그것은에 나무 물건의 아까 언급. 1343 01:02:53,490 --> 01:02:54,950 >> 나 다음을 제안 할 수 있습니다. 1344 01:02:54,950 --> 01:02:57,720 여기에 그 웹 페이지의 몸은 매우 간단하다. 1345 01:02:57,720 --> 01:03:00,170 그래서 여기 아래 하단에있는, 나는 양식을 알 수 있습니다. 1346 01:03:00,170 --> 01:03:01,500 우리는 그 전에 봤어요. 1347 01:03:01,500 --> 01:03:07,600 그것은 두 개의 입력,가 그 중 하나입니다 이름 ID는 하나의 유형이있다 1348 01:03:07,600 --> 01:03:09,830 제출하고 첫 번째 하나의 유형은 텍스트입니다. 1349 01:03:09,830 --> 01:03:11,900 그래서 이것은 실제로 매우 간단 소리. 1350 01:03:11,900 --> 01:03:13,090 >> 의 여기 가자. 1351 01:03:13,090 --> 01:03:15,390 의 여기이 페이지로 돌아 가자. 1352 01:03:15,390 --> 01:03:21,030 의 localhost를에 가자,하고로 이동 우리의 스크립트 디렉토리 및 이동 1353 01:03:21,030 --> 01:03:24,640 DOM-0, 그리고 여기 우리는이 양식이 있습니다. 1354 01:03:24,640 --> 01:03:26,550 그래서 분명히의 모든 페이지는 않습니다. 1355 01:03:26,550 --> 01:03:28,740 그와 함께 이름 필드가 버튼을 제출합니다. 1356 01:03:28,740 --> 01:03:30,340 하지만 여기에 PHP를 사용하지 않을거야. 1357 01:03:30,340 --> 01:03:34,310 나는 모든 클라이언트 측 할거야 그래서 다음과 같이 자바 스크립트로 말할 수 있습니다. 1358 01:03:34,310 --> 01:03:39,100 >> 나는 실제로 이름을 준 것을 알 수 독특한이 입력 필드 1359 01:03:39,100 --> 01:03:42,350 식별자, 그 사실 것 순간에 좀 시간을 절약 할 수 있습니다. 1360 01:03:42,350 --> 01:03:45,480 그리고 다른 태그를 도입 한 알 내 웹 페이지의 머리에, 1361 01:03:45,480 --> 01:03:46,565  태그입니다. 1362 01:03:46,565 --> 01:03:50,120 >> 그래서 자바 스크립트입니다 이러한 의미에서의 클라이언트 측 프로그래밍 언어입니다. 1363 01:03:50,120 --> 01:03:55,020 이 경우, 단지 CSS처럼, 내가 넣었습니다 그것은 바로 안에 내 HTML의. 1364 01:03:55,020 --> 01:03:58,810 하지만 함수를 선언 한 발견 PHP처럼 조금 보이는 1365 01:03:58,810 --> 01:04:01,530 구문, 그러나 이것은 실제로 자바 스크립트 때문에 다시, 그것은이다 1366 01:04:01,530 --> 01:04:03,920 브라우저에서 클라이언트 측. 1367 01:04:03,920 --> 01:04:07,590 그리고이가 무슨 생각 가지고 , 구문 비록 몇 가지 작업을 수행 1368 01:04:07,590 --> 01:04:09,338 여기에 새로운 기능입니다. 1369 01:04:09,338 --> 01:04:11,760 >> 대상 : 누구에게 인사. 1370 01:04:11,760 --> 01:04:14,020 >> DAVID 마란 : 그것은 인사거야 이 페이지를 누구를 방문 할 수 있습니다. 1371 01:04:14,020 --> 01:04:15,120 어떻게? 1372 01:04:15,120 --> 01:04:18,070 >> 통지 그래서, 자바 스크립트 밝혀 경고 () 함수가있다. 1373 01:04:18,070 --> 01:04:22,840 이 슬픈 기능의 아주 종류이다 정말은 사용자를 귀찮게하는 경향이있다. 1374 01:04:22,840 --> 01:04:25,440 그것은 당신이 정말 사용해야 하나 아니에요 일반적으로, 그러나 신속하고 더러운 1375 01:04:25,440 --> 01:04:27,710 뭔가를 인쇄 종류의 방법 그래픽 사용자에게 1376 01:04:27,710 --> 01:04:29,180 브라우저의 인터페이스. 1377 01:04:29,180 --> 01:04:31,400 내가있어 그 여기에 주목 작은 따옴표 문자열입니다. 1378 01:04:31,400 --> 01:04:36,010 그것은 밝혀 그 C, 자바 스크립트와 달리 실제로 당신은 하나를 사용 가질 수 1379 01:04:36,010 --> 01:04:38,730 따옴표, 솔직히 그냥 일종의 사이 문체 대회 1380 01:04:38,730 --> 01:04:41,180 자바 스크립트 프로그래머 작은 따옴표를 사용합니다. 1381 01:04:41,180 --> 01:04:43,750 PHP는, 실제로는 약간이 다른 의미. 1382 01:04:43,750 --> 01:04:45,810 하지만 지금은 그냥 알고 그 유일한 이유이다. 1383 01:04:45,810 --> 01:04:49,270 자바 스크립트 규칙에 자주 작은 따옴표를 사용하지만, 우리가 사용할 수 1384 01:04:49,270 --> 01:04:50,950 뿐만 아니라 두 곳에서 따옴표. 1385 01:04:50,950 --> 01:04:52,610 >> 그래서이 재미있다. 1386 01:04:52,610 --> 01:04:56,430 우리가 그것을했던 지난 시간을 기억 나무를 그린 화면 사진 1387 01:04:56,430 --> 01:04:59,720 당신은 HTML 노드 및이 있었다 위치 헤드 노드, 몸 노드 1388 01:04:59,720 --> 01:05:00,800 그리고 일부 텍스트입니다. 1389 01:05:00,800 --> 01:05:04,700 그러나 하나의 특별한 노드가 있었다 나는 문서를 호출 한 맨. 1390 01:05:04,700 --> 01:05:08,260 잘, 그것은 자바 스크립트에서 어떤 밝혀 자바 스크립트에서 프로그램을 작성할 때 1391 01:05:08,260 --> 01:05:11,040 브라우저에서, 당신은에 액세스 할 수 있습니다 특별한 전역 변수. 1392 01:05:11,040 --> 01:05:14,130 PHP의 슈퍼 전역에 정신 유사하게, 이 하나에서 호출됩니다 1393 01:05:14,130 --> 01:05:16,050 모두 소문자 문서입니다. 1394 01:05:16,050 --> 01:05:21,480 >> 그것은 구조체처럼하지만,이 구조체 또한 내부 기능을 가지고 있습니다. 1395 01:05:21,480 --> 01:05:23,790 그래서 C 구조체은 일반적으로 데이터가 있습니다. 1396 01:05:23,790 --> 01:05:29,060 이 같은 자바 스크립트 객체 만 기술적으로도 기능을 가지고있다, 1397 01:05:29,060 --> 01:05:31,830 달리 방법으로 알려진, 그것의 내부. 1398 01:05:31,830 --> 01:05:35,750 그리고 당신은 내부의 함수를 호출 할 수 있습니다 이 객체는 말 그대로 그 일을 1399 01:05:35,750 --> 01:05:39,610 이름, 점, 다음의 이름 함수 또는 메서드를 다시. 1400 01:05:39,610 --> 01:05:41,160 정말, 그냥 동의어이다. 1401 01:05:41,160 --> 01:05:42,450 >> 이 기능은 무엇입니까? 1402 01:05:42,450 --> 01:05:43,840 당신은 이름에서 추측 종류의 수 있습니다. 1403 01:05:43,840 --> 01:05:45,590 ID에 의해 요소를 가져옵니다. 1404 01:05:45,590 --> 01:05:50,040 그래서 이것은, 웹 페이지를 검색 할 것입니다 찾고, 그 나무를 검색 1405 01:05:50,040 --> 01:05:55,210 어떤 노드 AKA 요소가 견적 맺다 이름의 고유 ID입니다. 1406 01:05:55,210 --> 01:05:56,560 그리고 무엇을 내가 할 것입니까? 1407 01:05:56,560 --> 01:06:00,350 나는 내부의 값을 가져 오는거야 이 트리의 노드, 나는 갈거야 1408 01:06:00,350 --> 01:06:02,580 어떻게 든 이름으로 인사합니다. 1409 01:06:02,580 --> 01:06:05,360 >> 그래서 우리는하지 했는데도, 추측을 아직 본 적​​이, 무엇을 더하기 1410 01:06:05,360 --> 01:06:07,396 기호는 여기와 여기에 아마 의미? 1411 01:06:07,396 --> 01:06:08,230 >> 청중 : 연결합니다. 1412 01:06:08,230 --> 01:06:09,220 >> DAVID 마란 : 연결합니다. 1413 01:06:09,220 --> 01:06:11,290 마우스 오른쪽 단추로, 이들은 단지 종류의 의사 결정을 설계 1414 01:06:11,290 --> 01:06:12,280 사람들이 년 전했다. 1415 01:06:12,280 --> 01:06:15,190 PHP에서는 연결할 점이있는 것을. 1416 01:06:15,190 --> 01:06:18,800 C에서, 당신은 몇 가지 농구를 통해 점프 strcopy 같은 기능을 () 또는 전화 1417 01:06:18,800 --> 01:06:20,600 strcat와 () 또는 다른 같은 기능을합니다. 1418 01:06:20,600 --> 01:06:22,060 그러나 자바 스크립트에서, 당신은 플러스를 사용합니다. 1419 01:06:22,060 --> 01:06:24,770 그래서 이것은 단지 연접된다 세 개의 문자열 - 1420 01:06:24,770 --> 01:06:27,850 안녕하세요, 이름, 다음 느낌표. 1421 01:06:27,850 --> 01:06:30,390 >> 그럼 언제 그리고 왜이 기능은 비록라고? 1422 01:06:30,390 --> 01:06:33,150 음,에서 추측을 하단의 HTML. 1423 01:06:33,150 --> 01:06:35,810 왜라는 () 인사, 또는 언제? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> 분명히, 베스트로 나는에 알 수 있습니다 이 양식을 제출하면, 제출, 1426 01:06:44,030 --> 01:06:47,200 나는 무엇이든 할거야 이 따옴표의 내부. 1427 01:06:47,200 --> 01:06:50,900 특히, 내가 전화하려고 해요 인사 () 한 후 false를 반환합니다. 1428 01:06:50,900 --> 01:06:53,090 >> 그럼, 무엇을 그물 보자 효과는 여기에 처음이다. 1429 01:06:53,090 --> 01:06:58,290 그래서 내가 가서 입력하자 말하자면, 로렌, 제출합니다. 1430 01:06:58,290 --> 01:06:59,440 로렌 안녕하세요. 1431 01:06:59,440 --> 01:07:02,990 어쩌면이 그냥 있다면 보자 행운의 구현입니다. 1432 01:07:02,990 --> 01:07:03,200 아니. 1433 01:07:03,200 --> 01:07:05,990 그래서 밖으로 입력 뭐든간에 실제로이 둘의 이름을 지정합니다. 1434 01:07:05,990 --> 01:07:07,970 >> 하지만 변경하지 않는 무엇을 알 수 있습니다. 1435 01:07:07,970 --> 01:07:10,360 URL은 여전히​​ DOM-0.html입니다. 1436 01:07:10,360 --> 01:07:11,820 더 register.php가 없습니다. 1437 01:07:11,820 --> 01:07:13,110 더 번째 파일은 없습니다. 1438 01:07:13,110 --> 01:07:14,930 아무 작업의 속성은 없습니다. 1439 01:07:14,930 --> 01:07:19,720 그래서이 반환 거짓 아마 일을? 1440 01:07:19,720 --> 01:07:23,660 이유는 다음 인사 호출 () 및 AM 아마 false를 반환? 1441 01:07:23,660 --> 01:07:26,420 클릭 할 때 어떤 일이 일반적으로 발생 심지어 우리가이 양식에 제출 1442 01:07:26,420 --> 01:07:27,854 지난 주에 본 적있어? 1443 01:07:27,854 --> 01:07:29,900 >> 청중 : [청취]. 1444 01:07:29,900 --> 01:07:30,860 >> DAVID 마란 : 그것은 바로, 어딘가로? 1445 01:07:30,860 --> 01:07:32,720 그것은 어떤 대상 URL로 이동합니다. 1446 01:07:32,720 --> 01:07:34,120 하지만 난 여기에 발생하지 않습니다. 1447 01:07:34,120 --> 01:07:37,620 내 웹 페이지가 완전히되고 싶어요 일단 당신이있어 Gmail은, 같은 동적 1448 01:07:37,620 --> 01:07:38,650 , 당신은 거기에있어. 1449 01:07:38,650 --> 01:07:42,900 URL은 방법이 변경되지 않습니다 전체 페이지를 다시로드 나타냅니다. 1450 01:07:42,900 --> 01:07:46,680 오히려, 내가 뭔가를 변경하려면 뭔가를 인쇄 등 1451 01:07:46,680 --> 01:07:48,320 여기에 화면에. 1452 01:07:48,320 --> 01:07:49,630 >> 그럼 내가이 청소하자 위로 조금. 1453 01:07:49,630 --> 01:07:55,370 내가하지 DOM-0를 열겠습니다 만, 나 DOM-2를 열 수 있습니다. 1454 01:07:55,370 --> 01:07:57,350 그냥 그래서 당신은 여기에 몇 가지 구문을 본 적이있다. 1455 01:07:57,350 --> 01:08:02,080 >> 그것은 밝혀 그 무엇을 우리 단지 원시 자바 스크립트를 사용했다. 1456 01:08:02,080 --> 01:08:04,420 그래서 이것은 진정한 언어 자바 스크립트. 1457 01:08:04,420 --> 01:08:07,340 여러분 중 일부는 알고 있습니다 jQuery를 호출 라이브러리. 1458 01:08:07,340 --> 01:08:09,980 >> 그래서 jQuery를가 동일하지 않습니다 자바 스크립트와 같은 것. 1459 01:08:09,980 --> 01:08:14,110 그것은 정말 똑똑 단지 도서관의 사람이 쓴 대중화 등 1460 01:08:14,110 --> 01:08:18,100 지금은 세계에서 거의 모든 사람 자바 스크립트를 사용하는 경우 jQuery를 사용합니다. 1461 01:08:18,100 --> 01:08:20,890 그리고 첫눈에, 정직하게, 그것은 좀 더 비밀 보인다. 1462 01:08:20,890 --> 01:08:24,990 하지만 당신은 당신이 가고, 특히 찾을 수 있습니다 이 웹과 최종 프로젝트 1463 01:08:24,990 --> 01:08:29,029 개발, 당신​​은 찾을 수 있습니다 그이 물건을 정리하고 당신에게 꽤 저장 1464 01:08:29,029 --> 01:08:30,229 몇 줄의 코드. 1465 01:08:30,229 --> 01:08:33,189 >> 그래서보기에 그냥 눈을하게하는 방법 이 양식이 작동하고 있습니다. 1466 01:08:33,189 --> 01:08:35,664 나는 분명히 무엇을 제거 않았다 주목 내 HTML에서? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 제출 핸들러는 더에 없다 말하자면. 1469 01:08:40,630 --> 01:08:41,470 어떤 속성은 없습니다. 1470 01:08:41,470 --> 01:08:43,359 당신이 알고 있기 때문에, 무엇을 정말 맘에 안 들었어요? 1471 01:08:43,359 --> 01:08:45,640 우리가 떨어지는 것처럼 느꼈다 이 오래된 습관에. 1472 01:08:45,640 --> 01:08:49,340 그것은 루즈 느끼기 시작했다 것처럼 모두와 CSS를 뒤섞다하기 1473 01:08:49,340 --> 01:08:52,149 HTML, 당신이 종류의 던지는하고 있기 때문에 모든 개 이상의 다른 언어 1474 01:08:52,149 --> 01:08:56,180 장소와 유사하게이 느낌을 시작 했 아래로 이동하는 나쁜 도로 같은 곳 1475 01:08:56,180 --> 01:09:01,069 나는 내부에 자바 스크립트 코드를 걸었 내 HTML보다는 그것을 인수 분해. 1476 01:09:01,069 --> 01:09:02,279 >> 그래서 여기에 교훈. 1477 01:09:02,279 --> 01:09:05,080 DOM-2.html, 나는 그것을 감안하고 있습니다. 1478 01:09:05,080 --> 01:09:07,399 그리고 나는 약간 일을하고 있어요 다르게. 1479 01:09:07,399 --> 01:09:09,630 지금은 내 손을 흔들거야 이 어떤 기능을하는지에 1480 01:09:09,630 --> 01:09:10,590 후드 아래에. 1481 01:09:10,590 --> 01:09:14,210 그러나 지금에 대한 가정이 그 첫 번째 이 라이브러리의 코드 라인 1482 01:09:14,210 --> 01:09:18,170 jQuery를 그냥 의미라고 할 때 문서는 다음을 수행 준비가되어 있습니다. 1483 01:09:18,170 --> 01:09:20,080 >> 웹 페이지가 걸릴 수 있기 때문에 로드 시간. 1484 01:09:20,080 --> 01:09:23,029 당신은 느린 인터넷에있을 수 있습니다 연결, 그리고 그것은 회전 될 수도 1485 01:09:23,029 --> 01:09:25,290 과 회전, 그리고 마지막으로 그것은 장전. 1486 01:09:25,290 --> 01:09:29,060 코드 줄은 때까지 기다리라고 전체 페이지, 문서 준비 1487 01:09:29,060 --> 01:09:31,189 이 코드를 실행하기 전에 준비가되어 있습니다. 1488 01:09:31,189 --> 01:09:34,390 >> 그리고 지금 알이는 아마도 먼저 가장 유용 1489 01:09:34,390 --> 01:09:36,189 멀리 jQuery를 빼앗아. 1490 01:09:36,189 --> 01:09:42,140 여기이 선은 정신에 매우 유사합니다 여기이 훨씬 더 라인. 1491 01:09:42,140 --> 01:09:46,920 원시 자바 스크립트 코드에서,이 반면에 문서 전역 개체를 존재하는 1492 01:09:46,920 --> 01:09:50,460 ()있는 getElementById라는 기능이 있습니다 쓴 사람 1493 01:09:50,460 --> 01:09:55,720 jQuery를 그냥 말을 그렇게 단순화 달러 기호, 다음의 내부 1494 01:09:55,720 --> 01:10:00,250 괄호는 두 개의 따옴표를 넣고, 다음에 해시 기호를 넣어 1495 01:10:00,250 --> 01:10:02,250 당신이 잡아 할 고유 ID. 1496 01:10:02,250 --> 01:10:06,170 그래서이 동일합니다 document.getElementById를. 1497 01:10:06,170 --> 01:10:11,090 >> 한편,. 단지에 의미 제출 당신이있어 어떤 형태의 제출 1498 01:10:11,090 --> 01:10:14,240 왼쪽 참조, 갈 앞서이를 실행합니다. 1499 01:10:14,240 --> 01:10:16,600 그러나 이것은 지금 너무 호기심이다. 1500 01:10:16,600 --> 01:10:19,560 에 대한 이상한 무엇 무엇을 여기서 강조했습니다? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 뿐만 아니라 그것은 종류의 구문입​​니다 새로운, 뭔가 빠진도 있습니다. 1503 01:10:28,594 --> 01:10:29,558 >> 청중 : 그것은 단지 함수라고? 1504 01:10:29,558 --> 01:10:31,970 그것은 경고라는 아니에요? 1505 01:10:31,970 --> 01:10:32,440 >> DAVID 마란 : 네. 1506 01:10:32,440 --> 01:10:35,450 음, 경고 () 다운 여기에, 공정하게. 1507 01:10:35,450 --> 01:10:39,520 그러나 전혀 언급이 없다 당신이 아는 것처럼, 이름, foo는 나 1508 01:10:39,520 --> 01:10:40,980 여기까지 뭔가. 1509 01:10:40,980 --> 01:10:43,830 그리고 사실,이 기능 중 하나입니다 아주의 자바 스크립트의 1510 01:10:43,830 --> 01:10:45,370 강력하지만 또한 매우 새로운. 1511 01:10:45,370 --> 01:10:47,460 그리고 PHP는 실제로뿐만 아니라이 있습니다. 1512 01:10:47,460 --> 01:10:49,500 >> 내가 가서 보자 진짜 빨리 뭔가. 1513 01:10:49,500 --> 01:10:52,030 내가 가서 여기를 넣어 보자. 1514 01:10:52,030 --> 01:10:52,600 저를 내버려 두세요. 1515 01:10:52,600 --> 01:10:53,690 기능. 1516 01:10:53,690 --> 01:10:56,455 )의 (이 처리기를 호출 할 수 있습니다. 1517 01:10:56,455 --> 01:10:58,290 핸들러 함수는 말하자면. 1518 01:10:58,290 --> 01:11:00,110 일부 작업을 처리 한 것을. 1519 01:11:00,110 --> 01:11:02,700 내 들여 쓰기를 정리하자. 1520 01:11:02,700 --> 01:11:04,380 여기에 이​​것을 넣어. 1521 01:11:04,380 --> 01:11:06,090 그리고 여기에 넣어. 1522 01:11:06,090 --> 01:11:06,470 네. 1523 01:11:06,470 --> 01:11:07,060 확인을 클릭합니다. 1524 01:11:07,060 --> 01:11:10,300 >> 그래서 지금이라는 기능을 가지고 정말 모르는 핸들러 () 1525 01:11:10,300 --> 01:11:10,890 그것은 아직 무엇을. 1526 01:11:10,890 --> 01:11:12,710 그것은 단지 아직도 그 물건을 가지고 있습니다. 1527 01:11:12,710 --> 01:11:13,900 으악. 1528 01:11:13,900 --> 01:11:15,820 너무 많이했다. 1529 01:11:15,820 --> 01:11:18,490 이 작업을 수행하자. 1530 01:11:18,490 --> 01:11:18,990 좋아. 1531 01:11:18,990 --> 01:11:20,240 미안 해요. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 좋아. 1534 01:11:23,690 --> 01:11:24,720 내가이 작업을 수행 할 수 있습니다. 1535 01:11:24,720 --> 01:11:25,020 확인을 클릭합니다. 1536 01:11:25,020 --> 01:11:27,040 좋은 직선 보인다 앞으로 지금. 1537 01:11:27,040 --> 01:11:29,090 내가이 작업을 수행 할 수 있습니다. 1538 01:11:29,090 --> 01:11:29,860 이 작업을 수행합니다. 1539 01:11:29,860 --> 01:11:30,950 하고 확인을 클릭합니다. 1540 01:11:30,950 --> 01:11:33,080 그래서 지금, 여기에 이​​것을 넣어 보자. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 즉시 더 이상 프로그램이 없습니다. 1543 01:11:37,270 --> 01:11:37,900 확인을 클릭합니다. 1544 01:11:37,900 --> 01:11:40,000 >> 그래서 지금, 다시 가자 이야기가 시작된 곳. 1545 01:11:40,000 --> 01:11:43,530 이전에, 그이 줄 여기있다 문서가 준비되면, 이동 수단 1546 01:11:43,530 --> 01:11:44,380 앞서이 작업을 수행. 1547 01:11:44,380 --> 01:11:45,660 내가 무엇을 하시겠습니까? 1548 01:11:45,660 --> 01:11:49,070 그럼 구체적으로, 내가 가고 싶어 앞서 다음을 수행하십시오. 1549 01:11:49,070 --> 01:11:53,700 이 코드 줄을 실행 한 다음, 제가 당신이 원하는 것은이 호출됩니다 1550 01:11:53,700 --> 01:11:56,370 폼이 제출 될 때 작동합니다. 1551 01:11:56,370 --> 01:11:57,730 >> 지금이 흥미로운 것입니다. 1552 01:11:57,730 --> 01:11:59,170 이 함수 자체가 아닙니다. 1553 01:11:59,170 --> 01:12:02,540 내가 괄호를 넣어 아니에요 통지 여기에 정상적인 방법으로합니다. 1554 01:12:02,540 --> 01:12:06,800 말 그대로라는 함수를 전달 해요 다른 기능 핸들러 () 1555 01:12:06,800 --> 01:12:10,800 인수로로) (제출라고 그것은 변수처럼 비록. 1556 01:12:10,800 --> 01:12:14,290 그리고 이것은의 기능 중 하나입니다 자바 스크립트 자체 기능입니다 1557 01:12:14,290 --> 01:12:15,710 정말 그냥 개체입니다. 1558 01:12:15,710 --> 01:12:18,350 사실, 그들은 정말 그냥있어 어떤 종류의 변수. 1559 01:12:18,350 --> 01:12:21,340 그리고 함수의 이름 인 경우 핸들러는 (), 내가하지 못할 이유가 없다 1560 01:12:21,340 --> 01:12:23,390 여기에 인수로 전달합니다. 1561 01:12:23,390 --> 01:12:27,530 이 의미 때 폼 데모의 ID입니다에 1562 01:12:27,530 --> 01:12:29,320 제출이 함수를 호출합니다. 1563 01:12:29,320 --> 01:12:32,770 >> 하지만 지금은,이 모든 실행 취소 왜 그때는 아마하지 않았다 1564 01:12:32,770 --> 01:12:34,850 이 순간 전? 1565 01:12:34,850 --> 01:12:36,840 음,이 익명의 함수이다. 1566 01:12:36,840 --> 01:12:41,080 솔직히 때문에, 왜 내가 실현 를 선언 시간을 낭비 귀찮게 1567 01:12:41,080 --> 01:12:45,540 함수는 호출 할 핸들러 ()를 호출 단 하나의 장소에서 그것? 1568 01:12:45,540 --> 01:12:48,640 나는 이름이 필요하지 않습니다, 난하지 않으면 그것은 하나 이상의 장소, 호출 할 필요가 1569 01:12:48,640 --> 01:12:51,200 하자 그냥 함수를 구현 오른쪽 어디를해야합니다. 1570 01:12:51,200 --> 01:12:55,190 그리고 자바 스크립트와 PHP 지원 어떻게 익명 함수라고합니다 1571 01:12:55,190 --> 01:12:57,900 내가 그 여기에 정확하게 수행 할 수 있습니다. 1572 01:12:57,900 --> 01:12:59,570 >> 그러나 우리는 단지 표면을 긁는거야. 1573 01:12:59,570 --> 01:13:02,430 하자 그냥 몇 애타게 여기에 최종 예. 1574 01:13:02,430 --> 01:13:04,600 >> 나는 quote.php로 이동합니다. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 이것은 실제로 PHP 것을 알 기능, 내가 쓴 PHP 프로그램 1577 01:13:11,870 --> 01:13:15,270 라는 HTTP 매개 변수를 예상하는 기호, 나는 전달할 수 1578 01:13:15,270 --> 01:13:16,730 FB 같은 값을 반환합니다. 1579 01:13:16,730 --> 01:13:20,010 그리고 우리는 실제로 소스를 보면 코드가,이 무료 웹 사이트를 쿼리합니다 1580 01:13:20,010 --> 01:13:23,680 단지 P-집합처럼, 야후 금융라고 일곱, 그것은 나에게 돌아 오는 것 1581 01:13:23,680 --> 01:13:26,580 분명히 뭔가 알려진 형식은 JSON입니다 - 1582 01:13:26,580 --> 01:13:28,010 자바 스크립트 객체 표기법. 1583 01:13:28,010 --> 01:13:28,810 그냥 객체입니다. 1584 01:13:28,810 --> 01:13:32,500 중괄호, 따옴표를, 통지 콜론과 쉼표. 1585 01:13:32,500 --> 01:13:34,720 >> 이제 한편이 꽤 멋지다. 1586 01:13:34,720 --> 01:13:38,520 아마 프로그래밍을 사용할 수 있기 때문에 URL을 생성하는 언어 1587 01:13:38,520 --> 01:13:40,370 동적으로 다음과 같이 그 표정, 오른쪽? 1588 01:13:40,370 --> 01:13:43,340 내가 구글로 변경할 수 있습니다 구글의를 다시 1589 01:13:43,340 --> 01:13:47,930 $ 1,017.55의 주가. 1590 01:13:47,930 --> 01:13:49,640 그래서 우리는 이제이 기능을 사용 할 수없는 경우 보자. 1591 01:13:49,640 --> 01:13:56,590 >> 여기에 내가 AJAX-0에 가자, 그 다음과 같습니다. 1592 01:13:56,590 --> 01:13:59,750 그냥이 웹 사이트의 버튼 형태. 1593 01:13:59,750 --> 01:14:05,860 내가 여기 가서 YHOO를 입력하자 야후의 주식 기호에 대해 가져 오기를 클릭 1594 01:14:05,860 --> 01:14:10,530 따옴표, 그리고 지금 내가 왔 통지 32.86와 경고. 1595 01:14:10,530 --> 01:14:14,050 >> 내가 실제로 애호가 버전에 가자 이 페이지 버전 두 가지, 그리고 1596 01:14:14,050 --> 01:14:17,530 하자의 유형은 마이크로 소프트, MSFT 말한다. 1597 01:14:17,530 --> 01:14:18,410 견적. 1598 01:14:18,410 --> 01:14:19,850 그리고 지금, 어떤 경고를 확인할 수 없습니다. 1599 01:14:19,850 --> 01:14:22,770 그것이 말하는 곳 통지 가격 결정 하는가? 1600 01:14:22,770 --> 01:14:27,060 이 예제의 간단한이 있습니다 어떤 Gchat의 힌트와 페이스 북 1601 01:14:27,060 --> 01:14:30,070 채팅, 그리고 Gmail은, 등 기타 웹 사이트는 실제로로하고있다 1602 01:14:30,070 --> 01:14:31,290 웹 페이지를 변경. 1603 01:14:31,290 --> 01:14:31,800 >> 이 알 수 있습니다. 1604 01:14:31,800 --> 01:14:33,120 내가 페이지를 다시로드 할 수 있습니다. 1605 01:14:33,120 --> 01:14:35,080 내가 크롬의 속성을 열 수 있습니다. 1606 01:14:35,080 --> 01:14:36,890 내가 요소에 가자 여기에 탭을 아래로. 1607 01:14:36,890 --> 01:14:42,310 지금 깨달으면 나는 여기 아래에있는 줌 이 최대를 열고이 내 것을 알 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - 내 문서 객체 모델. 1609 01:14:44,500 --> 01:14:45,920 이건 내 HTML입니다. 1610 01:14:45,920 --> 01:14:48,750 이 것 비록 지금은, 알 모두 그것을보고 약간 어려운 것 1611 01:14:48,750 --> 01:14:52,080 한 번에 장소, 나는 FB에 입력하면 여기까지, 바닥을보고 1612 01:14:52,080 --> 01:14:54,110 화면 만. 1613 01:14:54,110 --> 01:14:57,720 >> 실제로 변화하는 즉시 내 HTML. 1614 01:14:57,720 --> 01:15:01,670 그리고 그것은 아주 간단이 짓 이런 일을하고 있습니다. 1615 01:15:01,670 --> 01:15:06,800 나는 아약스-2를 열 경우, 구현 통지 로 섹시하게 뭔가 1616 01:15:06,800 --> 01:15:09,560 꽤 추한지라도, 그와 같은 그러나 같은 정교한 1617 01:15:09,560 --> 01:15:11,910 기능적으로, 그것은 몇 가지가 있습니다 하단에 HTML. 1618 01:15:11,910 --> 01:15:13,810 하지만 태그를 사용 확인할 수 있습니다. 1619 01:15:13,810 --> 01:15:16,640 우리는 전에 사용하지했지만, 이것이다 좋아하지만, 강제하지 않는다 1620 01:15:16,640 --> 01:15:17,840 새 줄로 모든 것을. 1621 01:15:17,840 --> 01:15:20,830 그냥 사각형 영역을 만든다 같은 줄에 기본적으로. 1622 01:15:20,830 --> 01:15:22,870 >> 나는 그것을 가격의 ID를 준 것을 알 수 있습니다. 1623 01:15:22,870 --> 01:15:26,800 그리고 동일한을 사용하여 밝혀 자바 스크립트 라이브러리, 난 기능을 가지고 1624 01:15:26,800 --> 01:15:30,440 때마다라고하는 따옴표 ()를 호출 양식이 제출됩니다. 1625 01:15:30,440 --> 01:15:31,800 무엇을 내가하고있는 것은 이것이다. 1626 01:15:31,800 --> 01:15:35,730 나는 자바 스크립트에서 변수를 선언하고있어 값을 저장, URL 호출 1627 01:15:35,730 --> 01:15:38,650 quote.php? 기호 =. 1628 01:15:38,650 --> 01:15:44,220 즉, 나 자신이 시작하고 다음 HTTP 요청을 준비하고 할 1629 01:15:44,220 --> 01:15:49,250 나는 플러스로 그에 연결하는 해요 ID를 가진 어떤 요소 1630 01:15:49,250 --> 01:15:54,190 심볼, 그 통지하는가이다 바로 여기 아래 텍스트 필드. 1631 01:15:54,190 --> 01:15:56,630 그래서처럼 우리는 과거의 형태를 가지고 있었다. 1632 01:15:56,630 --> 01:16:01,450 >> 경우 그리고 그것은있는 jQuery 밝혀 당신 발의 호출을 호출합니다. 발 () 1633 01:16:01,450 --> 01:16:05,900 가져 함수 값 함수 사용자가 들어 입력했다 어떤 1634 01:16:05,900 --> 01:16:08,920 그리고 네트워크 트래픽의 그 일이 일어. 1635 01:16:08,920 --> 01:16:11,230 $.해서 getJSON. 1636 01:16:11,230 --> 01:16:13,720 >> 그리고 여담으로, 달러 기호입니다 단지 속기 표기법. 1637 01:16:13,720 --> 01:16:16,860 정말 jQuery.getJSON입니다. 1638 01:16:16,860 --> 01:16:21,520 이 URL에서 JSON에 저를 얻을 때 요청이 돌아 오면,이 전화 1639 01:16:21,520 --> 01:16:26,550 함수와 인수로 전달 무엇이든은 서버에서 다시왔다. 1640 01:16:26,550 --> 01:16:31,205 >> , 즉 그래서 다시 들으면 브라우저, 나는 quote.php로 돌아가, 1641 01:16:31,205 --> 01:16:35,590 무엇을 내 브라우저가하는 일은 점점입니다 이 데이터 덩어리. 1642 01:16:35,590 --> 01:16:38,930 그리고 여기이 웹 페이지로 이동하면, 우리는 대신에 네트워크에 가면 알 수 1643 01:16:38,930 --> 01:16:43,820 탭을 취소 한 다음 입력 구글에 대한 GOOG 같은 및 Get 1644 01:16:43,820 --> 01:16:46,340 견적 페이지가 변경되지 않은 알 수 있습니다. 1645 01:16:46,340 --> 01:16:50,990 그러나, HTTP 요청이 제로 무엇 우리가 보면 다시 여기에왔다 1646 01:16:50,990 --> 01:16:56,130 응답은 JSON의 전체 무리입니다 우리는 함께 마지막으로 액세스 한 1647 01:16:56,130 --> 01:16:58,070 여기에 간단한 라인. 1648 01:16:58,070 --> 01:17:00,150 >> 데이터가 입수 된 것입니다 서버에서. 1649 01:17:00,150 --> 01:17:02,120 가격의 이름 내가 걱정 키. 1650 01:17:02,120 --> 01:17:05,230 그래서 data.price 날이 있습니다. 1651 01:17:05,230 --> 01:17:07,540 >> 이제 한편,이 마지막 예입니다. 1652 01:17:07,540 --> 01:17:09,280 당신은 페이지에 아직 더 많은 작업을 수행 할 수 있습니다. 1653 01:17:09,280 --> 01:17:12,440 하나의 사실은, 두 개의 아니라. 1654 01:17:12,440 --> 01:17:14,780 우리는 다시 가져올 수있는 당신이 기억한다면, 태그. 1655 01:17:14,780 --> 01:17:15,850 즉, 자바 스크립트입니다. 1656 01:17:15,850 --> 01:17:17,110 우리는 할 수 있습니다. 1657 01:17:17,110 --> 01:17:17,690 매우 흥미로운. 1658 01:17:17,690 --> 01:17:18,800 우리는 클리프 행어로 그 둘 게요. 1659 01:17:18,800 --> 01:17:21,590 >> 하지만 더 호쾌하게, 당신은 할 수 이 같은 일을 할. 1660 01:17:21,590 --> 01:17:25,940 나는이 위치 정보-1에 가면, 그것은 밝혀 크롬은 우리가 있다는 것을 알고 1661 01:17:25,940 --> 01:17:30,672 위도 경도 42.37. -71.10. 1662 01:17:30,672 --> 01:17:32,940 그래서 더이있다 귀하의 처분에. 1663 01:17:32,940 --> 01:17:34,290 하지만 그 다음 주에 더. 1664 01:17:34,290 --> 01:17:35,540 월요일에 참조하십시오. 1665 01:17:35,540 --> 01:17:37,558