1 00:00:00,000 --> 00:00:08,350 2 00:00:08,350 --> 00:00:09,710 >> 케빈 슈 미드 : 여러분 안녕하세요. 3 00:00:09,710 --> 00:00:12,640 CS50 세미나에 오신 것을 환영합니다 Node.js.에 4 00:00:12,640 --> 00:00:13,955 내 이름은 케빈입니다. 5 00:00:13,955 --> 00:00:15,580 나는 CS50의 TF 해요. 6 00:00:15,580 --> 00:00:17,650 그리고 종류의 정말 흥분 같이 해요 이번 세미나에 대한. 7 00:00:17,650 --> 00:00:20,430 나는 Node.js 아주 멋진 생각합니다. 8 00:00:20,430 --> 00:00:24,200 나는이 세미나 사용할 수 있기를 바랍니다 에 대한 좋은 것 같아요, 발판으로 9 00:00:24,200 --> 00:00:26,380 최종 프로젝트의 경우 일부 당신이 사용에 관심 10 00:00:26,380 --> 00:00:27,630 Node.js. 같은 11 00:00:27,630 --> 00:00:29,770 12 00:00:29,770 --> 00:00:33,320 >> 우리는 정렬 세미나를 시작합니다 단지 약간의 이야기 13 00:00:33,320 --> 00:00:36,970 배경의 확장 성을 가지 다음 Node.js의 관점, 그리고 14 00:00:36,970 --> 00:00:39,240 우리는 몇 가지 코드 예제로 이동합니다. 15 00:00:39,240 --> 00:00:42,340 그리고 웹 사이트에 코드를해야합니다, 당신은 코드를 볼 수 있습니다. 16 00:00:42,340 --> 00:00:45,475 그리고 세미나 후에, 나는 이야기 정렬합니다 당신은 Node.js를 설정하는 방법에 대한 17 00:00:45,475 --> 00:00:48,220 컴퓨터. 18 00:00:48,220 --> 00:00:48,710 >> OK. 19 00:00:48,710 --> 00:00:49,760 그래서 지금 당장 시작하자. 20 00:00:49,760 --> 00:00:53,700 그래서 난 그냥 얘기하고 싶지 추측 웹 서버, 정말 처음. 21 00:00:53,700 --> 00:00:59,730 그리고이 토론을 시작하기 위해, 기본적으로 출신도있다 22 00:00:59,730 --> 00:01:04,269 CS61에 사용되는 교과서, 어떤 기본적 상호 작용을 도시 23 00:01:04,269 --> 00:01:08,510 웹과 같은 클라이언트 프로세스 사이 브라우저 나 당신의 목표 클라이언트 또는 같은 24 00:01:08,510 --> 00:01:11,340 그런 식으로, 그리고 웹 서버. 25 00:01:11,340 --> 00:01:15,150 따라서이 종류의 유사합니다 당신의 강의에서 본 그림 26 00:01:15,150 --> 00:01:19,270 수요일 곳 기본적으로 우리는 몇 가지가 구글 크롬과 같은 클라이언트 프로세스. 27 00:01:19,270 --> 00:01:22,980 >> 다음 단계의 하나입니다 클라이언트는 요청을 보냅니다. 28 00:01:22,980 --> 00:01:27,510 그래서 뭔가처럼 잘하자이 될 수 있습니다 방문, 나는 CS50.net 몰라. 29 00:01:27,510 --> 00:01:29,320 그래서 우리는 그 요청을 실행합니다. 30 00:01:29,320 --> 00:01:34,280 그리고 아무도 이름을 기억 않습니다 어떻게 그런 일을 지정하는 프로토콜 31 00:01:34,280 --> 00:01:35,610 요청을 구성해야 하는가? 32 00:01:35,610 --> 00:01:36,382 네. 33 00:01:36,382 --> 00:01:37,650 >> 청중 : [청취]. 34 00:01:37,650 --> 00:01:38,150 >> 케빈 슈 미드 : 그렇지. 35 00:01:38,150 --> 00:01:40,100 그래서 그것은 바로, HTTP처럼? 36 00:01:40,100 --> 00:01:44,720 방법에 대한 그래서 기본적으로 사양 해당 요청은 실제로 배치해야 37 00:01:44,720 --> 00:01:47,450 하기 때문에 일의 끝에 그 요구는 정말 그냥 좋아하는 38 00:01:47,450 --> 00:01:50,240 문자열이 기본적으로 나는이 원하는 말한다. 39 00:01:50,240 --> 00:01:53,580 그리고 사양 그것을 위해 HTTP입니다. 40 00:01:53,580 --> 00:01:55,270 그래서 프로토콜 같아요. 41 00:01:55,270 --> 00:01:57,920 >> 그럼 서버는 수신 그 요구. 42 00:01:57,920 --> 00:02:01,610 그래서 너희들은 웹 서버가 설치되어 CS50 어플라이언스에. 43 00:02:01,610 --> 00:02:02,460 그것은 아파치의. 44 00:02:02,460 --> 00:02:06,230 이번 주 당신은 문제에 작업 할 때 일곱 설정, 당신은 실제로 작동 할 수 있습니다 45 00:02:06,230 --> 00:02:08,160 해당 웹 서버와. 46 00:02:08,160 --> 00:02:12,380 그래서 서버는 그 요청을 수신하고, 다음은 종류의 스크래치가 그 47 00:02:12,380 --> 00:02:15,090 머리와 무엇을 잘 같은 말 나는이 함께 할 수 있습니까? 48 00:02:15,090 --> 00:02:20,060 >> 그래서 다음 어떤 결정을 기반으로 그것은 어떤 종류의 문의해야 할 수 있습니다 49 00:02:20,060 --> 00:02:20,730 자원. 50 00:02:20,730 --> 00:02:23,700 그리고 그 자원이 될 수있다 여러 가지 많은. 51 00:02:23,700 --> 00:02:26,810 하나, 그것은있을 수 단지 정적 HTML 파일 등을들 수있다. 52 00:02:26,810 --> 00:02:29,820 그래서 좀처럼 될 수있다 용처럼 HTML 53 00:02:29,820 --> 00:02:31,100 귀하의 개인 웹 사이트. 54 00:02:31,100 --> 00:02:35,360 그것은 이미지와 같은 정적 파일이 될 수 또는 당신이 영화처럼. 55 00:02:35,360 --> 00:02:37,660 심지어 이야기 할 수 데이터베이스의 어떤 종류에 56 00:02:37,660 --> 00:02:39,530 MySQL 데이터베이스 등을들 수있다. 57 00:02:39,530 --> 00:02:43,910 그래서 항상 의사 소통을 할 필요가 없습니다 자원 만에와 58 00:02:43,910 --> 00:02:45,700 어떤 경우에는, 그것은 수 있습니다. 59 00:02:45,700 --> 00:02:47,800 >> 그래서 그 때 할 무슨 그 후는 것입니다 60 00:02:47,800 --> 00:02:49,430 응답을 보냅니다. 61 00:02:49,430 --> 00:02:53,130 그리고 이것에 대한 응답은 또한 HTTP에서 지정한. 62 00:02:53,130 --> 00:02:54,830 따라서 클라이언트는 그것을받을 수 있습니다. 63 00:02:54,830 --> 00:02:56,740 그것은 산산조각하고 처리 할 수​​ 있습니다. 64 00:02:56,740 --> 00:03:00,900 그리고 당신은 웹 페이지를 얻을 같은 구글이나 CS50.net 또는 65 00:03:00,900 --> 00:03:02,240 당신은에 가서 뭐든간에. 66 00:03:02,240 --> 00:03:03,100 OK? 67 00:03:03,100 --> 00:03:06,080 >> 그래서이 기본 상호 작용입니다 우리는 처리 할 것입니다. 68 00:03:06,080 --> 00:03:08,770 그리고 우리는 꽤 많이 될 것입니다 이 부분에 초점을 69 00:03:08,770 --> 00:03:10,640 상호 작용, 서버. 70 00:03:10,640 --> 00:03:10,990 OK. 71 00:03:10,990 --> 00:03:12,210 쿨. 72 00:03:12,210 --> 00:03:15,500 아무도 지금까지 질문이? 73 00:03:15,500 --> 00:03:17,720 OK. 74 00:03:17,720 --> 00:03:22,430 >> 그래서 우리는, 상기와 같이 웹 서버는 수신 다음이 HTTP 요청과는이 문제 75 00:03:22,430 --> 00:03:24,760 HTTP 응답. 76 00:03:24,760 --> 00:03:29,100 그리고 같은 우리는 이전에 대한 이야기 CS50 어플라이언스의 웹 서버는 아파치입니다. 77 00:03:29,100 --> 00:03:32,490 너희들이 작업 그래서 P는 일곱 설정 당신은 작업을 할거야 78 00:03:32,490 --> 00:03:34,120 아파치 웹 서버. 79 00:03:34,120 --> 00:03:37,890 당신은 정말 일을하지 않을께요 직접 너무 많은 아파치. 80 00:03:37,890 --> 00:03:41,920 당신은 종류의 아파치 조금 구성 가상 호스트 또는 지정하는 경우 81 00:03:41,920 --> 00:03:44,970 V 호스트, 우리는거야 조금에 해당합니다. 82 00:03:44,970 --> 00:03:50,620 >> 그러나 기본적으로, 아파치 웹 서버 PHP의 종류와 작동하도록 설정 83 00:03:50,620 --> 00:03:51,730 의 상자 밖으로. 84 00:03:51,730 --> 00:03:56,170 당신이 갈 때 그래서 정말 일이 있습니다 말하자면, 같은 귀하의 웹 사이트 중 하나에, 85 00:03:56,170 --> 00:04:00,360 로컬 호스트 슬래시의 index.php 또는 뭔가, 브라우저가 전송입니다 86 00:04:00,360 --> 00:04:04,330 요청하고 아파치 앉아있다 거기는 함께 할 수 파악한다. 87 00:04:04,330 --> 00:04:08,840 그리고 작업을 실행하는 것입니다 그 index.php 파일의 코드와 88 00:04:08,840 --> 00:04:11,330 다음 다시 전원을 보낼 수 있습니다. 89 00:04:11,330 --> 00:04:15,640 그래서이있다. 90 00:04:15,640 --> 00:04:16,980 그래서 우리는 종류의이 이야기. 91 00:04:16,980 --> 00:04:21,990 그래서 그냥 정적 파일을 제공 할 수 또는 문제를 다음 몇 가지 PHP 코드를 실행하고 92 00:04:21,990 --> 00:04:23,510 응답. 93 00:04:23,510 --> 00:04:27,670 >> 올 수 그럼 일반적인 질문 업이 잘, 어떻게 우리가 정말 다루는가 94 00:04:27,670 --> 00:04:31,750 여러 사용자를 갖는 동시에? 95 00:04:31,750 --> 00:04:36,930 당신은 웹을 작성하는 경우 그래서 상상 서버, 웹 서버가 있다면 그 96 00:04:36,930 --> 00:04:39,900 당신이 뭔가에 쓰려고했다 C 또는 그런 일처럼, 97 00:04:39,900 --> 00:04:45,150 기본적으로 당신이 생각 할 수있는 방법이 코드의 일종이 될 수 있다고 98 00:04:45,150 --> 00:04:49,330 다음 요청을받을 수 있지만 것 그것은 모든이 작업을 수행 할 수 있습니다. 99 00:04:49,330 --> 00:04:53,060 그것은 예를 들어, 문의해야 할 수 있습니다 데이터베이스 또는 그런 일. 100 00:04:53,060 --> 00:04:53,300 오른쪽? 101 00:04:53,300 --> 00:04:56,010 그리고, 그것은 그런 종류의 할 것 처리 후 102 00:04:56,010 --> 00:04:57,060 응답을 보냈습니다. 103 00:04:57,060 --> 00:04:58,950 그래서 높은처럼 수준의 개요를 제공합니다. 104 00:04:58,950 --> 00:05:04,210 >> 그러나 즉시 명백하지 않다면, 어떻게 수행 할 수 있도록 이명 또는 105 00:05:04,210 --> 00:05:09,040 심지어 천명이 함께 일할 수있는 당신의 동시에, 웹 서버. 106 00:05:09,040 --> 00:05:14,880 그래서 아파치가 사용하는 솔루션 스레드 또는 프로세스라고합니다. 107 00:05:14,880 --> 00:05:16,770 그래서 당신이 들어있을 수 있습니다 전에이 기간. 108 00:05:16,770 --> 00:05:22,190 그것은 당신이하지 않은 경우 OK, 그러나 단지 생각 위한 방법으로 스레드 또는 프로세스에 대한 109 00:05:22,190 --> 00:05:26,290 운영 체제 또는 사용자 프로그램 또는 그런 일 또는 웹 서버 110 00:05:26,290 --> 00:05:28,810 종류의 복수를 실행합니다 한 번에 일. 111 00:05:28,810 --> 00:05:31,760 그래서 당신은 용어를 들어있을 수 있습니다 실행 스레드있다. 112 00:05:31,760 --> 00:05:34,140 당신이있는 것처럼 그래서 종류의 멀티 태스킹의 일종. 113 00:05:34,140 --> 00:05:37,710 >> 그리고 당신의 상자를 본 적이 경우 노트북, 또는 그런 식으로, 114 00:05:37,710 --> 00:05:43,040 당신이 할 수있는 멀티 코어는, 당신이 할 수 있습니다 서로 다른 두 개의 서로 다른 스레드를 실행할 115 00:05:43,040 --> 00:05:46,700 CPU의 부품은 할 수 있도록 실제로 같은 시간에 일어난다. 116 00:05:46,700 --> 00:05:48,100 그래서이 정말 강력합니다. 117 00:05:48,100 --> 00:05:52,270 그리고 이것은 아파치의 종류입니다 이 문제에 대한 솔루션을 제공합니다. 118 00:05:52,270 --> 00:05:57,900 >> 그래서 종류의 문제처럼가 하지만이 방법? 119 00:05:57,900 --> 00:05:59,870 그래서 내가 종류의 그곳을 쓴 것 같아요. 120 00:05:59,870 --> 00:06:03,440 그러나 둘 다 종류의 많은 메모리를 사용합니다. 121 00:06:03,440 --> 00:06:07,490 그것은 생성하는 것은 매우 비싸다 스레드 또는 프로세스. 122 00:06:07,490 --> 00:06:11,750 >> 그리고 추론의 일부입니다 단지 같은 당신은 C 프로그램을 실행 할 때 123 00:06:11,750 --> 00:06:15,090 주 추천하고 그 통화 또 다른 기능은, 그 보유 124 00:06:15,090 --> 00:06:16,520 스택의 일종. 125 00:06:16,520 --> 00:06:19,910 그래서 스레드는 전적으로이 필요합니다 별도의 스택하는 126 00:06:19,910 --> 00:06:21,220 매우 클 수 있습니다. 127 00:06:21,220 --> 00:06:25,170 그리고 당신이 상상할 수있는 경우의 톤을 가지고 귀하의 웹 사이트의 사용자는, 당신은 것 128 00:06:25,170 --> 00:06:26,280 다른 스레드의 많은. 129 00:06:26,280 --> 00:06:28,230 즉, 스택에 많은의 관리 및 유지 보수. 130 00:06:28,230 --> 00:06:31,280 그래서 큰 메모리 소모합니다. 131 00:06:31,280 --> 00:06:35,650 >> 그리고, 또한,의는 만 있다고 가정 해 봅시다 하나의 CPU, 또는의 당신이 있다고 가정 해 봅시다 132 00:06:35,650 --> 00:06:38,460 당신보다 더 많은 스레드 이러한 멀티 코어. 133 00:06:38,460 --> 00:06:38,730 오른쪽? 134 00:06:38,730 --> 00:06:43,280 그래서 당신이 10 스레드를 먹었지 당신은 단지 CPU가 5 개 있었다. 135 00:06:43,280 --> 00:06:46,260 당신은 종류의이 일을해야 할 곳 당신은 현재의 전환 136 00:06:46,260 --> 00:06:49,090 당신 때문에 실행중인 하나 한 번에 10을 실행할 수 없습니다. 137 00:06:49,090 --> 00:06:50,980 그리고는 컨텍스트 스위치라고. 138 00:06:50,980 --> 00:06:54,260 그리고 그 용어는 실제로 몇가 다른 컨텍스트,하지만 단지하자 139 00:06:54,260 --> 00:06:56,620 전환으로 생각 두 개의 스레드 사이. 140 00:06:56,620 --> 00:06:59,730 즉, 꽤 비싼 될 수 있기 때문에 기본적으로 당신이해야 할 일은 당신입니다 141 00:06:59,730 --> 00:07:03,340 당신이 무슨 일을하는지 중지해야에게 저장 그 실행중인 스레드의 상태 및 142 00:07:03,340 --> 00:07:05,440 그런 다음 다른 곳으로 전환합니다. 143 00:07:05,440 --> 00:07:09,420 >> 그래서 모두가 이러한 종류의 볼 않습니다 왜 스레드 및 동기 부여 144 00:07:09,420 --> 00:07:12,030 프로세스는 약간의 부피가 될 수 있을까요? 145 00:07:12,030 --> 00:07:13,840 그리고 당신은 질문이있는 거죠? 146 00:07:13,840 --> 00:07:14,376 OK. 147 00:07:14,376 --> 00:07:15,070 쿨. 148 00:07:15,070 --> 00:07:18,090 질문 있나? 149 00:07:18,090 --> 00:07:19,620 OK. 150 00:07:19,620 --> 00:07:26,720 >> 그래서 우리는 잠시 뒤 조치를 취할 경우, 종류의 같은있다 151 00:07:26,720 --> 00:07:30,350 우리가 할 수있는 관찰 웹 응용 프로그램의 많은. 152 00:07:30,350 --> 00:07:34,810 그리고 그것은 정말로 그 그들 중 많은 실제로하지 않는 매우 유용 153 00:07:34,810 --> 00:07:37,140 실의 내부에서 작업. 154 00:07:37,140 --> 00:07:41,170 그래서 누구에 시작 P는 전혀 일곱을 설정? 155 00:07:41,170 --> 00:07:45,650 그래서 당신은 아마 설명할까요 일부 부품은? 156 00:07:45,650 --> 00:07:47,850 당신은 로그인에 근무 또는 그런 식으로 뭔가? 157 00:07:47,850 --> 00:07:49,330 >> 청중 : 호 158 00:07:49,330 --> 00:07:49,780 >> 케빈 슈 미드 : OK. 159 00:07:49,780 --> 00:07:50,150 마음 마십시오. 160 00:07:50,150 --> 00:07:50,900 미안 해요. 161 00:07:50,900 --> 00:07:55,790 그러나 기본적으로, P 세트에, 당신이있어 일종의을 많이 만드는 될 것 162 00:07:55,790 --> 00:07:59,760 몇 가지를 얻을 수있는 데이터베이스에 쿼리 해당 데이터베이스에서 정보. 163 00:07:59,760 --> 00:08:03,330 어떤 코드가 일을 할 것입니다, 그 무엇 아파치 프로세스 또는 164 00:08:03,330 --> 00:08:06,030 아파치 스레드는 일을 할 거라고 그것은 연락하는 동안 165 00:08:06,030 --> 00:08:08,990 데이터베이스는 정렬 될 것입니다 거기에 앉아 해가 될 것 166 00:08:08,990 --> 00:08:12,130 데이터베이스가 응답을 기다리고. 167 00:08:12,130 --> 00:08:16,290 >> 이제 그 큰 같은 소리하지 않을 수 있습니다 데이터베이스가에 있기 때문에 거래 168 00:08:16,290 --> 00:08:18,240 CS50 기기, 오른쪽? 169 00:08:18,240 --> 00:08:22,930 그러나 네트워크의 어떤 종류가있다 이 대기 시간 현재 웹 때문에 170 00:08:22,930 --> 00:08:26,830 서버에 자신의 요청을 실행하는 와 통신하는 데이터베이스 171 00:08:26,830 --> 00:08:29,520 데이터베이스 및 그 얻을 정보를 다시. 172 00:08:29,520 --> 00:08:33,190 그래서 지금은 제가 잘 날 기다려 마치 갈은 뭔가를 얻을 수 173 00:08:33,190 --> 00:08:35,770 데이터베이스 및 다음 거기에 진행 기다리는 많은. 174 00:08:35,770 --> 00:08:36,870 그 의미가 있습니까? 175 00:08:36,870 --> 00:08:38,580 >> 일부 정보는 나쁘지 않다. 176 00:08:38,580 --> 00:08:41,950 그냥하는 경우, 예를 들면, 액세스 메모리, 그 게 아니에요 177 00:08:41,950 --> 00:08:44,100 끔찍한 I / O 대기 시간. 178 00:08:44,100 --> 00:08:47,110 내가 말할 때, I / O 대기 시간, 난 무엇을 을 참조하는 등의 모든 종류처럼 179 00:08:47,110 --> 00:08:48,290 입출력. 180 00:08:48,290 --> 00:08:52,950 그러나 같은 디스크에있는 파일에 액세스 할 나는 정적 HTML을 제공하려는 경우 181 00:08:52,950 --> 00:08:57,850 파일이 내 웹 페이지에 있던 나 그런 식으로, 내가 먹을 수도 182 00:08:57,850 --> 00:09:02,310 약간의 중지, 해당 파일을 읽을 디스크에서 다음에있는 183 00:09:02,310 --> 00:09:04,400 그 과정은 내가 기다리고 있어요. 184 00:09:04,400 --> 00:09:06,700 나는 유용한 작업을하고 있지 않다. 185 00:09:06,700 --> 00:09:11,270 >> 이것은 모든 것의 사실이 아니다, 그러나 P 세트와 같은 응용 프로그램에서 일반적입니다 186 00:09:11,270 --> 00:09:13,960 일곱 많은 응용 프로그램 당신이하지 않은 것을 187 00:09:13,960 --> 00:09:15,440 실제로 많은 생각을하고. 188 00:09:15,440 --> 00:09:19,090 내가 생각을 말할 때, 내 말은 전산 작업 등을들 수있다. 189 00:09:19,090 --> 00:09:23,270 그래서 계산 작업은 무엇인가이 될 수 같은 말, 당신은 싶었어요 190 00:09:23,270 --> 00:09:26,590 단지 계산 웹 서버를 만들 n 번째 피보나치 수. 191 00:09:26,590 --> 00:09:29,300 이는 특히 같은 소리하지 않습니다 재미 웹 서버. 192 00:09:29,300 --> 00:09:34,220 마치 내가 그 사이트가 될 기대하지 않을 것이다 다음 페이스 북,하지만 몇 가지입니다 193 00:09:34,220 --> 00:09:35,610 전산 작업의 일종. 194 00:09:35,610 --> 00:09:39,570 >> 그리고 당신과 함께 그 대체 상상할 수 흥미있는 다른 종류의 195 00:09:39,570 --> 00:09:43,070 전산 작업. 196 00:09:43,070 --> 00:09:46,050 이제 당신이 뭔가를 작성했다 가정 해 봅시다 그 정도의 계산 197 00:09:46,050 --> 00:09:49,170 두 사람 사이에 분리 또는 그런 일. 198 00:09:49,170 --> 00:09:51,860 그래서 어떤 종류를 포함하지 계산, 오른쪽? 199 00:09:51,860 --> 00:09:56,630 그리고 그렇다하더라도, 당신은 여전히​​ 것을해야 할 일 어쩌면 기다리고을 많이 할 200 00:09:56,630 --> 00:09:59,550 당신이 볼 수있는 데이터베이스를 조회해야 까지 누가 누군지과 친구의 201 00:09:59,550 --> 00:10:00,600 그런 식으로. 202 00:10:00,600 --> 00:10:03,510 그래서 개념의 종류가있다 전산 작업. 203 00:10:03,510 --> 00:10:05,260 그 의미가 있습니까? 204 00:10:05,260 --> 00:10:08,258 아무도 질문이 있습니까? 205 00:10:08,258 --> 00:10:11,960 >> 아, 그리고 내가 거기 채팅 서버를두고 추측 채팅 서버의 종류 때문에 206 00:10:11,960 --> 00:10:13,240 이것의 또 다른 좋은 예. 207 00:10:13,240 --> 00:10:15,250 채팅 서버가 없습니다 많은 생각을 할 수 있습니다. 208 00:10:15,250 --> 00:10:18,350 그것은 단지 사람 기다려야합니다 메시지 후 때를 보내 209 00:10:18,350 --> 00:10:19,800 그들은 보낼 않습니다. 210 00:10:19,800 --> 00:10:21,050 OK? 211 00:10:21,050 --> 00:10:23,410 212 00:10:23,410 --> 00:10:28,180 >> 그래서 그냥 다시 정리하자면, 아파치와 그 포크와 같은 유사한 웹 서버 213 00:10:28,180 --> 00:10:31,470 스레드와 프로세스를 많이하는 종류의 낭비가 될 수 있습니다. 214 00:10:31,470 --> 00:10:37,530 그래서 올 수 문제를 생각한다 그 중에서 우리가 필요가있다 215 00:10:37,530 --> 00:10:39,610 다중 스레드 및 프로세스? 216 00:10:39,610 --> 00:10:41,890 우리가 하나를했다면? 217 00:10:41,890 --> 00:10:45,710 >> 그럼 종류의 그림을 그릴 수 있도록 이 어떻게 보이는지의. 218 00:10:45,710 --> 00:10:47,810 그럼 하나의 스레드를 사용하자. 219 00:10:47,810 --> 00:10:48,660 OK? 220 00:10:48,660 --> 00:10:52,790 그래서 하나의 스레드와이 상상. 221 00:10:52,790 --> 00:10:56,600 >> 의 우리가 정말 일을하지 않은 가정하자 그만큼 유용한 - 내가 말을 할 때 222 00:10:56,600 --> 00:10:59,450 유용, 내가 계산 작업을 의미 - 223 00:10:59,450 --> 00:11:01,130 전에 이러한 여러 스레드에서. 224 00:11:01,130 --> 00:11:04,180 그럼 종류의 통합하자 하나의 스레드에 모든 것을. 225 00:11:04,180 --> 00:11:07,780 그래서 우리는 하나의 스레드 그 종류가 있다면 단지 루프 주위에 간다 226 00:11:07,780 --> 00:11:10,880 지속적으로 점검 작업을 수행했습니다 새로운 일이. 227 00:11:10,880 --> 00:11:15,130 그래서 예를 들어, 뭔가 새로운 일이 난에서 다시 뭔가있어 의미 할 수 228 00:11:15,130 --> 00:11:19,310 전송 데이터베이스 또는 누군가 나 새로운 HTTP 요청. 229 00:11:19,310 --> 00:11:22,290 그래서 그 이벤트의 일종이다 맞아, 어떻게? 230 00:11:22,290 --> 00:11:26,130 >> 그리고 내가 할 수있는 경우에 그 새로운 일어날 일이 같은 스레드에 231 00:11:26,130 --> 00:11:30,120 실행이 단일 스레드의 실행, 나는 몇 가지 코드를 호출 할 수 232 00:11:30,120 --> 00:11:32,410 특정 일을 처리 할 것입니다. 233 00:11:32,410 --> 00:11:36,640 그래서 예를 들어, 내가 뭔가를 얻었다면 다시 데이터베이스에서, 나는 실행할 수 내 234 00:11:36,640 --> 00:11:40,960 그것의 작은 계산 부분이 실제로 단지에 일을 준비합니다 235 00:11:40,960 --> 00:11:42,620 사용자에게 다시 보낼 수 있습니다. 236 00:11:42,620 --> 00:11:46,710 그래서 메이크업 감각의 종류는 무엇입니까? 237 00:11:46,710 --> 00:11:49,940 >> 하지만 실제로는 무엇인가 이것의 의미? 238 00:11:49,940 --> 00:11:50,660 오른쪽? 239 00:11:50,660 --> 00:11:53,730 우리가 작성한 때문에 코드가 많이 - 240 00:11:53,730 --> 00:11:58,330 난 그냥 앞으로 뛰어 갈거야 그 확인의 경우 슬라이드에. 241 00:11:58,330 --> 00:12:00,930 당신이 괜찮다면 그래서, 난 그냥 다시 조치를 취할 것. 242 00:12:00,930 --> 00:12:03,410 그래서 이런 종류의 일입니다 이벤트 루프했다. 243 00:12:03,410 --> 00:12:04,070 OK? 244 00:12:04,070 --> 00:12:07,240 그리고 기본적인 종류의 Node.js. 뒤에 아이디어 245 00:12:07,240 --> 00:12:11,240 >> Node.js는 정말 웹으로하고있다 그래서 서버는 단일 스레드 거기에있다 246 00:12:11,240 --> 00:12:14,850 즉, 기본적으로 루프를 돌고있다 아래의 동안 한 종류의 같은 247 00:12:14,850 --> 00:12:18,510 끊임없이의 Node.js의 후드 확인, 우리는 새로운 물건을 받았 는가? 248 00:12:18,510 --> 00:12:22,720 그리고, 그것은 처리기를 실행합니다 당신은 설정하는 것이. 249 00:12:22,720 --> 00:12:26,720 하지만 물어 좋은 질문은, 어떻게 이런 일이 일어날 수 있습니다 250 00:12:26,720 --> 00:12:28,090 기존의 것들과? 251 00:12:28,090 --> 00:12:32,440 >> 그래서 나는 여기에서 C 코드의 라인을 넣어 그 이 열기처럼 기본적으로 보이는 252 00:12:32,440 --> 00:12:33,060 오른쪽 파일? 253 00:12:33,060 --> 00:12:36,090 나는 그녀는 앨범 나왔다. 254 00:12:36,090 --> 00:12:39,600 그래서 나는 그녀에게 새로운 파일을 열 수 있었다. 255 00:12:39,600 --> 00:12:43,810 그래서 방법 운영에 대한 우리의 C 코드 - 256 00:12:43,810 --> 00:12:47,890 그리고 내가 파일을 선택한 이유는이었다고 생각한다 이 정도의 일종이기 때문에 257 00:12:47,890 --> 00:12:52,000 우리가 C에서 수행 한 I / O 작업의 입력 출력이 있다는 것을 의미. 258 00:12:52,000 --> 00:12:55,070 그래서 우리는이 코드를 호출하는 이 F는 열리지 않습니다. 259 00:12:55,070 --> 00:12:59,370 그리고 우리의 다음 줄에 이 프로그램은, 지금 우리가 F로 작업 할 수 있습니다. 260 00:12:59,370 --> 00:13:02,710 >> 그래서이 뭔가의 예 것 그 동기 나처럼 261 00:13:02,710 --> 00:13:06,850 그 첫 번째 줄에 있기 때문에 차단 거기에 우리는 우리가 때까지 기다리는 262 00:13:06,850 --> 00:13:08,110 파일이 열려 얻을. 263 00:13:08,110 --> 00:13:12,260 그래서 두 번째 줄에, 우리가 알고있는 우리 F에서 작동하지만, 이것은 의미 수 264 00:13:12,260 --> 00:13:16,240 그 두 번째 줄은 정말 실행할 수 없습니다 첫 번째 줄은 완료 될 때까지. 265 00:13:16,240 --> 00:13:17,760 그 의미가 있습니까? 266 00:13:17,760 --> 00:13:20,890 >> 그래서이 넣어 나쁜 것 이벤트 처리기에서. 267 00:13:20,890 --> 00:13:23,920 그리고 그 이유이다 대기의 종류, 오른쪽? 268 00:13:23,920 --> 00:13:26,500 그래서 이것은 우리를 다시 되돌릴 것 같은 일을. 269 00:13:26,500 --> 00:13:29,470 그리고 지금 우리조차하지 않았을 다중 스레드의 이익 또는 270 00:13:29,470 --> 00:13:32,390 프로세스를 우리가 가지고 있기 때문에 Node.js.에 하나의 스레드 271 00:13:32,390 --> 00:13:35,496 그 모두에게 의미가 있습니까? 272 00:13:35,496 --> 00:13:35,990 >> 청중 : 잠깐. 273 00:13:35,990 --> 00:13:36,980 그래서 대체 무엇입니까? 274 00:13:36,980 --> 00:13:37,840 >> 케빈 슈 미드 : 오, 그래. 275 00:13:37,840 --> 00:13:39,560 그래서 난에 도착하는거야 교체. 276 00:13:39,560 --> 00:13:40,430 OK. 277 00:13:40,430 --> 00:13:42,960 우리는 무언가를했다 그래서 경우 즉,이처럼 보였다? 278 00:13:42,960 --> 00:13:45,730 그래서 내가 지금 편집하는 경우 F는 조금 열? 279 00:13:45,730 --> 00:13:48,370 그래서 같은 전달 해요 이전과 두 개의 인수. 280 00:13:48,370 --> 00:13:52,610 난 여전히 새로운 노래를 사랑 그녀는 함께 나왔다. 281 00:13:52,610 --> 00:13:57,260 하지만 세 번째로 통과하고있어 어떤 이 변수는 코드라고합니다. 282 00:13:57,260 --> 00:14:02,280 >> 그러나 코드는 실제로 무엇인가 이 상황에서? 283 00:14:02,280 --> 00:14:05,360 그것은 일반 C 변수처럼? 284 00:14:05,360 --> 00:14:06,740 그것은 바로, 함수의? 285 00:14:06,740 --> 00:14:09,450 그리고 그 때문에 조금 이상한 수 있습니다 사실은 지금 통과 같이 해요 286 00:14:09,450 --> 00:14:12,320 또 다른 기능으로 작동합니다. 287 00:14:12,320 --> 00:14:14,400 >> 이것에 대해주의해야 할 그래서 몇 가지. 288 00:14:14,400 --> 00:14:17,145 하나, 사실은 전화 아니에요 코드 기능. 289 00:14:17,145 --> 00:14:20,650 그래서 당신과 코드를 볼 수 없습니다 왼쪽 괄호, 오른쪽 괄호. 290 00:14:20,650 --> 00:14:23,010 난 그냥 코드를 전달하고 있습니다. 291 00:14:23,010 --> 00:14:26,990 그리고 C에서,이 사실은 무엇을 할 것 그 실제의 나에게 포인터를 제공한다 292 00:14:26,990 --> 00:14:29,740 코드, 다음이 그것을 실행할 수 있습니다. 293 00:14:29,740 --> 00:14:33,350 당신이있어하지만 단지 그것에 대해 생각 실행 코드를 전달하는 경우 294 00:14:33,350 --> 00:14:35,150 해당 파일이 열립니다. 295 00:14:35,150 --> 00:14:41,430 >> 그러나 이것이 의미하는 것은 이제 할 수있는 내 프로그램의 나머지 296 00:14:41,430 --> 00:14:47,050 다른 물건은 다른 일을 계속할 수 있습니다 물건을 우리가 정말 기다릴 수 있지만 동시에 297 00:14:47,050 --> 00:14:50,890 단지 우리의 머리의 뒤쪽에있다가 때 해당 파일의 오픈, 실행하는 것이 298 00:14:50,890 --> 00:14:52,130 상단의 코드입니다. 299 00:14:52,130 --> 00:14:53,390 그 의미가 있습니까? 300 00:14:53,390 --> 00:14:58,060 >> 이제 Node.js 뒤에 아이디어는 즉 F와 DO 물건의 코드 301 00:14:58,060 --> 00:15:04,590 일부는 매우 짧고 간단해야한다 정말하고 간단하지 302 00:15:04,590 --> 00:15:06,160 집중적 매우 계산. 303 00:15:06,160 --> 00:15:09,390 그것은 다른 파일을 열어야 할 수 있지만, 그것도 아주 빨리해야한다 304 00:15:09,390 --> 00:15:14,710 그것은 또 다른 F를 할 말을해야하기 때문에 열고이 다른 코드를 호출합니다. 305 00:15:14,710 --> 00:15:19,100 >> 그래서 그냥 완전히 명확 F이어야합니다 그를 열고 새 케이티 페리의 노래에게 수행 306 00:15:19,100 --> 00:15:23,060 완료 MP3, 그 것 꽤 많은 즉시 반환. 307 00:15:23,060 --> 00:15:27,820 그리고 우리는 단지 일을 계속 할 수 있습니다 다른 것들 때문에 이제 F 모든 308 00:15:27,820 --> 00:15:33,410 공모는 기본적으로 알려된다 않습니다 기본 f 개방 코드는이 파일을 열 309 00:15:33,410 --> 00:15:36,020 당신은이를 열고 완료되면 당신이 그것을 다시 얻을 때 파일이나, 310 00:15:36,020 --> 00:15:37,480 그 코드를 실행합니다. 311 00:15:37,480 --> 00:15:39,540 그러나 실제로 코드를 실행하지 않습니다. 312 00:15:39,540 --> 00:15:41,815 그리고 당신은 질문을했다? 313 00:15:41,815 --> 00:15:46,180 >> 청중 : 당신은 몇 가지를 암시하는 듯 계산 추가 시간 314 00:15:46,180 --> 00:15:50,545 집중적 인 코드 종류의 휴식 [청취] 구동 시스템. 315 00:15:50,545 --> 00:15:51,795 [들리지? 316 00:15:51,795 --> 00:15:54,450 317 00:15:54,450 --> 00:15:55,290 >> 케빈 슈 미드 : 그건 좋은 질문입니다. 318 00:15:55,290 --> 00:15:59,280 그래서 실제로 방법의 예를 당신은 계산을 통합 할 수 319 00:15:59,280 --> 00:16:01,090 조금 집중 코드입니다. 320 00:16:01,090 --> 00:16:03,620 그래서 우리는 코드 예제에 도착하면, 그 하나를 끌어해야합니다. 321 00:16:03,620 --> 00:16:04,700 즉, OK인가? 322 00:16:04,700 --> 00:16:05,950 감사합니다. 323 00:16:05,950 --> 00:16:07,690 324 00:16:07,690 --> 00:16:08,750 >> 당신의 이름은 무엇입니까? 325 00:16:08,750 --> 00:16:10,620 >> 청중 : 아론. 326 00:16:10,620 --> 00:16:14,830 >> 케빈 슈 미드 : 아론은 매우를 제공합니다 좋은 점, 즉 내가이 있다면 327 00:16:14,830 --> 00:16:18,560 일부 연산 집약적 인 코드 F 부분, 나머지와 함께 할 것들 328 00:16:18,560 --> 00:16:22,880 내 프로그램을 실행할 수 없습니다 및 수신 할 수 모든 때까지 새 요청 또는 아무것도 329 00:16:22,880 --> 00:16:24,270 그 물건이 완료됩니다. 330 00:16:24,270 --> 00:16:27,390 그래서 일반적으로 노드의 코드를 쓰고 있어요 경우 내가 갈거야처럼 우리가 뭔가를하지 않으면 331 00:16:27,390 --> 00:16:33,060 우리가 볼 때 나중에 제안하는 코드 예제, 나는했는지 확인해야 332 00:16:33,060 --> 00:16:36,060 내 코드를 묶어하지 않습니다 이 이벤트 루프. 333 00:16:36,060 --> 00:16:38,120 그 의미가 있습니까? 334 00:16:38,120 --> 00:16:38,350 OK. 335 00:16:38,350 --> 00:16:40,040 쿨. 336 00:16:40,040 --> 00:16:47,090 >> 그래서 Node.js는이 프레임 워크를 제공하는 당신이 중심이 이벤트를 구축 할 수 있습니다 337 00:16:47,090 --> 00:16:48,210 있는 서버. 338 00:16:48,210 --> 00:16:53,460 그래서 비동기의 이러한 종류가 반면에, I / O 라이브러리를 비 차단 339 00:16:53,460 --> 00:16:56,800 우리가했던 표준 C 라이브러리 , 작업 같은 경우 단지 340 00:16:56,800 --> 00:16:59,500 우리가했습니다 같은 방법을 사용 F로 사용하고는 열리고 341 00:16:59,500 --> 00:17:03,000 물건, 사람은 차단되어 있기 때문에 실제로 기다릴 필요가 342 00:17:03,000 --> 00:17:04,470 열이 파일. 343 00:17:04,470 --> 00:17:09,290 >> 하지만 Node.js는 당신에게 그것을 제공하고 기본적으로 구글의 V8에 넥타이 344 00:17:09,290 --> 00:17:14,030 이유 인 자바 스크립트 엔진 크롬 처리에 너무 빨리 있음 345 00:17:14,030 --> 00:17:17,040 자바 스크립트 때문에 이 V8 엔진이 있습니다. 346 00:17:17,040 --> 00:17:22,460 그래서 그 사람들 중 하나와 같은 소리로 들리 겠지만 WWDC 개발자 컨퍼런스 것 347 00:17:22,460 --> 00:17:25,390 그들은 단지의 무리를 던지 프로세서의 문자 번호 것들 348 00:17:25,390 --> 00:17:26,910 이것은 정말 멋지다 말한다. 349 00:17:26,910 --> 00:17:34,200 그러나 그들이 한 것이 멋지다 이 때문에 자바 스크립트 - 350 00:17:34,200 --> 00:17:37,010 또는 어쩌면 당신은에 익숙하지 않은 경우 자바 스크립트를 아직 우리가 없었다 때문에 351 00:17:37,010 --> 00:17:38,180 그것에 강의 - 352 00:17:38,180 --> 00:17:40,770 하지만 자바는 해석이다 언어. 353 00:17:40,770 --> 00:17:41,970 >> 그리고 이것은 너무 중요한 포인트입니다. 354 00:17:41,970 --> 00:17:45,790 그래서 우리의 웹에 대한 중요 서버는 바로, 빨리해야 하는가? 355 00:17:45,790 --> 00:17:49,970 그리고 우리는 단지 자바 스크립트에게 실행중인 경우 으로 해석 된 코드 단지 356 00:17:49,970 --> 00:17:52,130 오래된 인터프리터는 속도가 느려질 수 있습니다. 357 00:17:52,130 --> 00:17:55,980 이 데에서 그래서 노드 혜택 슈퍼 빠른 V8 인터프리터. 358 00:17:55,980 --> 00:17:59,580 그들은 그것을 명명한다면 모르겠어요 때문에 이마의 V8 때리고 359 00:17:59,580 --> 00:18:01,110 물건도 OK. 360 00:18:01,110 --> 00:18:07,070 >> 그래서 몇 가지 예제를 준비했습니다 이 URL에서. 361 00:18:07,070 --> 00:18:10,490 세미나 후, 나는 종류의에 갈거야 당신은 노드 세트를 얻을 수있는 방법에 대해 이야기 362 00:18:10,490 --> 00:18:13,570 최대,하지만 지금은 그냥 일종의 할 몇 가지 코드 예제를 통해 걷는. 363 00:18:13,570 --> 00:18:17,250 그래서 만약 당신이 함께 따라하려는 경우, 모든 소스 코드가 제공됩니다. 364 00:18:17,250 --> 00:18:18,720 OK? 365 00:18:18,720 --> 00:18:22,280 >> 그래서 나는이 URL을 떠날거야 약간의 최대. 366 00:18:22,280 --> 00:18:24,440 그리고 난 단지에 갈거야 터미널로 전환합니다. 367 00:18:24,440 --> 00:18:29,670 368 00:18:29,670 --> 00:18:34,400 모두가이 URL로 좋은가요? 369 00:18:34,400 --> 00:18:37,990 그래서 전환거야 여기 내 터미널. 370 00:18:37,990 --> 00:18:42,030 >> 그래서 여기에 코드는 그 나는 오늘이 있습니다. 371 00:18:42,030 --> 00:18:43,960 왜 우리가 시작하지 simpler.js는 파일? 372 00:18:43,960 --> 00:18:49,110 373 00:18:49,110 --> 00:18:52,100 다른 것은입니다이 모든 코드로 작성 될 것입니다 374 00:18:52,100 --> 00:18:56,660 자바 스크립트를하는 당신은 수도 있고 에 익숙하지 않을 수 있습니다. 375 00:18:56,660 --> 00:19:00,170 난 몇 가지 추측이 많이 자바 스크립트 코드의 종류는 376 00:19:00,170 --> 00:19:04,000 문법과 구조는 매우 유사하다 C와 같은 당신의 종류를 선택할 수 있도록 377 00:19:04,000 --> 00:19:05,020 당신을 따라 이동합니다. 378 00:19:05,020 --> 00:19:08,750 나는 많이 쓰고 노력했습니다 의 방법이를위한 시작 코드 379 00:19:08,750 --> 00:19:11,230 그것의 있도록 C와 유사 좀 더 읽기. 380 00:19:11,230 --> 00:19:15,980 하지만 우리가 진행으로, 내가있을거야 추가의 일부를 시연 381 00:19:15,980 --> 00:19:18,980 자바 스크립트의 기능이 종류의 근사합니다. 382 00:19:18,980 --> 00:19:21,510 >> 그러나 이제이 예제 프로그램을 살펴 보자. 383 00:19:21,510 --> 00:19:24,820 나는 모든이가 차단 같아요. 384 00:19:24,820 --> 00:19:28,500 난 그냥 현실을 해결하기 위해 갈거야 그 확인 여부를 빠르게합니다. 385 00:19:28,500 --> 00:19:31,400 나는이 할 무슨 일이 일어나고 있는지 알 수 없습니다. 386 00:19:31,400 --> 00:19:34,660 조금 더 나은 것입니다? 387 00:19:34,660 --> 00:19:36,510 당신은 VAR 및 물건을 볼 수 있습니까? 388 00:19:36,510 --> 00:19:39,320 OK. 389 00:19:39,320 --> 00:19:44,120 >> 그래서 첫 번째 줄은 자바 스크립트처럼 변수의 버전 390 00:19:44,120 --> 00:19:44,800 선언. 391 00:19:44,800 --> 00:19:49,870 그러니 어떤이는 것 강조 따라서이 단지처럼 C에서처럼 392 00:19:49,870 --> 00:19:52,620 저 말 지수는 세에 해당 또는 그런 일. 393 00:19:52,620 --> 00:19:55,740 그래서 유형을 지정하지 않았습니다. 394 00:19:55,740 --> 00:20:00,780 자바 스크립트 형식을 가지고 있지만의 정보 매우 동적 성격에 입력, 그래서 395 00:20:00,780 --> 00:20:02,580 그것에 형식의 모든 종류를 제공하지 않았다. 396 00:20:02,580 --> 00:20:03,670 그래서 그냥 VAR 있습니다. 397 00:20:03,670 --> 00:20:05,320 즉, 변수처럼. 398 00:20:05,320 --> 00:20:05,920 OK? 399 00:20:05,920 --> 00:20:08,340 >> 그리고이 변수 HTTP를 호출하고 있습니다. 400 00:20:08,340 --> 00:20:12,480 그리고 내 오른쪽에, 나는에게이 내가 HTTP에 넣을 식입니다. 401 00:20:12,480 --> 00:20:14,960 그리고 이것은 HTTP를 필요로 말한다. 402 00:20:14,960 --> 00:20:18,500 그래서이 종류의 유사 포함하는 것입니다. 403 00:20:18,500 --> 00:20:22,940 조금 더 같은 강력한 이상입니다 포함하는 의미에 포함 404 00:20:22,940 --> 00:20:26,100 그냥 복사하고 헤더를 붙여 것 함수 프로토 타입을 신청하거나 405 00:20:26,100 --> 00:20:27,930 타입 정의와 무엇이든. 406 00:20:27,930 --> 00:20:30,590 그러나 필요 실제로 것입니다 우리에게 코드를 얻을 수 있습니다. 407 00:20:30,590 --> 00:20:33,280 >> 그래서 당신은 생각할 수 코드를 가져 오기. 408 00:20:33,280 --> 00:20:37,960 그래서 어딘가에 Node.js 모듈 시스템이든, 그들은 모든이가 409 00:20:37,960 --> 00:20:40,790 HTTP 서버 코드 그래서 난 그냥 내 자신을 위해 그것을 가져 오는 410 00:20:40,790 --> 00:20:43,130 이 프로그램에 개인적인 사용. 411 00:20:43,130 --> 00:20:44,260 OK? 412 00:20:44,260 --> 00:20:46,930 >> 그래서 나는이 기능이 내가 작성한있다. 413 00:20:46,930 --> 00:20:50,330 내가 지정하지 않은 통지 반환 형식이나 유형 414 00:20:50,330 --> 00:20:51,140 인수를 다시. 415 00:20:51,140 --> 00:20:54,440 그래서 종류의 느슨한에 입력 감각의 종류. 416 00:20:54,440 --> 00:20:57,290 이 수중에 두 개의 인수, 요청 및 응답. 417 00:20:57,290 --> 00:21:02,080 그래서 개념의 종류처럼 우리가 가진 그림에서 잘 418 00:21:02,080 --> 00:21:05,280 화면에 있기 때문에 이전 우리는이 요청을 얻을 우리 419 00:21:05,280 --> 00:21:06,410 사용자로부터이 있습니다. 420 00:21:06,410 --> 00:21:09,170 그리고 우리는 응답이 그 우리는 정보를 기록 할 수 있습니다. 421 00:21:09,170 --> 00:21:15,060 >> 그래서 이것의 첫 번째 줄은 않습니다 (200) res.writeHead 다음이 422 00:21:15,060 --> 00:21:17,070 콘텐츠 형식의 텍스트 일​​반. 423 00:21:17,070 --> 00:21:19,300 그래서 조금이 떨어져 조각 할 수 있습니다. 424 00:21:19,300 --> 00:21:22,340 그래서 그냥 res.write에 초점을 맞춰 보자 조금에 대한. 425 00:21:22,340 --> 00:21:28,420 그래서 쓰기는, 기본적으로, 머리를 쓰기 종류의 작성하는 단지 방법입니다 426 00:21:28,420 --> 00:21:29,960 응답보세요. 427 00:21:29,960 --> 00:21:30,770 OK? 428 00:21:30,770 --> 00:21:36,230 사람이 기억한다면, 머리를 쓰기 HTTP의 강의에서, 너희들을 429 00:21:36,230 --> 00:21:39,940 에서 헤더를 기억 HTTP 것 위에? 430 00:21:39,940 --> 00:21:43,580 왜 난 그냥 데모하지 않습니다 진짜 빨리 헤더. 431 00:21:43,580 --> 00:21:44,640 그 도움이 될 것입니다? 432 00:21:44,640 --> 00:21:45,500 아니면해야 우리 단지 종류의 - 433 00:21:45,500 --> 00:21:46,070 OK. 434 00:21:46,070 --> 00:21:46,740 확인합니다. 435 00:21:46,740 --> 00:21:52,340 >> 그래서 브라우저가 google.com에 갈 때 또는 그런 식으로, 436 00:21:52,340 --> 00:21:54,250 실제로 조금 더있어 - 437 00:21:54,250 --> 00:21:55,380 이 비밀처럼 - 438 00:21:55,380 --> 00:21:58,340 조금 더 많은 정보와 같은있다 그것은 단지보다 파이프를 통해 제공 439 00:21:58,340 --> 00:22:00,180 작은 검색 및 모든. 440 00:22:00,180 --> 00:22:03,550 그래서 당신이 보여, 내가 갈거야 컬라는 프로그램을 사용합니다. 441 00:22:03,550 --> 00:22:04,260 OK? 442 00:22:04,260 --> 00:22:08,020 그래서 이것은 당신이 실행할 수있는 일이있다 맥 OSX 명령 줄이나에 443 00:22:08,020 --> 00:22:09,830 제품 또는 무엇이든. 444 00:22:09,830 --> 00:22:17,050 그리고 내가 컬 경우 HTTP google.com, 나는 HTML을 볼거야. 445 00:22:17,050 --> 00:22:21,230 그리고 이것은, 공평하게, 단지 정렬하는 방법을 설명 HTML 446 00:22:21,230 --> 00:22:24,695 브라우저가없는 경우 WWW로 리디렉션 자동으로 처리 447 00:22:24,695 --> 00:22:27,110 재. 448 00:22:27,110 --> 00:22:33,390 >> 그래서 이것은 단지 HTML,하지만 난 갈거야 내가 플래그이 하이픈 컬에 추가. 449 00:22:33,390 --> 00:22:33,600 OK? 450 00:22:33,600 --> 00:22:35,600 그리고이 보여줄 것입니다 나 헤더. 451 00:22:35,600 --> 00:22:40,640 그래서이 또한 제공 정보입니다 를 통해 나는이 응답을 얻을 때. 452 00:22:40,640 --> 00:22:41,260 OK? 453 00:22:41,260 --> 00:22:45,320 >> 그래서 상단에, 당신이 볼 HTTP 301 영구적으로 이동합니다. 454 00:22:45,320 --> 00:22:49,470 그리고 중요한 일이 라서요 때문에 이 상태 코드를 의미한다. 455 00:22:49,470 --> 00:22:53,750 그래서 여기 (301)는 상태 코드이다 기본적으로 그냥 정수입니다 456 00:22:53,750 --> 00:22:57,750 즉, 브라우저 또는 누구의 지시 당신이 척하면,이 글을 읽고 457 00:22:57,750 --> 00:23:01,460 당신은 브라우저이고이를보고있다, 기본적으로 지금은 보면 458 00:23:01,460 --> 00:23:04,960 그와 당신이 (301)를 참조하십시오, 당신은 내가 가지고있는 알고 를 기반으로 뭔가 특별한 걸 459 00:23:04,960 --> 00:23:08,810 (301), 또는 뭔가 특별한 일이 (301)을 기준으로. 460 00:23:08,810 --> 00:23:12,640 그래서 영구적으로 이동 말한다. 461 00:23:12,640 --> 00:23:17,700 >> 그리고, 기본적으로, 우리는이 키 값 쌍의 무리. 462 00:23:17,700 --> 00:23:22,100 그래서 우리는 위치를 얻을 www.google.com입니다. 463 00:23:22,100 --> 00:23:25,190 다음 종류의 모든 다른 것들, 그러나 기본적으로, 어떤 위치는 464 00:23:25,190 --> 00:23:29,662 말은 새로운 위치 www.google.com에 있습니다. 465 00:23:29,662 --> 00:23:33,800 당신은 google.com에 가면 그래서 지금, 당신은거야 종류의 깜박임의 브라우저 종류를 확인 466 00:23:33,800 --> 00:23:38,770 리디렉션 다음 두 번째와 용 바로 다시 www.google.com에. 467 00:23:38,770 --> 00:23:41,840 그래서 응답은 포함 할 수 있습니다 이러한 헤더. 468 00:23:41,840 --> 00:23:43,330 >> 그리고 몇 가지를 지적합니다. 469 00:23:43,330 --> 00:23:46,890 그럼 우리가 실제로 성공했다 가정 해 봅시다 웹 페이지를 방문한다. 470 00:23:46,890 --> 00:23:49,040 그래서 나에 가자 - 471 00:23:49,040 --> 00:23:51,080 좋은 웹 사이트는 무엇인가? 472 00:23:51,080 --> 00:23:53,285 나는 좋은 생각에 나쁜 해요 그 자리에서 웹 사이트. 473 00:23:53,285 --> 00:23:53,640 >> 청중 : 위키 백과. 474 00:23:53,640 --> 00:23:54,160 >> 케빈 슈 미드 : OK. 475 00:23:54,160 --> 00:23:56,040 의 위키 피 디아를하자. 476 00:23:56,040 --> 00:23:58,680 그래서 나는 여기가 이동되었습니다. 477 00:23:58,680 --> 00:23:59,240 아 기다립니다. 478 00:23:59,240 --> 00:24:00,160 나는이 되었나요? 479 00:24:00,160 --> 00:24:00,890 예,이었다. 480 00:24:00,890 --> 00:24:01,100 OK. 481 00:24:01,100 --> 00:24:03,005 그래서 나는 WWW을 할 수있어. 482 00:24:03,005 --> 00:24:06,006 그래서 www를 할거야. 483 00:24:06,006 --> 00:24:09,680 당신이 볼 수 있듯이, 여기에 모든 HTML이다 브라우저가 처리하는 것 484 00:24:09,680 --> 00:24:10,910 위키 백과에 대한. 485 00:24:10,910 --> 00:24:14,055 >> 하지만 여기에 스크롤 유지하는 경우, 나는 정상에 볼 수 있습니다 무엇을 - 486 00:24:14,055 --> 00:24:17,800 와우,이 많이 있습니다 위키 백과에 HTML - 487 00:24:17,800 --> 00:24:22,550 하지만 내가 여기에 상단에 볼 수있는 것은 에 대해서 반대이 200 상태 코드 488 00:24:22,550 --> 00:24:24,570 앞서 본 301. 489 00:24:24,570 --> 00:24:27,100 그리고 그것은 좋은 있음을 알 수 옆에 친절 OK. 490 00:24:27,100 --> 00:24:29,470 그래서이 좋은 상태 코드와 같습니다. 491 00:24:29,470 --> 00:24:31,160 >> 그 200 번호가 익숙합니까? 492 00:24:31,160 --> 00:24:34,120 493 00:24:34,120 --> 00:24:39,880 예 때문에 simpler.js를 한 때 나는 거기에 200을 썼다. 494 00:24:39,880 --> 00:24:43,290 그래서 기본적으로 말 말 것 브라우저 나 누구가에 도착하려고 495 00:24:43,290 --> 00:24:45,440 그들이 성공했음을이. 496 00:24:45,440 --> 00:24:49,040 또는 같은 우리의 종류 너무 성공했다. 497 00:24:49,040 --> 00:24:54,320 >> 그리고 특수 구문의 종류가있다 자바 스크립트의 선언에 대한 498 00:24:54,320 --> 00:24:59,870 콘텐츠 형식 등이 키의지도 텍스트 일​​반 등이 값. 499 00:24:59,870 --> 00:25:03,780 그래서 당신은 응답을 보면 우리 전에 다시 위키 백과있어 - 500 00:25:03,780 --> 00:25:06,200 나는 스크롤하려고거야 조금 더 빨리 - 501 00:25:06,200 --> 00:25:09,900 당신은 서버 등이 키가 이러한 값 아파치. 502 00:25:09,900 --> 00:25:12,120 그래서 당신은 키와 값을 가지고있다. 503 00:25:12,120 --> 00:25:15,930 그리고 당신은이를 지정할 수 있습니다 다시 보낼 것을 노드. 504 00:25:15,930 --> 00:25:19,380 >> 그래서이 일부 사실의 종류입니다 방법으로, 어떤 방법으로이 아니다 505 00:25:19,380 --> 00:25:23,170 실제로, 그러나 약간 낮은 레벨의 정보 당신이 할 수있는 PHP 코드를보다 506 00:25:23,170 --> 00:25:26,980 P에 대해 작성하는 것은 일곱을 설정 때문에 PHP와 아파치는 종류의 일부를 돌봐 507 00:25:26,980 --> 00:25:28,150 당신이 일을. 508 00:25:28,150 --> 00:25:32,520 PHP에서는 기본값을 대체 할 수 있습니다 자신의 헤더를 작성하여 동작. 509 00:25:32,520 --> 00:25:35,520 그러나 이것의 목적을 위해, 우리는 얻을 우리 자신의 헤더를 작성합니다. 510 00:25:35,520 --> 00:25:38,210 511 00:25:38,210 --> 00:25:41,105 >> 그래서 라인은 이해가 않습니다 모두, 기록 헤드 라인? 512 00:25:41,105 --> 00:25:41,380 OK. 513 00:25:41,380 --> 00:25:42,280 신난다. 514 00:25:42,280 --> 00:25:45,870 >> 그럼 내가가는 응답을 종료합니다 세계의 인사로. 515 00:25:45,870 --> 00:25:47,040 OK. 516 00:25:47,040 --> 00:25:49,920 그러나 그것은 단지 함수의 요청 처리기했다. 517 00:25:49,920 --> 00:25:53,510 그래서 지금은 실제로 종류의해야 이 기능이 뭔가, 오른쪽? 518 00:25:53,510 --> 00:25:59,170 >> 그래서 여기에 내가하는 일이이입니다 VAR 서버 같음을 수행 라인 519 00:25:59,170 --> 00:26:03,530 HTTP.create 서버, 다음 I 요청 처리기에 전달합니다. 520 00:26:03,530 --> 00:26:06,080 따라서이 노드의 종류 서버를 만드는 방법입니다. 521 00:26:06,080 --> 00:26:08,790 그리고 흘러가는 걸 알 요청 처리기에서. 522 00:26:08,790 --> 00:26:12,290 그래서이 createServer을 말하고있다 난 당신이 내게하고 싶은 기능 523 00:26:12,290 --> 00:26:16,270 서버 및 때 서버가 수신 응답, 당신이 호출 할 필요가 524 00:26:16,270 --> 00:26:18,680 핸들러 함수를 요청합니다. 525 00:26:18,680 --> 00:26:18,990 OK? 526 00:26:18,990 --> 00:26:22,290 >> 그래서 라인 거의 바로 완료됩니다. 527 00:26:22,290 --> 00:26:28,780 따라서 VAR 서버 라인은 오른쪽으로 수행됩니다 당신은 꽤 많이 그렇게 후. 528 00:26:28,780 --> 00:26:31,770 내 말은, 그것은 몇 가지 내부를 설정하는 당신이해야한다는 것을 알 수있는 상태 529 00:26:31,770 --> 00:26:35,400 그 요청 처리기 함수를 호출하지만, 그것은 거기에 앉아 예정 아니에요 530 00:26:35,400 --> 00:26:37,730 말은 보낸 사용자가 나 아직 요청? 531 00:26:37,730 --> 00:26:39,270 사용자는 아직 나에게 요청을 보낸 적이 있습니까? 532 00:26:39,270 --> 00:26:40,780 그래서 차단하지 않습니다. 533 00:26:40,780 --> 00:26:41,650 OK? 534 00:26:41,650 --> 00:26:46,120 >> 그래서이가 할 것은이 기본적으로 지금이 코드에 대한 포인터가 저장, 535 00:26:46,120 --> 00:26:49,670 다음 요청 핸들러 함수 및 이 코드를 실행할 때 누군가 536 00:26:49,670 --> 00:26:52,170 요청합니다. 537 00:26:52,170 --> 00:26:54,120 그리고 우리는 server.listen을한다. 538 00:26:54,120 --> 00:26:56,950 539 00:26:56,950 --> 00:26:59,960 >> 1337 꽤 임의있다. 540 00:26:59,960 --> 00:27:02,285 나는 특별한 이유가 없습니다 그 번호를 따기위한. 541 00:27:02,285 --> 00:27:03,860 그것은 완전히 무작위로했다. 542 00:27:03,860 --> 00:27:07,010 그러나 그것은 단지 포트를 지정합니다. 543 00:27:07,010 --> 00:27:10,640 그래서 대부분의 웹 서버는이 부분에 대해서는 그들이 그 종류이기 때문에 포트 80을 사용 544 00:27:10,640 --> 00:27:11,810 의 규칙 등을들 수있다. 545 00:27:11,810 --> 00:27:16,170 그래서 뭔가에 가면, 나도 몰라, Wikipedia.org, 546 00:27:16,170 --> 00:27:17,700 내가 콜론 8을 넣어 - 547 00:27:17,700 --> 00:27:18,610 오 와우, 당신은 볼 수 없습니다. 548 00:27:18,610 --> 00:27:19,370 미안 해요. 549 00:27:19,370 --> 00:27:21,820 하지만 위키 백과를 할 경우 - 550 00:27:21,820 --> 00:27:24,810 난 여기가 쓸 것이다 그냥 그렇게 그것은 카메라에 분명하다. 551 00:27:24,810 --> 00:27:29,150 하지만 내가 가진 브라우저에이 걸릴 경우 지정하는 콜론 (80)로 이동 552 00:27:29,150 --> 00:27:31,430 Wikipedia.org 포트 80에서. 553 00:27:31,430 --> 00:27:36,200 따라서 미국이 얼마나처럼 당신이 출하 할 수있는 등 여러 개의 포트 554 00:27:36,200 --> 00:27:37,440 어떤 종류의 정보. 555 00:27:37,440 --> 00:27:40,730 그래서이 특정 이동처럼 이 서버에 배치합니다. 556 00:27:40,730 --> 00:27:40,990 OK. 557 00:27:40,990 --> 00:27:45,730 >> 그래서 난 그냥 1337를 선택했다. 558 00:27:45,730 --> 00:27:47,910 숫자의 전체 범위가있다 당신은 선택할 수있다. 559 00:27:47,910 --> 00:27:50,390 즉, 완전히 특별하지 않았다. 560 00:27:50,390 --> 00:27:54,560 >> 그러나 지금 할거야 나는 노드를 실행하는거야 있습니다. 561 00:27:54,560 --> 00:27:59,730 내가 실제로 입력 할 수있는 몇 당신이 그것을 볼 수 있도록 아래로 라인. 562 00:27:59,730 --> 00:28:03,130 나는 노드를 할거야, 그리고 난 simpler.js를 실행하는 것. 563 00:28:03,130 --> 00:28:06,880 그리고 우리는 얻는 방법에 대해 이야기 할 것입니다 노드는 약간의 설정. 564 00:28:06,880 --> 00:28:09,350 하지만 지금은 서버를 실행중인. 565 00:28:09,350 --> 00:28:14,360 >> 그래서 한 가지 우리가 시도 할 수있는하지 않을 수 있습니다 흥미로운 우리가 실제로 할 수있는 것을 할 수 566 00:28:14,360 --> 00:28:16,300 컬에 액세스하려고합니다. 567 00:28:16,300 --> 00:28:20,680 그래서 컬을 수행 할 수 있습니다 내 기계는 로컬 호스트입니다. 568 00:28:20,680 --> 00:28:24,600 또한이 기록이 표시됩니다 때로는이있다. 569 00:28:24,600 --> 00:28:29,810 로컬 호스트와 127.0.0.1은 친절 당신의 집에있는 컴퓨터 등을들 수있다. 570 00:28:29,810 --> 00:28:33,180 그래서 이야기처럼 자신의 컴퓨터. 571 00:28:33,180 --> 00:28:33,760 OK. 572 00:28:33,760 --> 00:28:36,030 >> 그리고 나서 1337 말할 수 있습니다. 573 00:28:36,030 --> 00:28:39,630 그래서 나는이 코드 줄을 실행하는 경우, 그것은 세계 안부. 574 00:28:39,630 --> 00:28:44,050 그리고 그 물건을보고 싶어하면 그 했다 콘텐츠 형식의 텍스트를 일반 또는 575 00:28:44,050 --> 00:28:46,560 무엇이든, 난 여기를 둘 수 있었다. 576 00:28:46,560 --> 00:28:48,810 그리고 확인을 말하는가 것을 알 수 있습니다. 577 00:28:48,810 --> 00:28:50,810 그리고 텍스트 일​​반을하지 않아도됩니다. 578 00:28:50,810 --> 00:28:53,140 그리고이 다른 종류의 모든있다 노드 그룹에 추가 할 것들 579 00:28:53,140 --> 00:28:54,440 거기에 나를 위해. 580 00:28:54,440 --> 00:28:55,700 즉, 슈퍼 중요하지 않습니다. 581 00:28:55,700 --> 00:28:58,230 >> 내 말은, 기술의 몇 가지 종류가 있습니다 친절의 측면 582 00:28:58,230 --> 00:29:02,280 다만 보여줄의 이야기 시원하지만, 당신은 또한 전원을 수있다 583 00:29:02,280 --> 00:29:03,070 주위에 이러한 변경합니다. 584 00:29:03,070 --> 00:29:06,280 그래서 난 그냥 무리를 추가 할 수 있습니다 그런 물건. 585 00:29:06,280 --> 00:29:11,780 그리고 지금, 내가 보면 내 출력은, 그 것입니다. 586 00:29:11,780 --> 00:29:19,740 그래서 이러한 헤더는 어떤 것들을 의미 같은 브라우저와 볼거리에. 587 00:29:19,740 --> 00:29:23,040 >> 그리고 헤더는 기본적으로 브라우저를 말할 수있다 어떻게 무언가에 반응한다. 588 00:29:23,040 --> 00:29:26,280 당신은,는 이전에 쿠키를 들어 본 적이 있다면 또는 당신은 짜증이왔다면 589 00:29:26,280 --> 00:29:29,330 쿠키를 설정 웹 페이지에서, 또는 쿠키 블록 또는 켜져 590 00:29:29,330 --> 00:29:30,320 그런 식으로. 591 00:29:30,320 --> 00:29:33,040 실제로 쿠키를 설정할 수 있습니다 이러한 헤더. 592 00:29:33,040 --> 00:29:36,990 그래서 그들은 방법을 브라우저에게 경우에 따라서는 동작. 593 00:29:36,990 --> 00:29:37,750 OK. 594 00:29:37,750 --> 00:29:40,310 >> 그래서 simpler.js했다. 595 00:29:40,310 --> 00:29:42,780 아무도 질문이 있습니까 그 소스 코드 파일에? 596 00:29:42,780 --> 00:29:45,420 597 00:29:45,420 --> 00:29:45,610 OK. 598 00:29:45,610 --> 00:29:46,490 쿨. 599 00:29:46,490 --> 00:29:50,780 >> 그래서 그에서 R을 제거 할 수 및 simple.js 확인합니다. 600 00:29:50,780 --> 00:29:53,010 따라서이 꽤 많이 있습니다 같은 프로그램. 601 00:29:53,010 --> 00:29:56,030 나는 조금 다르게 쓴 내가 강조 정렬하고 싶었 기 때문에 602 00:29:56,030 --> 00:29:57,850 자바 스크립트의 몇 가지 기능을 제공합니다. 603 00:29:57,850 --> 00:30:03,880 >> 그래서 주목 그 의뢰처 기능은 완전히 사라졌다. 604 00:30:03,880 --> 00:30:05,800 네 오, 당신은 질문이있는 거죠? 605 00:30:05,800 --> 00:30:08,200 >> 청중 : 네, 인수 그에 전달되는 606 00:30:08,200 --> 00:30:10,120 기능, 그들은 무엇입니까? 607 00:30:10,120 --> 00:30:12,050 >> 케빈 슈 미드 : 그래서 사람들은 자바 스크립트 객체. 608 00:30:12,050 --> 00:30:15,230 Node.js 문서에서는, 기본적으로 방법이 무엇인지 말한다 609 00:30:15,230 --> 00:30:15,910 그들에 사용할 수 있습니다. 610 00:30:15,910 --> 00:30:19,602 우리는 단지에 대한 액세스를 가지고하는 일이 쓰기 헤드와 끝이라는 방법 611 00:30:19,602 --> 00:30:20,730 그와 같은 것들. 612 00:30:20,730 --> 00:30:22,590 그러나 전체 무리가있다 더 많은 방법. 613 00:30:22,590 --> 00:30:27,670 >> 예를 들면, 그 중 하나처럼 촬영에 특히, 당신은 할 수 있습니다 614 00:30:27,670 --> 00:30:34,540 rec.method 같은 것을하는 것 그것은 HTTP 얻을의 여부를 말해 615 00:30:34,540 --> 00:30:36,780 HTTP POST 요청 및 그런 것. 616 00:30:36,780 --> 00:30:39,100 그래서 다른 모든 종류의가있다 속성,하지만 그들은 둘 다 617 00:30:39,100 --> 00:30:42,560 자바 스크립트 객체, 그들은 단지이 그들에 부착 된 기능을 당신에게 그 618 00:30:42,560 --> 00:30:43,850 정보를 기록 할 수 있습니다. 619 00:30:43,850 --> 00:30:45,520 OK? 620 00:30:45,520 --> 00:30:49,030 >> 그래서 요청 처리기를 통지 완전히 사라졌습니다. 621 00:30:49,030 --> 00:30:52,650 하지만 요청했다 코드 핸들러는 아직 거기있다. 622 00:30:52,650 --> 00:30:56,520 나는 아직도이 res.writeHead이 나는 여전히이 res.end있다. 623 00:30:56,520 --> 00:31:00,270 그리고 이것은에서의 예 것입니다 자바 스크립트는이 아이디어 624 00:31:00,270 --> 00:31:01,460 익명 함수. 625 00:31:01,460 --> 00:31:04,180 익명는 피팅 이름처럼 그것을 위해 말 그대로하지 않기 때문에 626 00:31:04,180 --> 00:31:05,180 이름이. 627 00:31:05,180 --> 00:31:07,900 어떤 기능 요청이 없다 거기 핸들러. 628 00:31:07,900 --> 00:31:10,110 >> 이름이없는,하지만 여전히 인수를하고있다. 629 00:31:10,110 --> 00:31:12,250 그래서 난 아직도 녹화 및 고해상도 얻었다. 630 00:31:12,250 --> 00:31:16,180 그리고 난 여전히 코드가 있습니다. 631 00:31:16,180 --> 00:31:18,930 이것은 완벽하게 괜찮습니다 자바 스크립트 코드입니다. 632 00:31:18,930 --> 00:31:22,540 그래서하지 않고 함수를 선언 할 수 있습니다 명시 적 이름을 제공. 633 00:31:22,540 --> 00:31:24,250 처음에는 약간 혼란이다. 634 00:31:24,250 --> 00:31:26,230 일부 같은 유용한 것들이 있습니다 당신과 함께 할 수있는 635 00:31:26,230 --> 00:31:28,450 이러한 익명 함수. 636 00:31:28,450 --> 00:31:32,100 아무도 여기에 대한 질문이 있습니까, 또는 그것은 단지에 대한, 지금 OK입니다 637 00:31:32,100 --> 00:31:34,130 종류의 단지 동의 그것이 같은 일을 할 것인가? 638 00:31:34,130 --> 00:31:36,700 639 00:31:36,700 --> 00:31:37,125 네? 640 00:31:37,125 --> 00:31:38,680 >> 청중 : 함수는 첫 번째입니까 자바의 클래스? 641 00:31:38,680 --> 00:31:41,020 >> 케빈 슈 미드 : 그들은 첫 번째입니다 자바의 클래스. 642 00:31:41,020 --> 00:31:45,490 그냥 알고 이러한 개념 같은 익명 함수에 전달 643 00:31:45,490 --> 00:31:49,600 이 자바 스크립트에 적용되는 당신 에 대한 최종 프로젝트에 쓸 수 있습니다 644 00:31:49,600 --> 00:31:51,260 도 웹 브라우저. 645 00:31:51,260 --> 00:31:56,700 그래서 예를 들어, 자바에있는 브라우저, 그것은 다소 또한 이벤트의 646 00:31:56,700 --> 00:32:00,680 의미에서 구동이 무엇을거야 사용자가이를 클릭 할 때입니다이 647 00:32:00,680 --> 00:32:02,640 버튼을, 당신이이 코드를 실행하려고합니다. 648 00:32:02,640 --> 00:32:07,070 >> 그래서 아이디어의 동일한 종류의 클라이언트 쪽 마우스를 클릭하거나 할 때 649 00:32:07,070 --> 00:32:09,870 에 대한 몇 가지 이미지 위에 마우스 당신의 웹 페이지에이 코드를 실행합니다. 650 00:32:09,870 --> 00:32:11,350 즉, 서버에 적용 할 수 있습니다. 651 00:32:11,350 --> 00:32:16,380 그래서 종류의 흥미로운처럼 자바 스크립트는 정말 왜 이유 652 00:32:16,380 --> 00:32:19,810 적합 또는 어떤 사람들은 생각 이런 종류의에 적합한 언어 653 00:32:19,810 --> 00:32:22,530 이벤트 드라이버 서버 당신이 있기 때문에 이러한 익명 함수. 654 00:32:22,530 --> 00:32:26,150 당신은 모든 생각의이 이 비동기 코드. 655 00:32:26,150 --> 00:32:27,060 OK. 656 00:32:27,060 --> 00:32:30,360 질문 있나? 657 00:32:30,360 --> 00:32:30,470 >> OK. 658 00:32:30,470 --> 00:32:33,440 그래서 simple.js했다. 659 00:32:33,440 --> 00:32:38,070 그럼 한 번 더 살펴 보자 또는 몇 가지 더. 660 00:32:38,070 --> 00:32:42,040 그래서이 sleep.js입니다. 661 00:32:42,040 --> 00:32:47,160 그래서에 익숙한 사람입니다 C 함수 수면? 662 00:32:47,160 --> 00:32:50,936 이전 강의 어쩌면 하나에서 또는 그런 식으로 뭔가? 663 00:32:50,936 --> 00:32:54,650 >> 그래서 기본적으로 내 생각을 전달할 수 초 단위 또는 당신은 U에게 사용하는 경우 664 00:32:54,650 --> 00:32:57,080 밀리 초 단위의 숫자를 잠 또는 나노초. 665 00:32:57,080 --> 00:33:00,450 기본적으로 프로그램은 중단됩니다 시간의 금액에 대한 실행. 666 00:33:00,450 --> 00:33:01,280 오른쪽? 667 00:33:01,280 --> 00:33:06,970 그리고 결국 일어날 것이다 다음은 계속 실행됩니다 668 00:33:06,970 --> 00:33:08,340 프로그램. 669 00:33:08,340 --> 00:33:12,740 >> 그래서이 서버 종류의 제공 자기의 느낌. 670 00:33:12,740 --> 00:33:17,580 그래서 우리가 동일한 것을 알 헤더 등으로 200 res.writeHead 671 00:33:17,580 --> 00:33:22,130 전에,하지만 우리는이 전화하는거야 함수는 타임 아웃 시간이라고. 672 00:33:22,130 --> 00:33:26,170 설정 시간 초과도 가능합니다 웹 브라우저 구글 크롬 673 00:33:26,170 --> 00:33:28,000 또는 사파리 또는 무엇이든. 674 00:33:28,000 --> 00:33:31,720 그리고 기본적으로 여기에서 무엇을하고 있는지 그것은 함수에 복용한다. 675 00:33:31,720 --> 00:33:33,360 공지 사항, 다시, 그것은이다 익명 함수. 676 00:33:33,360 --> 00:33:36,310 우리가이기 때문에 그래서 종류의 멋진 내 익명 함수를 사용하여 677 00:33:36,310 --> 00:33:38,950 익명 함수하는 조금 이상 할 수 있습니다. 678 00:33:38,950 --> 00:33:42,270 >> 그러나, 이는 그 기능을 복용 이 방법과 - 기본적으로 말 679 00:33:42,270 --> 00:33:47,430 작품은 내가 원하는, 5,000 밀리 초 단위입니다 해당 기능을 실행하는 680 00:33:47,430 --> 00:33:50,830 그냥 어이 응답은 종료하고 기록합니다. 681 00:33:50,830 --> 00:33:56,730 따라서이 같은 인상을 준다 자, 그러나 방법이 실제로 682 00:33:56,730 --> 00:33:59,780 작품은 우리를 통해 실행합니다입니다 매우 신속하게이 라인. 683 00:33:59,780 --> 00:34:01,190 우리는 뭔가를 쓰고있어. 684 00:34:01,190 --> 00:34:03,780 그리고 우리는 또한을 통해 실행할 수 있습니다 매우 신속하게이 라인. 685 00:34:03,780 --> 00:34:08,620 그래서 우리는 실제로는하지 않을거야 5 초 동안 기다립니다. 686 00:34:08,620 --> 00:34:11,370 우리는 단지 실행하는거야 즉시이 코드. 687 00:34:11,370 --> 00:34:14,219 >> 그리고, 다시이 작은있다 지금이 일이 이벤트 루프 688 00:34:14,219 --> 00:34:17,570 기본적으로 그냥입니다 레지스터 지속적으로 원형으로 돌고 689 00:34:17,570 --> 00:34:21,620 그리고 하나의 시계를 찾고 실 말은, 5 초이 690 00:34:21,620 --> 00:34:22,360 아직 통과? 691 00:34:22,360 --> 00:34:26,409 그리고, 그것은 볼 때 그 두 번째 손으로 5 초 또는처럼 이동했다 692 00:34:26,409 --> 00:34:29,190 무엇이든, 그것은, 일어나고 말한다 아, 무엇을해야합니까? 693 00:34:29,190 --> 00:34:30,350 오, 나는이 코드를 실행해야합니다. 694 00:34:30,350 --> 00:34:33,110 그리고, 그것은 것 헤이 res.end 실행합니다. 695 00:34:33,110 --> 00:34:35,360 >> 그래서 다시, 우리는 여기에서 기다리는 경우는 없습니다. 696 00:34:35,360 --> 00:34:38,590 그래서 아니라 그 내부 코드 이 기능은 다섯 걸릴 것입니다 697 00:34:38,590 --> 00:34:39,900 실행 시간 (초). 698 00:34:39,900 --> 00:34:43,090 이 코드는 거의 실행 에 순간적으로, 적어도 상대 699 00:34:43,090 --> 00:34:46,139 우리가 얘기했다 오초 에 대한 이전하기 전에. 700 00:34:46,139 --> 00:34:52,100 >> 그러니, 행동이 보여 나는 Node.sleep.js 할 수 있습니다. 701 00:34:52,100 --> 00:34:55,159 그리고 무언가를 I의 혼란을 했습니까? 702 00:34:55,159 --> 00:34:56,310 아마도. 703 00:34:56,310 --> 00:34:57,410 미안 해요. 704 00:34:57,410 --> 00:34:59,530 이제 우리는이 문제를 해결하기 위해 무엇을 할 수 있는지 살펴 보자. 705 00:34:59,530 --> 00:35:10,830 706 00:35:10,830 --> 00:35:12,080 OK. 707 00:35:12,080 --> 00:35:15,460 708 00:35:15,460 --> 00:35:17,464 그래서 확실히 Node.js.를 사용 709 00:35:17,464 --> 00:35:19,440 난 그냥 농담이야. 710 00:35:19,440 --> 00:35:19,570 OK. 711 00:35:19,570 --> 00:35:20,820 한 초. 712 00:35:20,820 --> 00:35:27,380 713 00:35:27,380 --> 00:35:27,900 OK. 714 00:35:27,900 --> 00:35:29,130 나는 그것이 무엇인지 알고있다. 715 00:35:29,130 --> 00:35:34,440 >> 그래서 문제는 그 내 다른 탭의 여기에, 나는 이미 노드를 실행중인 716 00:35:34,440 --> 00:35:36,590 같은 주소 1337. 717 00:35:36,590 --> 00:35:43,370 우리가 보면이, 던져 그래서 오류 그것을 실제 밀접 주소에 718 00:35:43,370 --> 00:35:45,180 , EADDRINUSE를 사용합니다. 719 00:35:45,180 --> 00:35:47,970 그래서 난 이미 여기에 1337을 사용 하였다. 720 00:35:47,970 --> 00:35:52,210 나는 지금 다음이를 차단하고,이 경우 희망을 갖고, 모든이를 실행하려고 721 00:35:52,210 --> 00:35:53,210 잘 될 것입니다. 722 00:35:53,210 --> 00:35:53,440 OK. 723 00:35:53,440 --> 00:35:57,020 그래서 당신은 단 한 가지의 종류가 있습니다 의 번 포트에서 수신. 724 00:35:57,020 --> 00:35:59,660 또 다른 해결책은 날이었을 것입니다 그냥 프로그램을 편집하고 만들려면 725 00:35:59,660 --> 00:36:02,370 그것은 1338 또는 뭔가처럼 그런. 726 00:36:02,370 --> 00:36:04,100 >> 하지만 지금 잠이 실행 중입니다. 727 00:36:04,100 --> 00:36:06,400 그래서 실제로 그것을 시도하자 브라우저이 시간이 때문에 728 00:36:06,400 --> 00:36:09,080 볼 수있는 약간의 수익률이 그것은 터미널에서. 729 00:36:09,080 --> 00:36:13,560 그래서 난 그냥에 갈거야 127 주소 다시 1337에서. 730 00:36:13,560 --> 00:36:14,850 그리고 경우에 당신은 그것을 볼 수 있습니다 - 731 00:36:14,850 --> 00:36:18,050 난 당신이 할 수있는 경우에 몰라요 -하지만 내 브라우저는 아주, 아주 오래 복용 732 00:36:18,050 --> 00:36:20,600 또는 오초와 같이 적재하기. 733 00:36:20,600 --> 00:36:23,460 >> 그리고 그 후, 그것을 마지막으로 응답을했다. 734 00:36:23,460 --> 00:36:29,070 그리고 당신은 그것을 볼 수 없기 때문에 일 내가 할 경우 약간 위로 이동되지만, 735 00:36:29,070 --> 00:36:32,500 이 조금 작은, 당신 그것은 헤이 말한다 볼 수 있습니다. 736 00:36:32,500 --> 00:36:35,130 그래서 안녕을 가지고 있지만, 오초 후. 737 00:36:35,130 --> 00:36:38,510 그리고 볼 조금 청소기 수 있습니다 여기에 터미널에 그것을, 그래서 난 738 00:36:38,510 --> 00:36:40,980 할 거 - 739 00:36:40,980 --> 00:36:43,540 여기서의하자 - 740 00:36:43,540 --> 00:36:48,370 의는 해당 주소 컬하자 다시 1337로. 741 00:36:48,370 --> 00:36:50,820 그리고 어쩌다 앉아 있어야 여기에 5 초. 742 00:36:50,820 --> 00:36:53,760 그러나 알이 서버 새로운 응답을 받아 들일 수 있습니다. 743 00:36:53,760 --> 00:36:54,940 그래서 헤이 인쇄합니다. 744 00:36:54,940 --> 00:36:58,720 >> 기본적으로,이 데모하는 것을 나는이 다른 탭에서 할 수있는 - 745 00:36:58,720 --> 00:37:02,640 그래서 내가 다른 탭에서 이렇게 말을하자, 나는 컬과 같은 행동을 할거야 746 00:37:02,640 --> 00:37:03,780 일 다시. 747 00:37:03,780 --> 00:37:06,600 그리고 나는이 킥을 시도하려고 해요 동시에 사람 끕니다. 748 00:37:06,600 --> 00:37:08,260 그래서이 작업을 수행하는거야, 그리고 난 여기에 경주에 가서 난 749 00:37:08,260 --> 00:37:09,650 다시 할 것. 750 00:37:09,650 --> 00:37:14,030 >> 그리고 현실을 만들어 보자 있도록 둘 다 볼 수 있습니다. 751 00:37:14,030 --> 00:37:20,250 헤이 인쇄 그 하나 하나 인쇄 헤이 모든 방법에서 - 752 00:37:20,250 --> 00:37:22,550 이제 다시 실험을 해 보자. 753 00:37:22,550 --> 00:37:25,100 사실, 이제이를 사용하자 그 확인의 경우, 트릭. 754 00:37:25,100 --> 00:37:30,520 >> 그래서 쉘 것을 사용된다는 말 내가 기본적으로 두 복사본을 실행할 수 있습니다 755 00:37:30,520 --> 00:37:32,630 병렬 프로그램의. 756 00:37:32,630 --> 00:37:36,070 그래서 첫 번째 프로그램을 실행하고 있습니다 병렬 번째 프로그램. 757 00:37:36,070 --> 00:37:39,060 I Enter 키를 누를 경우에 따라서 지금은 무슨 그 요청이 꽤 많이 만들려면 758 00:37:39,060 --> 00:37:40,570 순간적으로 동시에. 759 00:37:40,570 --> 00:37:42,620 그래서이에게 기회를 제공 할 수 있습니다. 760 00:37:42,620 --> 00:37:44,950 >> 그래서 지금은 두 가지 과정을 말한다 알 수 있습니다. 761 00:37:44,950 --> 00:37:50,630 그리고 당신은 호기심이 있다면, 그 27,000 번호는 기본적으로 프로세스 ID이다. 762 00:37:50,630 --> 00:37:52,940 그리고 그들은 인쇄, 알 헤이 동시에. 763 00:37:52,940 --> 00:37:56,820 우리가 다섯 기다려야했다 싫어했다 그 후 한 다음 초, 764 00:37:56,820 --> 00:37:59,640 오초 이후 두 번째를 얻을. 765 00:37:59,640 --> 00:38:03,300 그래서 종류의, 어떤 방법으로, 그건 것 정말 증거가 있지만 안 766 00:38:03,300 --> 00:38:07,390 그냥 아니라고 직관적 인 증거 5 초 기다리고 차단 등 767 00:38:07,390 --> 00:38:08,960 전체 스레드. 768 00:38:08,960 --> 00:38:10,720 멋진 OK. 769 00:38:10,720 --> 00:38:17,850 >> 아론은 이전과 같은 질문을 그 했다, 물론 우리가 뭔가를 할 경우 - 770 00:38:17,850 --> 00:38:18,735 네? 771 00:38:18,735 --> 00:38:19,051 >> 청중 : 잠깐. 772 00:38:19,051 --> 00:38:21,585 어떻게 다르다 printf의 버퍼,하지만? 773 00:38:21,585 --> 00:38:23,010 자동으로 그렇게하지 ​​않는 이유는 무엇입니까? 774 00:38:23,010 --> 00:38:25,390 왜 우리는 그것에 대해 걱정해야합니까? 775 00:38:25,390 --> 00:38:26,555 >> 케빈 슈 미드 : 오, 당신이 할 수 하나 더 말? 776 00:38:26,555 --> 00:38:29,510 >> 청중 : printf의 버퍼를 좋아하지 않는다 똑같은 일을? 777 00:38:29,510 --> 00:38:31,280 >> 케빈 슈 미드 : printf의 버퍼? 778 00:38:31,280 --> 00:38:32,753 >> 청중 : 네. 779 00:38:32,753 --> 00:38:33,244 OK. 780 00:38:33,244 --> 00:38:40,609 그들은 자기들 퀴즈 중 하나에 없었다 어떻게하면 바로 printf의 이야기 781 00:38:40,609 --> 00:38:42,899 뭔가 다음 하나를 일시 중지했다 두 번째, 그리고 당신은 그것을 루프 열이 782 00:38:42,899 --> 00:38:46,530 시간, 그것은 10 초를 기다린 것이다 다음 모든 것을 함께 printf를? 783 00:38:46,530 --> 00:38:47,460 >> 케빈 슈 미드 : OK, 오. 784 00:38:47,460 --> 00:38:49,170 >> 청중 : 동일한을하고있다 일 다음이 경우? 785 00:38:49,170 --> 00:38:52,630 >> 케빈 슈 미드 : 그래서 질문은 기본적으로 이전의 퀴즈 중 하나 786 00:38:52,630 --> 00:38:57,200 또는 뭔가 문제가 있다는 것을 기본적으로 인쇄 F (10)에게 말한다면 787 00:38:57,200 --> 00:39:01,490 다음 번에 ​​물건과에서 같이 잤다 이들를 출력하는 과정, 788 00:39:01,490 --> 00:39:04,850 어떤 이유로 끝에, 그것은 것 단지 화면의 모든 밖으로 사람들을 덤프. 789 00:39:04,850 --> 00:39:06,740 따라서 서로 다른 두 가지의 종류가있다 여기 개념. 790 00:39:06,740 --> 00:39:10,400 >> 그래서 한 가지가 해당이있는 것 같다 경우, 우리는 서로 다른 두 가지를 다루고 791 00:39:10,400 --> 00:39:13,510 종류의 사람들이 서버에 요청 동시에 것들에 대한. 792 00:39:13,510 --> 00:39:17,455 그리고 printf의 종류의 이유 그렇게 대기하고 모두 밖으로 덤프 793 00:39:17,455 --> 00:39:21,760 한 번에 더 많은 관련이 얼마나 printf의 종류 - 794 00:39:21,760 --> 00:39:25,100 그래서 방식의 printf는 실제로 구현은 기본적으로 제공합니다 795 00:39:25,100 --> 00:39:28,850 쓸 운영체제 이야기 콘솔에 그 물건. 796 00:39:28,850 --> 00:39:33,460 그래서 모든 걸하고 싶지 않습니다 당신이 printf의 말을 물건을 즉시 797 00:39:33,460 --> 00:39:36,260 일부 문자열 그 수 있기 때문에 그것은에있는 경우 비싸 798 00:39:36,260 --> 00:39:37,340 때마다 그렇게. 799 00:39:37,340 --> 00:39:41,530 >> 당신이 있다면, 헤이 프로그램을 printf를 실제로 인쇄 할 수 있습니다 800 00:39:41,530 --> 00:39:43,040 바로 콘솔. 801 00:39:43,040 --> 00:39:46,080 그것은 확인을, 내가 쓴 말을 수 있습니다. 802 00:39:46,080 --> 00:39:49,570 당신이 제공하는 다음 종류의 대기 그것은 실제로 전에 좀 더 803 00:39:49,570 --> 00:39:51,380 콘솔에 쓰는. 804 00:39:51,380 --> 00:39:54,040 >> 그래서 그런 경우가 된 이유 - 805 00:39:54,040 --> 00:39:56,450 그것은 종류의 무관의 잠 - 806 00:39:56,450 --> 00:40:00,060 수면 종류의 단지라고합니다 설명하기가 주입 807 00:40:00,060 --> 00:40:02,480 이 기록하지 않는 사실 그것은 기적. 808 00:40:02,480 --> 00:40:06,210 그러나 그 이유는 저스트 성능에 당신이 할 수 있도록 809 00:40:06,210 --> 00:40:08,920 많은 접점을 만들지 운영 체제. 810 00:40:08,920 --> 00:40:12,300 >> 그러나 여기에서, 우리는 무엇을 정말하고 노력하고 이 수면 것으로 그냥 쇼입니다 811 00:40:12,300 --> 00:40:17,730 우리는 방문 두 사람이있을 때 이 웹 사이트는 넣어 않을거야 812 00:40:17,730 --> 00:40:22,310 그 해 말 것 라인 내가있을 때 당신을 돕고,해야 813 00:40:22,310 --> 00:40:25,350 완전히이 후에 당신을 돕는 완료 5 초 후, 나는에 갈거야 814 00:40:25,350 --> 00:40:26,750 다음 사람에 이동합니다. 815 00:40:26,750 --> 00:40:29,515 그래서 첫 번째 사람의 요청은하지 않습니다 해당 이벤트 루프를 묶어 816 00:40:29,515 --> 00:40:31,610 그 의미가합니다. 817 00:40:31,610 --> 00:40:34,980 >> 그러나 여기 실제로 예입니다 넥타이 무언가의 818 00:40:34,980 --> 00:40:36,090 이벤트 루프입니다. 819 00:40:36,090 --> 00:40:39,130 그래서 여기에 무서운 함수입니다 n 번째 피보나치을 계산한다. 820 00:40:39,130 --> 00:40:43,510 그것은 말 그대로 당신이 할 수있는 최악의 방법 n 번째 피보나치 수를 계산합니다. 821 00:40:43,510 --> 00:40:48,480 그리고 이것은 단지 인정하는 사​​실입니다 이것은 어디에서 왔고, 822 00:40:48,480 --> 00:40:49,330 실제로 있습니다 - 823 00:40:49,330 --> 00:40:53,230 내 말은, 당신은 그것을 찾아 갈 것을 시도 할 수있다 - 그러나 매우 긴 블로그있다 824 00:40:53,230 --> 00:40:54,130 누군가가 쓴 게시합니다. 825 00:40:54,130 --> 00:40:55,660 그것은 그 레딧 중 하나 같아요. 826 00:40:55,660 --> 00:40:59,650 그러나 누군가는 Node.js를 비판하고, 이들은 예를 들어 이것을 사용했다. 827 00:40:59,650 --> 00:41:03,700 그래서 나는 종류의 당신에게 두 가지를 보여주고 싶었 다른 관점 그냥 얻을 수 828 00:41:03,700 --> 00:41:07,320 개념의 일반적인 이해 이 두 가지의 뒤에. 829 00:41:07,320 --> 00:41:13,050 >> 그러나 이것은 단지 끔찍한로 선택 끔찍하게 비효율적 인 계산 830 00:41:13,050 --> 00:41:15,940 계산하기위한 집중적 인 방법 n 번째 피보나치 수. 831 00:41:15,940 --> 00:41:21,180 그러니 그냥 보조 노트로, 왜 그것은 끔찍한 하나의 방법처럼? 832 00:41:21,180 --> 00:41:23,210 네? 833 00:41:23,210 --> 00:41:25,130 >> 청중 : 시작 말 1000과 중. 834 00:41:25,130 --> 00:41:27,050 999 및 998에 1,000 분할. 835 00:41:27,050 --> 00:41:28,970 이 각각은 두 가지로 나눕니다. 836 00:41:28,970 --> 00:41:30,890 이 각각은 두 가지로 나눕니다. 837 00:41:30,890 --> 00:41:31,355 >> 케빈 슈 미드 : 오른쪽. 838 00:41:31,355 --> 00:41:32,400 >> 대상 : 모든 방법을 아래로. 839 00:41:32,400 --> 00:41:32,840 >> 케빈 슈 미드 : 그렇지. 840 00:41:32,840 --> 00:41:37,330 경우에 따라서 그냥 카메라에 반복 I 1,000 무엇인가에 거짓말을 했어 전화 841 00:41:37,330 --> 00:41:41,810 그런 식으로, 그것은 분명 미만 아니다 또는 동등의는 그래서 난에 갈거야 842 00:41:41,810 --> 00:41:46,040 이 다른 케이스로 이동 한 다음 나는거야 999 거짓말을 했어 플러스 998 거짓말을 했어 호출합니다. 843 00:41:46,040 --> 00:41:50,290 그리고 거의 모든 것을의 999가하는 거짓말을 했어 작품입니다 844 00:41:50,290 --> 00:41:52,950 종류의이 수준. 845 00:41:52,950 --> 00:41:55,620 당신이 아래로 이동하면 더 많은 중복의 보다, 그러나 만약 당신이 단지 846 00:41:55,620 --> 00:42:01,390 컴퓨팅 FIB 998 얻을 생각 우리는 아주 가까이 999 거짓말을 했어합니다. 847 00:42:01,390 --> 00:42:05,860 그래서 우리는 정말 좀 더해야 우리는 종류의 재사용 방법에 대한 영리한 848 00:42:05,860 --> 00:42:07,580 이 있지만, 우리는 다시하지 않을 모두에서 이러한 일들. 849 00:42:07,580 --> 00:42:11,860 그래서 당신은이 거대한 상상할 수 비극의 거대한 나무. 850 00:42:11,860 --> 00:42:12,940 >> 어쨌든, OK. 851 00:42:12,940 --> 00:42:14,040 그래서 악의없는 거짓말이었다. 852 00:42:14,040 --> 00:42:15,530 그냥 실행하는 데 시간이 걸립니다. 853 00:42:15,530 --> 00:42:16,510 네? 854 00:42:16,510 --> 00:42:17,760 >> 청중 : [청취]. 855 00:42:17,760 --> 00:42:20,430 856 00:42:20,430 --> 00:42:22,481 >> 케빈 슈 미드 : 오, 당신이 할 수 질문을 반복? 857 00:42:22,481 --> 00:42:23,731 >> 청중 : [청취]. 858 00:42:23,731 --> 00:42:30,840 859 00:42:30,840 --> 00:42:33,990 >> 케빈 슈 미드 : 아 그래서 이것은 단지 코드 그 종류의에있을거야 860 00:42:33,990 --> 00:42:34,850 서버 측. 861 00:42:34,850 --> 00:42:38,100 그래서이 발견하지 않을 브라우저 또는 아무것도에. 862 00:42:38,100 --> 00:42:42,160 그것은 우리가이 것은 기본적으로인지 할 때 여기에 사용자가 꽤 많이 만든다 863 00:42:42,160 --> 00:42:45,300 다시 자신의 요청을 할 때 우리는 종류의 요청을, 우리는 전화를 겁니다 864 00:42:45,300 --> 00:42:47,040 서버 측에서이 기능을 사용하지 않음. 865 00:42:47,040 --> 00:42:50,480 그리고 우리는 그 결과를 다시 얻을 것이다 이 함수를 호출. 866 00:42:50,480 --> 00:42:52,460 그리고 우리는 단지 인쇄 해드립니다 사용자에게. 867 00:42:52,460 --> 00:42:54,580 따라서 사용자는 실제로 거래를하지 않습니다 너무 많은이 함수. 868 00:42:54,580 --> 00:42:57,270 >> 질문이 있었습니까? 869 00:42:57,270 --> 00:42:58,470 그 의미가 있습니까? 870 00:42:58,470 --> 00:42:58,810 OK. 871 00:42:58,810 --> 00:43:00,930 쿨. 872 00:43:00,930 --> 00:43:04,240 >> 그래서 다시, 우리는이 모든 res.writeHead을 우리는 인쇄 일 873 00:43:04,240 --> 00:43:05,150 헤더. 874 00:43:05,150 --> 00:43:09,730 그리고 제가 수행하여 반응을 종료 매직 넘버는 FIB 45입니다. 875 00:43:09,730 --> 00:43:12,100 그래서 그냥이 서버를 실행하자. 876 00:43:12,100 --> 00:43:15,190 그래서 노드 fib.js.을 할거야 877 00:43:15,190 --> 00:43:17,340 그래서 지금 내 악의없는 거짓말 서버가 실행 중입니다. 878 00:43:17,340 --> 00:43:21,790 >> 그리고 여기, 내가 갈거야 다음 중 하나를 수행합니다. 879 00:43:21,790 --> 00:43:22,200 OK? 880 00:43:22,200 --> 00:43:24,960 그래서 난 그냥, 컬을 말하는거야. 881 00:43:24,960 --> 00:43:32,226 그래서 시간이 좀 걸릴 것 만있어 희망이 곧 마무리 할 것이다 882 00:43:32,226 --> 00:43:35,660 그것은 그 45를 인쇄한다 수를 피보나치. 883 00:43:35,660 --> 00:43:36,910 >> 청중 : [청취]. 884 00:43:36,910 --> 00:43:40,720 885 00:43:40,720 --> 00:43:42,050 >> 케빈 슈미트 : 그것은해야 곧 끝낼. 886 00:43:42,050 --> 00:43:43,780 그래서 5~6초를 취해야한다. 887 00:43:43,780 --> 00:43:48,570 그 단지 V8되는 슈퍼 알고하지 않습니다 빠르고, 그러나 어떤 경우에, 이것은이다 888 00:43:48,570 --> 00:43:52,700 의도적으로 매우 짧은 예와 비 사소한의 우아 889 00:43:52,700 --> 00:43:54,200 계산. 890 00:43:54,200 --> 00:43:56,700 그래서 잠시 후,이를 얻을 않습니다. 891 00:43:56,700 --> 00:44:02,130 >> 하지만 지금은, 내가 무엇을 할 경우 같은 종류의 내가 할 곳을 이전과 실험 892 00:44:02,130 --> 00:44:04,010 동시에,이 요청? 893 00:44:04,010 --> 00:44:06,990 그래서 나는 여기에 컬에 갈거야 그 주소, 나는거야 894 00:44:06,990 --> 00:44:08,260 다른 컬을 할 수 있습니다. 895 00:44:08,260 --> 00:44:12,070 그리고 우리는이 작업을했을 때, 기억 우리는 기본적으로이있을 때, 서버를 잠 896 00:44:12,070 --> 00:44:15,320 오초 후, 그들은 꽤 많은 양이 바로 돌아왔다 897 00:44:15,320 --> 00:44:16,380 같은시​​기. 898 00:44:16,380 --> 00:44:18,650 그래서 특히 묶여되지 않았습니다. 899 00:44:18,650 --> 00:44:20,290 >> 하지만 그건 지금 그것을 시도 할 수 있습니다. 900 00:44:20,290 --> 00:44:22,370 OK, 그래서 우리는 우리의 두 가지 프로세스를 얻었다. 901 00:44:22,370 --> 00:44:24,210 사람들은 프로세스 ID입니다 기억하십시오. 902 00:44:24,210 --> 00:44:25,900 이 좀 될 것입니다 우리가 실속 동안 어색. 903 00:44:25,900 --> 00:44:31,340 904 00:44:31,340 --> 00:44:35,360 그래서 그냥 여기에 머물 수 있도록 기다립니다. 905 00:44:35,360 --> 00:44:37,090 >> 그래서 그들 중 하나가 와야한다 다시 같은 후 - 906 00:44:37,090 --> 00:44:39,190 좋아, 그럼 하나는 돌아왔다. 907 00:44:39,190 --> 00:44:43,570 그런데 왜 두 번째는하지 않았다 하나는 아직 돌아 오지? 908 00:44:43,570 --> 00:44:44,389 네? 909 00:44:44,389 --> 00:44:49,280 >> 대상 : 서버가 아무것도 할 수 없습니다 그것은 그 큰 수를 계산하는 동안에. 910 00:44:49,280 --> 00:44:51,620 >> 케빈 슈 미드 : 오른쪽. 911 00:44:51,620 --> 00:44:55,395 그래서 응답했다 그냥 서버 정말 아무것도 할 수 없습니다 동안 912 00:44:55,395 --> 00:44:57,460 그것은 그 피보나치 수를 계산하는 것. 913 00:44:57,460 --> 00:44:59,360 그래서 지금은 그냥 내 두 가지를 얻었다. 914 00:44:59,360 --> 00:45:03,210 하지만 난 그냥 코드에 대해 생각하는 것 같아요 좀 더, 어떻게 작동하고 915 00:45:03,210 --> 00:45:05,030 모든 것을. 916 00:45:05,030 --> 00:45:11,750 >> 그래서 여기에이 함수는 부호로서 나는 때 실행이 서버를 말 했어요 917 00:45:11,750 --> 00:45:14,100 새 들어오는 요청을받습니다. 918 00:45:14,100 --> 00:45:17,940 그래서 그냥이를 통해 실행할 것 전체 코드, 후 갈 것 919 00:45:17,940 --> 00:45:21,120 이벤트 루프에 백업 한 다음 계속 새로운 이벤트를 검사합니다. 920 00:45:21,120 --> 00:45:23,670 그러니까 기본적으로 우리가 일어나는 것을 서버입니다 921 00:45:23,670 --> 00:45:25,080 새로운 정보를 듣고. 922 00:45:25,080 --> 00:45:28,070 첫 번째 사람은 45이 무엇인지를 요청합니다. 923 00:45:28,070 --> 00:45:30,490 우리는 그것을 계산하기 위해이 코드를 실행합니다. 924 00:45:30,490 --> 00:45:33,420 이 코드는 소요 대략 다섯 실행 여섯 초. 925 00:45:33,420 --> 00:45:36,990 그 다음 우리는 이벤트 루프로 돌아갑니다 새로운 요청을 확인합니다. 926 00:45:36,990 --> 00:45:42,700 >> 그래서이는 경우, 방법의 예입니다 소위 계산 것들을 가지고 927 00:45:42,700 --> 00:45:48,140 결합, 또는 계산을 많이 사용, 하지 파워,하지만 같은은 928 00:45:48,140 --> 00:45:50,260 연산 집약적 - 929 00:45:50,260 --> 00:45:54,080 나는 이것에 대해 말을 한 가지 추측 이 기능을 완전히하고 있다고 930 00:45:54,080 --> 00:45:56,310 대부분의 경우, 꽤 유용한 작업 오른쪽. 931 00:45:56,310 --> 00:45:59,970 전체 시간이 그 콜백 기능이 실행, 그것은 꽤 있었다 932 00:45:59,970 --> 00:46:03,670 많은 대부분의 시간을 보내고 단지 컴퓨팅 n 번째 피보나치 수. 933 00:46:03,670 --> 00:46:05,930 >> 그러나 우리는 하나의 스레드를했다 처리한다. 934 00:46:05,930 --> 00:46:10,270 아파치 모델에서 때 이명 , 45 거짓말을 했어 얻을 수있는 요청을 만든 우리 935 00:46:10,270 --> 00:46:11,610 두 개의 서로 다른 스레드를했을 것이다. 936 00:46:11,610 --> 00:46:15,060 그리고 운영체제의 작업 사용자 레벨이되어, 또는했을 937 00:46:15,060 --> 00:46:18,660 스레드를 관리하는 코드는했습니다 것 에 그를 슬라이스하고 938 00:46:18,660 --> 00:46:23,060 CPU, 또는 여러 개의 CPU를했다하더라도, CPU에 걸쳐 균등하게 분배 939 00:46:23,060 --> 00:46:26,130 그들은 모두 마무리했다 있도록 대략 동시에. 940 00:46:26,130 --> 00:46:31,120 >> 그래서 우리가 정렬 할 수있는 방법을 보여 - 이것은 총 완벽하지 않습니다 941 00:46:31,120 --> 00:46:34,280 솔루션,하지만 종류의 방법을 우리가 할 수있는 하게 다시 여기 와서 할 942 00:46:34,280 --> 00:46:35,880 조금 더. 943 00:46:35,880 --> 00:46:41,540 그래서 내가 여기있는 것은이라고하는 프로그램입니다 FIB C. 그리고 이것은 기본적으로 사용 944 00:46:41,540 --> 00:46:45,690 호출 노드의 모듈의 또 다른 하나의 자식 프로세스 모듈. 945 00:46:45,690 --> 00:46:49,210 그래서 포함 시켰 그 위에 종류의 포함 나는 파운드를 할 것의 같은 946 00:46:49,210 --> 00:46:51,230 아이 process.h 또는 뭔가. 947 00:46:51,230 --> 00:46:56,210 지금은이 CP 변수에 액세스 할 수 하는 내 모든 기능이 있습니다. 948 00:46:56,210 --> 00:47:01,810 >> 그래서 지금은이 응답에 뭘하는지 핸들러는 내가이 프로그램을 실행 해요입니다 949 00:47:01,810 --> 00:47:04,100 점은 FIB (45)를 슬래시. 950 00:47:04,100 --> 00:47:06,820 그래서 내가 무슨 짓을 한 - 난 그냥 갈거야 이 프로그램 중 단계 951 00:47:06,820 --> 00:47:07,620 조금 - 952 00:47:07,620 --> 00:47:11,060 나는 C 프로그램을 작성했습니다된다 기본적으로 계산 953 00:47:11,060 --> 00:47:12,630 n 번째 피보나치 수. 954 00:47:12,630 --> 00:47:15,960 그래서 여기에 내가 쓴 단지 프로그램의 C에 해당이를 계산합니다. 955 00:47:15,960 --> 00:47:19,040 나는 그것을 컴파일 할 수있다, 나는 실행할 수 있습니다 그것은 명령 줄에서. 956 00:47:19,040 --> 00:47:22,150 그리고 계산하는거야 45 번째 피보나치 수. 957 00:47:22,150 --> 00:47:24,510 >> 그래서 그냥 소요 통지 만큼 꽤 많이. 958 00:47:24,510 --> 00:47:28,240 아마 대시 03을 사용할 수도 그것은 나처럼 뭔가를 최적화 959 00:47:28,240 --> 00:47:31,050 하지만 난 그냥 평범한 좋아했다 컴파일러 설정. 960 00:47:31,050 --> 00:47:33,260 그리고 그것을 출력합니다. 961 00:47:33,260 --> 00:47:36,830 >> 그러나 지금, 나는 종류의 무엇을하는거야? 962 00:47:36,830 --> 00:47:39,800 죄송합니다 아, 잘못된 파일. 963 00:47:39,800 --> 00:47:42,800 그래서와 같은 물건을 이전 헤더. 964 00:47:42,800 --> 00:47:45,780 그럼이 cp.exec을한다. 965 00:47:45,780 --> 00:47:49,460 그래서이 할 것입니다 것은 그것이 전부이다 이 프로그램을 실행하는 것. 966 00:47:49,460 --> 00:47:51,960 하지만이 작동하는 방법입니다 그것은 기다릴 않을거야 967 00:47:51,960 --> 00:47:53,400 완료하는 프로그램입니다. 968 00:47:53,400 --> 00:47:56,000 그냥 기본적으로 말한다 이 프로그램을 실행합니다. 969 00:47:56,000 --> 00:47:58,700 그래서 기본적으로이 입력 신속한 종류를 명령. 970 00:47:58,700 --> 00:48:02,350 >> 그리고, 당신은이 끝나면 그것은,이 기능을 실행합니다. 971 00:48:02,350 --> 00:48:04,800 그래서 지금 우리는 종류의이 얻을 의 전체 복원 일 972 00:48:04,800 --> 00:48:06,750 처럼 우리는 기다리고 아닙니다. 973 00:48:06,750 --> 00:48:08,530 그런 종류의 이해가됩니까? 974 00:48:08,530 --> 00:48:08,990 네? 975 00:48:08,990 --> 00:48:11,060 >> 청중 : [들리지? 976 00:48:11,060 --> 00:48:13,610 >> 케빈 슈 미드 : 그래서이 것 실제로 그것을 할 수있는 새로운 프로세스를 엽니 다. 977 00:48:13,610 --> 00:48:19,310 그래서 이것은 몇 가지 방법으로, 실제로, 악 슈퍼 악하지 만입니다 978 00:48:19,310 --> 00:48:22,990 중요한이 종류의 것을 대답 한편, 뒤로가는, 아파치 979 00:48:22,990 --> 00:48:26,450 우리는 스레드와 프로세스를 수행 모델 각 요청 또는 용 980 00:48:26,450 --> 00:48:29,280 각 요청에 대한 처리합니다. 981 00:48:29,280 --> 00:48:32,090 그래서이 유사한 종류입니다 아파치가 수행한다. 982 00:48:32,090 --> 00:48:35,110 어떤 경우에, 단지 새로운 사용 좀 더 가볍고 실, 983 00:48:35,110 --> 00:48:39,040 과정보다 무게하지만 아파치는 할 수 새 프로세스를 포크 (fork) 끝 984 00:48:39,040 --> 00:48:43,370 우리는 여기에서 어떤 종류의 인 암시 적으로 점 슬래시 FIB (45)을 수행하여. 985 00:48:43,370 --> 00:48:48,690 >> 그리고이 경우에, 우리는 종류의 발생 프로세스의 동일한 비용. 986 00:48:48,690 --> 00:48:50,710 그래서 이것은 당신이 할 수있는 한 것입니다. 987 00:48:50,710 --> 00:48:52,600 그러나 다만 실행 이런 종류의를 표시합니다. 988 00:48:52,600 --> 00:48:57,120 그리고이 이야기는 정말 목표로 같은 프로그램의 이러한 종류의 제시 989 00:48:57,120 --> 00:49:00,710 다른 관점에 표시하는 방법 어떻게 그런 서버를 설계하는 방법. 990 00:49:00,710 --> 00:49:08,300 내가한다면이 이제 다음 실행하고, 이것은 다시, 나는 두 개의 프로세스 ID를 얻었다. 991 00:49:08,300 --> 00:49:10,320 >> 그냥에 대해 얘기하자 가지 지적합니다. 992 00:49:10,320 --> 00:49:11,980 그래서 그들은 점진적으로 걸 알 수 있습니다. 993 00:49:11,980 --> 00:49:12,700 멋있다. 994 00:49:12,700 --> 00:49:15,140 그것은 전에 27,122 이었기 때문에. 995 00:49:15,140 --> 00:49:18,580 그러나주의 사항 지금, 그들이 돌아왔다 대략 동시에. 996 00:49:18,580 --> 00:49:23,960 >> 그리고 지금, 좋은 질문에 대해 문의합니다 왜 케이스는, 그의 일이라고했다 997 00:49:23,960 --> 00:49:27,590 그것은 종류의 이러한 일들을 지금했다 종류의 각각 페어 플레이 998 00:49:27,590 --> 00:49:31,350 다른 두 인스턴스 내가 달릴 점 슬래시 FIB 45 999 00:49:31,350 --> 00:49:32,880 또는 그 노드 실행 된? 1000 00:49:32,880 --> 00:49:36,940 종류의 공평 것을 만드는 사람 둘 종류의 실행 시간을 균형 얻을? 1001 00:49:36,940 --> 00:49:42,900 1002 00:49:42,900 --> 00:49:44,220 >> 청중 : [청취]. 1003 00:49:44,220 --> 00:49:44,620 >> 케빈 슈 미드 : 그래. 1004 00:49:44,620 --> 00:49:49,740 그러니까 기본적으로, 나는 점 슬래시 사소한 거짓말을 할 때 45 또는 그런 식으로 뭔가, 지금은의 1005 00:49:49,740 --> 00:49:53,750 가지 운영 체제 최대 해당 프로그램의 실행을 처리 할 수​​ 있습니다. 1006 00:49:53,750 --> 00:49:56,920 그리고 지금은 그들을 예약 할 수 있습니다 다른 CPU 나에 1007 00:49:56,920 --> 00:49:58,330 을 예약 할 수 있습니다. 1008 00:49:58,330 --> 00:50:01,870 그것은 하나에게 시간을 슬라이스 할 수 CPU는 그들이 얻을를 가져 오거나 1009 00:50:01,870 --> 00:50:03,330 하나의 CPU에서 실행합니다. 1010 00:50:03,330 --> 00:50:05,620 그래서 그 뒤에 생각이다. 1011 00:50:05,620 --> 00:50:07,220 그 모두에게 의미가 있습니까? 1012 00:50:07,220 --> 00:50:10,950 이제 노드 정말 재생되지 않는다 이러한 작업을 분할에 참여. 1013 00:50:10,950 --> 00:50:12,200 OK. 1014 00:50:12,200 --> 00:50:14,050 1015 00:50:14,050 --> 00:50:17,840 >> 그래서 거의 예제입니다. 1016 00:50:17,840 --> 00:50:23,370 나는 단지 한 가지 더 보여주고 싶었다 이 많이 원경되었으므로 1017 00:50:23,370 --> 00:50:27,350 완전히 최고 실제하지 일부 경우. 1018 00:50:27,350 --> 00:50:30,970 나는이 후 집 앞으로 상상할 수있는 이야기하고 뭔가 같은 말, 1019 00:50:30,970 --> 00:50:35,710 잘 나는 종류의 이야기에서 나왔다 그 나는에 대한 피보나치 서버를 만들 수 있습니다 1020 00:50:35,710 --> 00:50:37,360 내 마지막 프로젝트. 1021 00:50:37,360 --> 00:50:40,770 그래서 여기에 단지 종류의 또 하나의 예입니다 그 희망이 될 것입니다 - 1022 00:50:40,770 --> 00:50:44,620 아마,하지만 어쩌면 - 좀 더 종류의 최종 프로젝트에 적합하고 1023 00:50:44,620 --> 00:50:46,440 그런 것들에 대해 미리 생각. 1024 00:50:46,440 --> 00:50:48,870 >> 그래서이 chat.js.입니다 1025 00:50:48,870 --> 00:50:52,290 그래서이 종류의 몇 가지 샘플을 좋아한다 당신이 사용할 수있는 서버 측 코드 1026 00:50:52,290 --> 00:50:55,700 작은 채팅 서버 등을 설정 당신은 볼 수도 1027 00:50:55,700 --> 00:50:56,630 페이스 북은 채팅 또는 무엇이든. 1028 00:50:56,630 --> 00:50:59,990 그래서 나는이 페이스 북처럼 말하는 게 아니에요 채팅, 그러나 이것은 종류입니다 1029 00:50:59,990 --> 00:51:06,230 어쩌면 어쩌면 좋지 않다,하지만 - 좋은처럼 좋은 - 채팅의 출발점 1030 00:51:06,230 --> 00:51:08,560 당신의 웹 사이트를위한 서버 최종 프로젝트. 1031 00:51:08,560 --> 00:51:11,040 그럼 무엇을하는지 살펴 보자. 1032 00:51:11,040 --> 00:51:15,500 >> 그래서 우리는이 특별한 일이 있어요 상단에,이 SIO를 var에 1033 00:51:15,500 --> 00:51:17,050 Socket.IO를 필요로 같습니다. 1034 00:51:17,050 --> 00:51:20,280 그래서이 그렇지 않은 다른 것입니다 실제로와 함께 번들로 제공 1035 00:51:20,280 --> 00:51:22,300 노드하지만 당신은 그것을 설치할 수 있습니다. 1036 00:51:22,300 --> 00:51:23,480 이는 기지국 모듈. 1037 00:51:23,480 --> 00:51:25,670 그래서 그냥처럼 노드로 확장. 1038 00:51:25,670 --> 00:51:29,220 >> SocketIO 정말 실제로 차가운 종류. 1039 00:51:29,220 --> 00:51:32,550 그것은 기본적으로 어떤 추상화의 그것은 할 때, 당신을 허용합니다 않습니다 1040 00:51:32,550 --> 00:51:35,770 통신이 스트림이 웹 사이 1041 00:51:35,770 --> 00:51:39,430 브라우저와 웹 서버. 1042 00:51:39,430 --> 00:51:45,250 그래서 지금까지 대부분의 경우, 우리는 했어 이러한 매우 빠른 일초 또는 두 개의 1043 00:51:45,250 --> 00:51:48,790 웹 사이의 제 2 통신 브라우저와 웹 서버. 1044 00:51:48,790 --> 00:51:53,310 그래서 기본적으로 google.com, GET으로 이동 것 물건, 다음을 다시 보내 1045 00:51:53,310 --> 00:51:53,770 우리는 끝났어. 1046 00:51:53,770 --> 00:51:56,560 우리는 때까지 다시 이야기되는 일은 없습니다 사용자 유형 다른 뭔가. 1047 00:51:56,560 --> 00:52:01,090 >> 그러나 Socket.IO와 유사한 종류의 일 -와 SocketIO 실제로는 하나입니다 1048 00:52:01,090 --> 00:52:03,940 로 내장되어있는 것들 중 웹 소켓 어떤 종류의 수 있습니다 1049 00:52:03,940 --> 00:52:06,440 HTML5의 일부 - 1050 00:52:06,440 --> 00:52:09,620 그것은 당신이해야 할 수 있습니다 계속 대화. 1051 00:52:09,620 --> 00:52:13,990 그리고이 채팅 서버에 매우 유용합니다 일 종류가 있기 때문에 1052 00:52:13,990 --> 00:52:17,390 종류에 지속적인 대화와 같은 어떤면 때문에 당신이 채팅을하는 경우 1053 00:52:17,390 --> 00:52:21,540 누군가와 함께, 당신은 지금 그냥 보낼 수 있습니다 다음 파이프 다운 메시지 및 1054 00:52:21,540 --> 00:52:23,940 서버는 아래로 메시지를 보낼 수있다 당신이있어 다른 사람에게 관 1055 00:52:23,940 --> 00:52:24,520 와 채팅. 1056 00:52:24,520 --> 00:52:26,903 그리고 당신이있을 수 있습니다 그런 교환. 1057 00:52:26,903 --> 00:52:30,590 1058 00:52:30,590 --> 00:52:32,850 >> 그래서 어떤 종류의 SocketIO이 좋다. 1059 00:52:32,850 --> 00:52:38,400 SocketIO가 WebSocket을를 사용하는 이유 한 가지가 같이한다는 점에서 1060 00:52:38,400 --> 00:52:43,980 그냥 평범한 오래된 WebSocket을뿐만 아니라, 또한 기본적으로 몇 가지 트릭을 수행 1061 00:52:43,980 --> 00:52:45,610 그것은 브라우저 호환합니다. 1062 00:52:45,610 --> 00:52:50,040 인터넷 익스플로러 같은 브라우저 불행하게도 WebSocket을 지원하지 않습니다 1063 00:52:50,040 --> 00:52:50,810 오른쪽 밖으로 상자의. 1064 00:52:50,810 --> 00:52:55,290 그래서 멋진 스트레이트의 다른 종류를 사용 수 있도록 어도비 플래시와 일 1065 00:52:55,290 --> 00:52:57,170 당신은 크로스 브라우저 지원을해야합니다. 1066 00:52:57,170 --> 00:52:58,800 그래서 정말 유용합니다. 1067 00:52:58,800 --> 00:53:02,440 >> 그리고 실제로, 나는 종류의 거 알 여기에 시간에 실행하지만, CS50 1068 00:53:02,440 --> 00:53:08,490 토론, 당신은 뭔가를 보았다 처럼, 나도 몰라, 공백 운운입니다 1069 00:53:08,490 --> 00:53:11,030 이 게시물 또는 무언가에 회신 그런 그 기능? 1070 00:53:11,030 --> 00:53:12,250 즉 SocketIO입니다. 1071 00:53:12,250 --> 00:53:15,580 그래서 누군가에 입력을 시작할 때 응답 또는 확인 상자를 논의 1072 00:53:15,580 --> 00:53:20,040 어떤 브라​​우저가 무엇 않습니다 SocketIO 불리는 일종의을 방출 1073 00:53:20,040 --> 00:53:22,660 누군가의 말했습니다 이벤트 이 게시물에 회신. 1074 00:53:22,660 --> 00:53:26,110 >> 그런 다음 서버는 OK, 말한다 무엇을해야합니까? 1075 00:53:26,110 --> 00:53:29,270 물론 지금은 그 다른 사람에게 얘기를 해 사람 CS50 있습니다 찾고 토론 1076 00:53:29,270 --> 00:53:31,170 이 게시물에 누군가가 회신 있다고. 1077 00:53:31,170 --> 00:53:34,190 그래서 SocketIO가 무엇 종류의 이 계속 종류의, 좋은 1078 00:53:34,190 --> 00:53:35,930 대화의 흐름. 1079 00:53:35,930 --> 00:53:37,250 OK. 1080 00:53:37,250 --> 00:53:40,060 >> 그래서 여기에 무엇을 - 그리고 우리는 그저 연결 배열을 무시하는 것 1081 00:53:40,060 --> 00:53:41,390 조금을위한 - 1082 00:53:41,390 --> 00:53:43,080 내가가는 또 다른 경청하고있다. 1083 00:53:43,080 --> 00:53:46,880 그래서 그냥 Socket.IO의 방법입니다의 의이 포트에서 수신 할 말. 1084 00:53:46,880 --> 00:53:50,060 그리고 제가 연결에 대해이 작업을 수행합니다. 1085 00:53:50,060 --> 00:53:53,360 그래서 그냥 기본적으로 소켓 IO의의 우리가받을 때, 말하는 방법 1086 00:53:53,360 --> 00:53:55,840 연결, 나는 당신에게 원하는 이 코드를 실행합니다. 1087 00:53:55,840 --> 00:53:59,870 >> 대신 촬영을 갖는 것을 알 수 거기에 전달 입술 나는 소켓이 있습니다. 1088 00:53:59,870 --> 00:54:03,260 이 소켓의 생각은 기본적입니다 당신이 쓰고 읽을 수있는 것은 1089 00:54:03,260 --> 00:54:05,750 그 중에서 사용자가 아마도 메시지. 1090 00:54:05,750 --> 00:54:10,700 그리고 당신이 보낼 것 메시지 그 소켓을 통해 갈 수 있습니다. 1091 00:54:10,700 --> 00:54:12,140 그 의미가 있습니까? 1092 00:54:12,140 --> 00:54:14,490 그래서이 계속 일입니다. 1093 00:54:14,490 --> 00:54:17,820 >> 그래서 내가가는 Socket.emit를 ​​호출합니다. 1094 00:54:17,820 --> 00:54:20,330 그리고 발광 꽤 걸립니다 많은 두 개의 인수. 1095 00:54:20,330 --> 00:54:24,100 첫 번째 인수는 문자열 단지 분류를 나타내는 1096 00:54:24,100 --> 00:54:25,270 당신이 발광하는 것. 1097 00:54:25,270 --> 00:54:28,120 따라서이 경우에, 사용을했습니다 이 문자열 새 메시지. 1098 00:54:28,120 --> 00:54:32,670 그리고 그것은 단지 기본적으로 말하는 것 그 제가 어떻게이 일의 종류, 1099 00:54:32,670 --> 00:54:34,750 보내는 새로운 메시지입니다. 1100 00:54:34,750 --> 00:54:38,460 그래서 당신은 특정 유형의 수신 할 수 있습니다 새 메시지 또는 무엇이든 같이 1101 00:54:38,460 --> 00:54:39,960 점에서보실 수 있습니다. 1102 00:54:39,960 --> 00:54:44,570 >> 그래서 연결 및 사용자는, 거기 전송 당신은, 우리가 점에 전화를 어디를 봐야 1103 00:54:44,570 --> 00:54:48,150 그 대표 다른 문자열입니다 사용자 메시지의 유형. 1104 00:54:48,150 --> 00:54:52,060 그래서이 발광을 할 수 있습니다 기본적으로의 이러한 메시지 타입들 중 하나, 그리고 1105 00:54:52,060 --> 00:54:55,520 다음에 대한 응답으로 작업을 수행 이러한 메시지 타입 중 하나 1106 00:54:55,520 --> 00:54:57,640 >> 그래서 나는이 새로운 메시지를 방출하고 있습니다. 1107 00:54:57,640 --> 00:55:00,540 우리는 connections.push을 무시하는거야 초. 1108 00:55:00,540 --> 00:55:03,360 하지만 그때 Socket.on 사용자가 보낸 말한다. 1109 00:55:03,360 --> 00:55:07,540 그래서 지금은 좀 좋아하는 것 때 사용자가 나에게 메시지를 전송, 내가 원하는 1110 00:55:07,540 --> 00:55:09,240 이 코드를 실행합니다. 1111 00:55:09,240 --> 00:55:12,080 그리고 알이 익명 함수 이 변수에 복용 1112 00:55:12,080 --> 00:55:16,300 기본적으로 진행되는 데이터라고 사용자의 메시지를합니다. 1113 00:55:16,300 --> 00:55:20,700 >> 에 대한 이야기​​ 그래서 지금하자 종류 연결 배열입니다. 1114 00:55:20,700 --> 00:55:24,590 그래서이는 채팅 클라이언트를 위해 설계 기본적으로 모든 사람이있는 종류의 어디 1115 00:55:24,590 --> 00:55:25,950 같은 대화방. 1116 00:55:25,950 --> 00:55:29,640 그러니까 기본적으로, 우리는 계속해야합니다 주위에 약간의 배열은 그 기본적 1117 00:55:29,640 --> 00:55:33,170 에서 채팅 모든 사람을 나타냅니다 몇 가지 방법, 즉 의미가 있다면. 1118 00:55:33,170 --> 00:55:33,340 오른쪽? 1119 00:55:33,340 --> 00:55:37,190 우리는 누가 그 사람을 알 필요가 있기 때문에 그래서 우리는 그들에게 메시지를 보낼 수 있습니다 1120 00:55:37,190 --> 00:55:39,140 다른 사람들이 우리에게 보내주십시오. 1121 00:55:39,140 --> 00:55:44,440 >> 그래서이 코드가 수행하는 경우 사용자입니다 메시지를 보냅니다 - 그 유형의 1122 00:55:44,440 --> 00:55:45,300 이벤트 - 1123 00:55:45,300 --> 00:55:47,120 우리는이 코드를 실행하는 것입니다. 1124 00:55:47,120 --> 00:55:51,240 그리고 우리가 할 것은 우리는이를 통해 실행합니다 우리는 연결을 호출 한 배열입니다. 1125 00:55:51,240 --> 00:55:54,390 모든 연결에 대해 꽤 많은 우리의 하나를 제외하고, 그건 1126 00:55:54,390 --> 00:55:59,520 이 코드는 말씀을, 우리는 새로운 보내 이 첨부 된 메시지와 메시지 1127 00:55:59,520 --> 00:56:01,210 정보. 1128 00:56:01,210 --> 00:56:04,880 >> 여기에서 알 수 있다면, 나는 무엇을했을 때 사용자는 실제로 새를 만든다 1129 00:56:04,880 --> 00:56:08,560 연결 내가 함께 추가 한 것입니다 JavaScript.push 방법, 여기는 1130 00:56:08,560 --> 00:56:12,100 기본적으로 그냥 같은 추가 말 에 값으로 해당 소켓 1131 00:56:12,100 --> 00:56:13,900 우리의 연결 배열입니다. 1132 00:56:13,900 --> 00:56:20,560 이 코드를 실행하면 이제, 그것은 것입니다 그 특정 정보를 보내 1133 00:56:20,560 --> 00:56:22,020 연결. 1134 00:56:22,020 --> 00:56:26,980 그래서 이것은 좋은 출발점이 될 수 있습니다 채팅 서버를 만들기위한 1135 00:56:26,980 --> 00:56:28,250 또는 이와 유사한. 1136 00:56:28,250 --> 00:56:33,315 >> 멋진 물건의 종류입니다 만약에 같은 여기를 참조 및 코드 1137 00:56:33,315 --> 00:56:36,390 방출과 같은 물건은 동일합니다 자바 스크립트 코드의 일종 당신이 것 1138 00:56:36,390 --> 00:56:39,260 상호 작용하는 브라우저에 쓰기 서버와. 1139 00:56:39,260 --> 00:56:42,480 SocketIO 종류의 이유는 그래서입니다 단정하고 그 방법으로 유용합니다. 1140 00:56:42,480 --> 00:56:45,680 1141 00:56:45,680 --> 00:56:49,250 >> 아, 그리고 한 가지 더 진짜 빨리. 1142 00:56:49,250 --> 00:56:55,970 CS50 최종 프로젝트는 작년에 거기 있었다 즉, 기본적으로 채팅을 구현 1143 00:56:55,970 --> 00:56:57,840 Node.js.에있는 서버 1144 00:56:57,840 --> 00:57:01,350 나는 Harvardchats.org 생각 하지만 난 아니에요 - 1145 00:57:01,350 --> 00:57:02,940 OK. 1146 00:57:02,940 --> 00:57:06,190 나는 URL이 무엇인지 잘 모르겠지만, 그 후 그를 보낼 수 있습니다. 1147 00:57:06,190 --> 00:57:09,260 그러나 종류의 냉각 무슨 당신은 Node.js.로 할 수있는 1148 00:57:09,260 --> 00:57:14,680 >> 그래서 일반적으로, 너희들이 희망 Node.js 유용 무슨 좋은 의미 1149 00:57:14,680 --> 00:57:17,870 및 방법 당신은 아마 적용 할 수 최종 프로젝트. 1150 00:57:17,870 --> 00:57:21,050 좀 더 발송됩니다 이와 함께 자원. 1151 00:57:21,050 --> 00:57:23,170 와 주셔서 감사합니다. 1152 00:57:23,170 --> 00:57:23,610 감사합니다. 1153 00:57:23,610 --> 00:57:27,168 >> [박수]