[00:00:02] [음악 연주] HANNAH : 안녕하세요, 여러분. 당신에게와 주셔서 너무 많은 사람을 감사 퀴즈 하나에 대한 역겨운 날씨 세션을 검토합니다. 너희들은, 퀴즈 알다시피 하나는이 수요일이다. 그래서 우리는 갈거야 주제의 무리를 통해. 다빈 : 이봐, 내가 말할 수있는 진짜 빨리 무엇인가? HANNAH : 네, 다빈의가는 진짜 빨리 뭔가 대답. 다빈 : 죄송합니다. 그냥 진짜 빨리, 당신은 질문이있는 경우 퀴즈에 대해, 당신은 온라인으로 갈 수 있습니다. 퀴즈에 대해 2014 퀴즈 하나로 이동합니다. 그것은 약 물류 있어요 어디로, 때 이동합니다. 당신이 동시에 등록하는 경우, 우리는있어 5시 30 분 메이크업 퀴즈를해야 할 것. 아니면 나에게 문제를 전송하는 경우, 당신은 몇 가지 다른 문제가 있습니다. 그러나 5:30 메이크업입니다 수요일에 시간. 하지만 당신은 질문이있는 경우, 질문이 있으시면, 온라인은 모든 물류가 있습니다. 그래서 그곳에 먼저 확인합니다. [00:00:47] HANNAH : 신난다. 그래서 여기에 주제의 큰 목록입니다 우리는 오늘을 통해 갈 거라고. 나는 C의 모든 다루려고 첫 번째 열입니다 물건. 그래서 C 물건 것을 우리 퀴즈 제로 후 덮여. 링크 된 목록을 시작으로, 어떤 포인터를 포함한다. [00:01:05] 좋아, 그래서 우리는 이것을보고 마지막 검토 세션에서, 그래서 나는 통해 갈거야 이 조금 더 빠르다. 당신이 나를 원한다면 그냥 손을 들어 느려지거나 더 뭔가를 해결합니다. 그러나 우리는 때문에 링크리스트를 사용하십시오 우리는 배열을 C에서 시작했다. 그리고 배열은 훌륭하지만, 문제점은 고정 된 크기를 가지고있다. 연결리스트는 우리가 만들 수 있습니다 동적 데이터 구조 크기. [00:01:28] 그리고 우리는 우리의 기본 동작을 가지고, 삽입, 삭제 및 검색 할 수 있습니다. 그리고 우리는에 삽입 할 수 있습니다 최악의 경우 일정 시간 우리는 처음에 넣어합니다. 최악의 삭제 및 검색 오 n 개의 시간의 큰 경우. 그래서 다시, 그냥 플립합니다 이 사진을 통해, 나는 우리가 지난 시간을보고 알아,하지만 우리 우리의 연결리스트를 추적 할 추적함으로써 우리의 연결리스트의 머리. 우리는 것을 알고 있기 때문에 우리의 각 노드 하나 단지를 가리려고하고있다 우리의 링크 목록에서 다음 노드. [00:01:58] 그래서 우리가 추적 방법입니다. 이러한는 아닐지라도 메모리의 연속 조각, 우리는 단지에서 찾을 수 다른 화살표를 따라. 여기에 우리의 구조 연결리스트 노드. 우리는이 마지막 시간을 보았다. 우리는 우리의 구조체 노드를 가지고있다. 그리고 그것은 두 가지 속성이 있습니다. 번호 하나, 실제 값은 우리가 저장할. 이 경우는 정수이다. 그것은 문자열을 수 있습니다, 그것은 수 당신이 원하는대로 숯이 될 수도 있습니다. 그리고 우리는 추적해야 우리의 링크 된리스트에서 다음 노드. 그래서이 될 것 다음 노드 포인터. 당신이 일을 한 경우 검색은 내가 전에 말했듯이, 같은 당신은 당신의 화살표를 따라해야 할 것이다. 삽입, 당신은 추적 할 것 목록의 나머지는 어디에. 그리고 당신은 머리를 리디렉션 할 우리의 새로운 요소를 가리 키도록하는 이 경우, 하나 다음 하나를 가리 킵니다 링크 된리스트의 나머지. 그래서 다시, 나는이 조금 알고 퀴즈 0에서 반복의 비트. 그래서 우리는 매우 조심해야 주문에 관한 한 우리 우리가하지 않는 때문에 이러한 pointings을 리스트의 뒤쪽의 트랙을 잃는다. 와 확인, 질문 그냥 단독으로 연결리스트? 신난다, OK, 멋진. [00:03:06] 그래서 지금, 우리는 뭔가에 갈거야 단지 약간 더 복잡, 이중 연결리스트. 유지 이외에 그래서 다음 노드의 선로, 우리는 또한 추적 할 이전 노드. 우리가 있다면 그리고 이것은, 우리를 수 우리의 연결리스트의 어떤 시점에서, 뿐만 아니라 앞으로 이동하지만, 또한 거꾸로 반복. 우리가 보았 듯이 때문에 단일 연결리스트, 우리는 몇 가지 노드에서 있었고, 경우 갑자기, 우리는 결정 사실은 가고 싶은 내 앞에 노드를 오른쪽으로, 모든 가야 할 것 다시 머리로가는 길 당신이 발견 될 때까지 반복 적용 당신이 찾고있는 노드입니다. [00:03:35] 그래서이 일을하게 우리가있는 한 약간 쉽게 반복하려고 우리의 링크 목록을. 그러나 하나의 추적 것을 요구 더 포인터, 그래서 하나 이상의 노드 스타. 좋아, 그래서 여기에 재미있는 부분을 온다. 우리는 구현 연습거야 이중 연결리스트에 대한 제거합니다. 그래서이 뭔가입니다 퀴즈 완전히 공정한 게임. 그것은 지난 퀴즈에 나타났다. 그래서 확실히 준비 C.에서 약간의 부호화 모두와 함께 잊지 마십시오 이 재미있는 PHP와 자바 스크립트, 우리는 아직도 기억해야 C.을 그래서 솔질하는 경우 녹슨 느낌이있어. [00:04:12] 좋아, 우리는이 작업을 수행 할 수 있는지 보자. 시원하고 확인을 클릭합니다. 그래서 우리는 시도거야 여기에서 마우스 오른쪽 버튼을 편집하려면 계획대로 희망이 간다. 좋아, 사람이 나를주고 싶어 않습니다 내가 시작하는 방법에 관한 제안? 난 단지 가정 결정은 내가 이미입니다 구조 정의, 하나는 내가 마지막 페이지에 보여 주었다 마지막 슬라이드에. 그리고 연결된 내 머리를 저장 해요 일부 포인터의 목록은 목록을했다. 그 누구도 날이 시작하기 원합니까? [00:04:42] 청중 : 당신은 새를 만들 수 있습니다 노드 목록을 호출? [00:04:45] HANNAH : 멋진, 그래서 우리가 창조하는거야 새로운 노드 목록을 크롤링. 나는 그것을 좋아한다. 그 확인의 경우 그냥 포인터를 호출합니다. 어디 그것은 원래 시작해야합니까? [00:04:57] 청중 : 아마 목록의 머리. HANNAH : 아름다운. 우리는 머리에서 시작하려는 나는 목록에 저장 될 것입니다 말했다. 신난다. 지금까지, 너무 좋아. 그리고 지금, 우리의 목표이다 목록을 반복 우리는 노드를 찾을 때까지 우리 삭제할 값 n. OK? [00:05:13] 그래서 지금 어디 부분이다 우리는을 통해 반복 할 수 있습니다. 누구를 제안 할 수 있습니다 방법을 반복하는? [00:05:19] 청중 : 루프. [00:05:20] HANNAH : 루프. 나는 그것을 사랑 해요. 특히, 우리는 while 루프를 시도 할 수 있습니다. OK, 우리는 우리가 도달 한 것을 알고있다 우리의 목록 때 무슨 말? 청중 : 포인터가 null의 경우. HANNAH : 포인터가 null의 경우. 아름다운, 나는 그것을 사랑 해요. 시원하고 확인을 클릭합니다. 내 경계 중괄호 인 경우 너무 미안하다 종류의 화면에서 떨어지는. 우리는 그것을 다시 가져왔다. 시원하고 확인을 클릭합니다. 다음은 뭡니까? [00:05:48] 그래서 우리는 우리가 삭제할 알고 n 값을 갖는 노드. 그래서이 사건 곳을 찾을 수 있습니다 우리는 실제로 우리의 노드를 찾을 수 있습니다. 그래서 내가 어떻게 확인까요? 난 그냥 포인터 경우, 다음 경우를 말하고 싶지만 I 포인터에서 값을 얻으려면, 난 그냥, N 화살표 않는다 N, 파라미터 같음 우리는이 함수에 준, 우리가 실제로 삭제하려는 노드입니다. 여기까지 질문? 좋아. 좋아, 그럼 이제 빠른 그림을 그려 보자 보드에 위해이를 시각화한다. [00:06:24] 그럼 우리의 사랑스러운 노드가 말할 수 있습니다. 그리고이 값을 가지고, 난 그냥 네 말을합니다. 그리고 다음을 가리키는 우리의 연결리스트에 노드입니다. 그리고 전에 아무것도 없다. 그래서 우리는 우리의 이전을 아무것도 가리키는. 이 경우, 우리는 거꾸로 가리. OK, 단지 설정 내 여기에 목록을 연결. 그리고 우리는 포인트 목록을 가지고 이 구조로 시작합니다. 나는 한 번 더 그릴 것 완전성을 위해. 확인을 클릭합니다. 나는이 앞으로하겠다. 그리고 나는 그 한 명을하겠다. 죄송합니다, 죄송합니다. 그래, 거꾸로이있어. 다시 작업을 수행합니다. OK, 거기에 우리가 간다. 좋아, 그것을 얻었다. OK, 여기에 우리의 사진입니다. [00:07:21] 좋아, 그럼 우리는 두 가지 사례를 고려하는 것이 좋습니다. 첫번째 경우는 경우이다 노드 우리는 삭제할 우리의 목록의 가장 처음에 있습니다. 그리고, 두 번째 경우 우리가 원하는 그것은 다른 곳의 경우 고려해야 할 것이다. 나는이 완전히 이해 지저분한 내 모든 지우기와 그리기, 그러나 희망 우리는하려고합니다 일부 코드이 명확하게. [00:07:40] OK, 그래서이 사건을 커버 할 수 여기서 우리는, 우리의 노드를 발견 그것은 매우에 있어요 우리의 연결리스트의 시작. 사람은 나에게 줄 에 관해서는 여기 제안 무엇 사실 우리의 노드를 제거해야합니까? 그것은 조금 까다로운. OK? [00:07:56] 청중 : 당신을해야 그 전에 될 노드 그것을 가리 확인 그 후 것 하나, 와 노드를 가지고 그 그 후하고 만들 것 그것은 전에 노드를 가리 킵니다. HANNAH : 그렇지. 좋아, 그럼이 경우입니다 그 곳은 우리는 두 가지 사례를 가지고있다. 우리는 경우가 우리가 찾는 노드 리스트의 앞이다. 확인을 누른 다음 경우 당신을 설명, 오른쪽, 그렇지? 이 목록에서 다른 곳입니다. 그래서 당신이 말한, 우리는 필요 이전 노드를 보면, 이전 노드를 만들 다음 노드를 가리 킵니다. 그래서 우리가있어 가정 해 봅시다 다섯 꺼내려고 여기에 내 매우 지저분한 도면. 우리는이 있는지 확인하려면 네 이제 여섯 가리 킵니다. 여섯 네의 다음 포인트. 그리고 4-6의 이전 점. 즉, 우리의 목표는 바로 여기? 이것은 내가 당신을 생각하다 저쪽 말했다. [00:08:56] OK, 그래서 첫 번째 조각을 얻을 수 있습니다. 이의는하자 이전 포인터 이전. 그래서 다음 네 가지의 무엇을 가리켜 야? 정확히,이 경우, 여섯. 그래서 우리는 다음, 포인터를 말해야한다. OK? 좋아. 그래서이 추한 그림을 제거하자 그리고 약간 더 좋은 하나를 그려보십시오. 우리는 여기에 우리의 목록 헤드를 가지고있다. 그리고 그 첫 번째 노드를 가리키는 우리 말 우리의 연결리스트는 4 개입니다. 여기에 우리의 두 번째 노드, 다섯입니다. 그리고 우리의 제 3 노드, 여섯. 그냥 똑같은을 그리는 시도 사진, 조금 더 깨끗하게. 좋아, 그럼 네의 다음 원래 다섯 가리 킵니다. 여섯 다섯의 다음 포인트. 다섯 여섯의 이전 점. 그리고 5 대 4로의 이전 점. 그래서 훨씬 좋네요! 시원하고 확인을 클릭합니다. [00:10:04] 그래서 지금, 우리가 무슨 짓을했는지 그냥 여기에,이 코드 줄, 이는 이전 포인터 말한다 다음, 그래서 그게 무슨 뜻 이죠? 우리가보고있는 경우 그 의미 다섯, 이전 노드로 이동 그리고 지금은 다음에해야이다 다섯의 다음을 가리 킵니다. 그래서 본질적으로 무엇을 그 일의 즉,이 화살표를 삭제하는 것입니다 그리고 오른쪽 다섯 건너 뛸 만들기. 알아 들었나? 그게 조금 스케치 할 수 있습니다 알고 있습니다. 좀 머리 끄덕임을 참조하십시오. 잘 됐네. 시원하고 확인을 클릭합니다. 이제 다음 단계는 무엇인가? [00:10:39] 나는 다음을 다시 설정했습니다. 자, 어떤 다른 화살표 내가 변경해야합니까? 여기이 사람. 식스의 이전. 우리는 여섯의 이전하지 않으 더 이상 다섯 가지를 가리 키도록. 우리는 4 개의 지적하고 싶어요. 그 사진은 의미가 있습니까? 그래서 지금 우리가 실제로 다섯 밖으로 걸릴 수 있습니다. 그래서 그 조각을 얻을 수 있습니다. 내가 전에 무엇을해야합니까 여섯의 이전 네하십니까? 거기에 어떤 아이디어? [00:11:14] 청중 : 사이의 노드 무료 이 null로 설정하여? HANNAH : 차가운. 확실히, 우리의 최종 목표는 노드를 무료로 될 것이다. 그래서 우리는 바로 여기에 있다고 할 수 있습니다. 무료 포인터. 물론. 그러나 심지어 그 전에, 의는 우리의 목표를 오른쪽으로 그냥 ...하자 여기에 다음 포인터를 설정하는 것입니다 동일한 이전 이전 포인터. 나는이 덮여지고 알고있다. 좋아, 멋진 take-- 수 있습니다. 모든 사람이 수익을 볼 수 있습니까? 아니면 슈퍼 작은입니까? [00:11:50] 우리가 실행하기 전에 그래서 여기에이 라인, 우리가 원하는 있는지 확인하십시오 포인터는 다음에 널 (null)이 아닙니다. 포인터가 다음 경우 때문에 오류의 널 (null), 어떤 종류의 내가하려 할 때 얻을 것이다 널 포인터를 참조? 청중 : 원세그 오류. HANNAH : SEG 오류, 아름다운. 그래서 만약 OK, 문제가 아닙니다 null의 경우, 우리는 다시 설정할 수 있습니다. 그리고 우리는 네 다시 여섯 점을 가지고있다. 이 시점까지 질문까지? 네? [00:12:17] 청중 : 처음에 if 문을했다 화살표가 의미 다음, 또는 [들리지? 한나 : 나는 포인터 화살표 N을 의미했다. 그러니까 기본적으로, 내가 할 노력하고있어 , 난 현재 노드 말을한다 이상 반복, 현재 노드 그 내가 포인터를 저장하고있어,보고있어. 그리고 포인터의를 알고 싶어요 이 경우, n은 값. 내가보고 싶어입니다 내가보고있는 노드 노드의 I 삭제하는 것을 목표로하고있어? 우리가 여기 N 포인터 것도 그런 이유입니다. [00:12:47] 청중 : 그래서 화살표 것 n으로, 당신은 값을 설정 n은이라는 노드에 저장? [00:12:55] HANNAH : 그래서 내가 경우처럼 이 연결리스트를 거치지 다섯 가리키는. 나는 경우, 그 값을 얻고 싶다면 나는 그 숫자 5를 원한다면 나는 포인터 화살표 N을 수행해야합니다. 쿨? 그래. [00:13:07] 관객 : 변수의 이름을 n은? HANNAH : 예. 우리가 하나를 다시 플립한다면 슬라이드, n은 이름입니다 내부 값 우리의 연결리스트에 노드입니다. 그리고 나는 조금을 얻을 수있어 약간 혼동 또한 우리 때문에 일을 요구하고있다 우리는 N을 삭제할 것인지. 그래서 그게 어디 있죠 한 라인에서 온다. 그래? [00:13:27] 청중 : 당신은 무엇을해야합니까 [들림] 그들은 어떻게 작동하는지? 포인터 [들리지? [00:13:35] HANNAH : 물론. 당신이하는 .. 어느 선을 이야기하고 있습니까? 청중 : 마지막 줄 [들림]. [00:13:44] HANNAH : 물론, OK. 그래서이 그림에서 살펴 보자 순서는이를 설명하려고합니다. 나는 위해, 미안 해요 카메라, 질문이었다 우리는 포인터를 설명 할 수 다음 포인터가 이전 화살표. OK, 그래서 우리는 5시에있어 가정 해 봅시다 우리의 목표는 다섯을 삭제하는 것입니다. 그래서, 다음 포인터 이들 중 어느 세 개의 노드는 우리를 주는가? 그건 바로, 여섯 번째 노드 우리에게 가져다? [00:14:10] OK, 이제 우리는 요구하고 여섯의 이전합니다. OK? 그리고 우리는이를 재설정하고 네 동일하게, 이는 다섯의 이전을 우연히. 나는 영웅이지, 알고 하드를 추적합니다. 난 정말 당신이 그림을 그릴 추천 이 같은 질문을받을 경우. 네? [00:14:30] 청중 : 그 이유는 그 우리는 [들림] 없어요? [00:14:37] HANNAH : 그렇지. 질문은 그래서, 왜 할 우리는 여기에서 확인해야하지? 왜 우리는 확인 할 필요가 없습니다 이전 포인터를 null 같지? 우리가했습니다 나죠 이미 분리 경우 경우 포인터의 맨 처음에. 아주 좋은 질문입니다. 여기에 다른 건? 시원하고 확인을 클릭합니다. 그래서 그것을 마무리 할 수​​ 있습니다. 우리는 거의 다 왔어. [00:14:59] 어떤 경우에 따라서는 머리에 무엇입니까? 무엇을 대신하는 경우 다섯을 삭제하는, 우리는 실제로 네를 삭제하고 싶어? 나는 무엇을해야 할 것인가? 글쎄, 내가 무엇에 내 머리를 재설정 할? 그것을 밖으로 외쳐? 청중 : 그 뒤에 하나. HANNAH : 아름다운. OK, 그래서 우리는 지적 할 목록을 원하는 무엇이든 우리의 포인터 다음 노드입니다. 좋은. 그리고 단지 완전성의 용 위해서, 우리는 것 우리의 목록만큼 그것을 확인하려면 한 우리의 목록이 아니므로, null가 아닌 빈, 우리는 설정하려면 null로 우리의 이전과 동일. 질문 지금까지? 하나의 단계 나서 ...? [00:15:53] 청중 :이 경우 을까 목록은 널 (null)와 같지? [00:15:55] 한나 : 네, 당신은 완전히 맞아. 정말 죄송 해요. 가 목록은 널 (null)와 같지. 신난다. 모든 화면에이 가지고하려고합니다. 그것은 종류의 떨어짐. 죄송합니다, 여러분. 그리고 적어도 마지막하지만, 모든 우리는 반환입니다해야 해요. 확인을 클릭합니다. 즉, 많은 가득했다 정말 빠르게한다. 이 이상을 찾아 두 번째를 가져 가라. 당신은 질문이있는 경우 말해. 그래? [00:16:20] 청중 : 목록에있는 경우 머리는 신경 끄시 고, 대기 그러고 나서 .... [00:16:26] HANNAH : OK, 좋은. 목록 머리에있는 경우 그래서이, 우리는 우리가 삽입 무엇을 제거합니다. 그래? [00:16:31] 청중 : 당신은 설명 할 수 다시 if 문 첫 번째? N에 대한 포인터가 N과 같으면? HANNAH : 물론. 그래서이 모든 기능의 우리의 목표는 n 값을 가진 노드를 삭제합니다. 그래서 만약 우리가있는 한 우리는, 발견 우리의 목록을 반복, n 값을 가진 노드는, 그건 하나는 우리가 삭제할. 그래서 삭제의 모든 발생 그 큰 if 문 내부. 그 의미가 있습니까? 쿨. 그래? [00:16:59] 청중 : 아마 당신이 볼 수 없습니다 그것은,하지만 당신은 또한 라인이 필요하지 않습니다 목록을 스크롤 하시나요? HANNAH : 신난다. 이제 조금이를 데려 오게하고 우리는 아래에서 그 권리를 던질거야. 아마 보드했습니다 것 약간 더 좋은 생각이었다. 그래서 내가 어떻게 앞으로 포인터를 움직일 것입니다? [00:17:17] 청중 : 포인터 포인터 더하기 하나는 동일합니다. [00:17:20] HANNAH : 아름다운. 그래서 우리를 수 순회를 통해 계속합니다. 확인을 클릭합니다. 청중 :이 다른 않을까요? HANNAH : 한 번 더? 청중 :이되지 않을까 경우 큰 오래 된 후 다른 문 [들리지? HANNAH : 어떤 부분? 미안 해요. [00:17:38] 청중 : 통과, 거기에 다른이어야한다? HANNAH : 당신은 절대적으로 다른 사람을 가질 수있다. 나는 반환 권리를 가지고 있기 때문에 거기, 당신은 다른 필요하지 않습니다. 하지만 그래, 좋은 질문입니다. 그래, OK? 청중 : 우리는 포인터 생각할 수 그 목록을 이동 값에 복용으로 리스트의 각 노드는? 아니면 우리가로 생각한다 목록에 외부의 종류? [00:18:00] 한나 : 어느 하나가 괜찮습니다, 나는 생각한다. 내가 상상하는 방법입니다 나는 OK, I 포인터 오전 말한다. 그리고이 날 것입니다. 이 내 손이다. 나는 다른 가리거야 내가 통해 반복 할 것. 첫째, 지적거야 리스트의 헤드. 그리고 그 난 나에게 말한다 네 가리 것. 그래서 나, 목록 외부에 존재하는 I는 각각의 요소를 가리킬 수있다. 그래서 포인터로 자신의 생각합니다. 청중 : 그래서 삭제 이들 요소들 중 하나, 당신은 말하자면, 자신을 삭제합니다. HANNAH : 그렇지. 그래서 당신은 일을 삭제 당신이 가리키는 것입니다. 예 그래서 우리는 우리가 어디있어 보았다 다섯을 삭제하는, 내가 다섯을 가리키는하고있을 때, 나는를 삭제하려면 것은 내가 가리키는거야. 정확히 맞아. 네? 청중 : 우리가 알아서 했 N이 목록에없는 경우? HANNAH : n이 목록에없는 경우? 일어날 모든 것은 당신이있어입니다 을 통해 반복 처리 반복하는 것 를 통해, 다음, 당신은거야 되는 널 (null)을 포인터에 도착하고, 그리고 당신은 할 것입니다. [00:18:48] 청중 : 그래서 우리가 할 아무것도 반환하는 방법? HANNAH : 우리는 할 수 있습니다. 방법이 정의되어있는 경우에는 그 기능, 그냥 반환하는 말 에 관계없이 무효. 그러나 당신이 뭔가를 할 수 정수를 반환 등 그리고 돌아왔다 실패하면 1 음. 뭐 그런. 질문은 예 거라도? 청중 : [들리지? HANNAH : 죄송합니다? 청중 : [들리지? HANNAH : 물론. 우리가 일단 그래서 actual--의 이동의 수행이 모든 작업 모든 화살표 주위, 우리의 전체 목표는 노드를 제거하는 것이 었습니다 것을 우리는 찾고 있습니다. 이 경우 그래서, 해제 포인터, 내가 다섯을 가리키는거야 경우, 그것은이 중간 노드를 삭제 같다. 즉, 무료 포인터 부분입니다. 즉, 메이크업 감각? [00:19:29] 청중 : 그래서 심지어 생각 당신은하지 [들림]나요? [00:19:31] 한나 : 그래서 우리는 처음에 가정 우리가했다 일부 목록을했다 already-- 그들은 함께이 넣어했다. 그래서를 구축하기 위해 목록, 그들은 [들림] 한 거 같아요. 쿨. 이와 다른 건? 네? [00:19:46] 청중 : 무엇 목록 경우 널 라인과 동일하지 않는 이유는 무엇입니까? [들리지? HANNAH : 바로 여기? 청중 : 네. HANNAH : OK, 모든 내가 뭘 난 그냥 확인하고 있어요된다 제가이 역 참조 목록에 전에, 나는 이전에 액세스하기 전에, 그렇지 않은 것을 나는 있는지 확인하려면 널 (null) 그래서 나는 독방 감금 오류를 얻을하지 않습니다. 쿨. [00:20:08] OK, 나는이 꽤 있었는지 많은 통해 얻을 수 있습니다. 그래서이 슬라이드가 될 것입니다 귀하에게 제공. 그래서 당신은 더 상세하게 통과 할 수 있습니다. 네? [00:20:17] 청중 : 왜 목록 [들리지? HANNAH : 물론. 그래서 목록은 정말 가리키는 바로 여기에이 요소, 리스트 내의 첫번째 요소. 그래서 이전을 가질 수 없습니다. 네? [00:20:31] 청중 : 포인터 포인트를합니까 메모리에 같은 주소로? 동일한 가리 않는다 노드와 메모리의 주소 이 가리키는 야? [00:20:40] HANNAH : 네, 포인트 메모리에이 노드에. [00:20:43] 청중 : 오른쪽, 그래서 때 [들리지? [00:20:47] HANNAH : 의미에서, 예. 확인을 클릭합니다. 좋아,이와 함께 이동하자. 그리고 당신은 더 질문이있는 경우, 마지막에 곁에, 우리는 다시 그것을 통해 갈 수 있습니다. 시원하고 확인을 클릭합니다. 이제, 우리는 이동하세요 테이블, 시도를 해시합니다, 나무, 당신은 슈퍼 가지고있는 P-설정, 다섯 철자에 익숙. [00:21:04] 그래서 해시 테이블은이다 단일 연결리스트와 배열 또는 이중 그것의 떨어져오고 연결리스트. 그래서 우리는 몇 가지 종류가 연관 배열의. 그리고 우리는 알 방법이 어떤 버킷에 들어갈 배열, 우리는 해시 함수를 사용한다. 이 경우, 수있는 사람 어떤 해시 함수를 추측 단지 일부에 기초 할 것 입력과 출력의? [00:21:31] 청중 : 알파벳의 편지 번호. HANNAH : 그렇지. 그냥 알파벳 순서에 넣습니다. 로 시작하는 모든 이 제 버킷에 넣고. B와 다에 넣고 두번째 버킷 등, 등. 신난다, OK. 그리고 해시 함수는 임의 단어에 걸리는 기능 당신에게 무슨 가에 속하는 버킷. 에있는 항목 그래서 우리의 배열이에 속한다. [00:21:55] 그래서 때마다 나는 내 줄 해시, 단어를 작동 그것은 나에게 동일하게 말해야한다 매번 놓습니다. 우리는 해시 함수를 사용한다면 이전 슬라이드에서 여기서 우리는별로 정렬하고 알파벳의 첫 글자, 내가 줄 때마다 내 해시 함수 "사과" 항상 0을 날 다시 제공해야합니다. 내가 사과해야한다면 내 해시 테이블에 넣어, 내 해시 함수에 "사과"를 주면, 그것은 양동이 0에 넣어 이동 말해야한다. 내가 찾고 있어요 경우 내 해시 테이블에 사과 나는 어디에서 힘 사과, 말 라이브, 당신은 당신의 해시 함수를 부탁드립니다. 그리고 공을 양동이로 이동했다. 좋아? 해시 함수와 질문이 있으십니까? 신난다. [00:22:34] 여기에 약간 이상이다 자세한 설명 해시 함수의 모양에의. 좋아. 해시 이제 문제 기능은 이상적인 세계에 우리는 단지 하나를해야 각 양동이 것. 그러나 현실에서, 거기에 뿐만 아니라 하나의 단어 그이 아니다 A. 시작 B. 그래서 시작 하나의 단어 이 경우, 만약 갑자기 "베리"를 얻을 우리는 그것을 넣을 우리의 해시 테이블에, 우리는 아, 아니, 바나나는, 참조 이미, 우리는 무엇을 볼까? [00:23:03] 음, 우리는 두 가지 옵션이 있습니다. 첫 번째 옵션은 선형, 프로빙하는 그냥 찾아 가서 의미 다음 빈 양동이입니다. 다음 빈 배열 항목을 찾아 이동합니다. 그리고 그냥 "베리"를 넣어. 그래서 나는 그것이하기로했다 알고 양동이 하나에 바나나과 함께 할 것입니다. 그러나 단지, 양동이 세에 넣어 버킷 때문에 세 가지가 비어 있습니다. 또 다른 옵션은 아마 당신은 구현 무엇 당신의 P-세트, 당신의 별도의 체인을 가지고 있었다. 그래서 각각의 버킷, 어레이 요소의 각각, 뿐만 아니라 하나의 단어를 보유하고 있지만, 실제로 단어 목록에 대한 포인터를 보유하고있다. 당신이 있다면 너무 당신의 해시 테이블에 바나나 당신은 갑자기 원 베리, 아무 문제를 추가합니다. 그냥 말, 또는에에 베리를 추가 시작, 링크 된 목록. OK, 끝내. 해시 질문 테이블 우리가 가기 전에? [00:23:58] 좋아. 나무와 시도. OK, 그래서 이것은 또 다른 옵션이었다 사전을 구현. 당신은 시도를 만들었을 수도. 그래서 나무의 특별한 종류이다 그 다단계 해시 테이블처럼 동작. 그래서 당신은 사진을 볼 수 있습니다 당신은 배열을 어디에 배열의 무리를 가리키는 배열의 무리를 가리키는 배열의 무리를 가리키는. 그리고 우리는 정확히 어떤 것을 볼 수 있습니다 미래의 슬라이드처럼 보일 것이다. 그리고 더 일반적으로, 나무 다만 어떤 데이터 구조 된 데이터는 일부 계층 구조로 구성. 그래서 우리는 우리가 본 곳 이해의 일종 최상위 레벨의 다음 단계, 다음 단계, 다음 단계. 그래서 이것은 아마도 가장 분명하다 몇 가지 구체적인 예제와 함께. 그래서 여기에 우리의 나무입니다. 당신은 그것을 볼 수 있습니다 특정 레벨을 가지고 우리는 루트 노드, 하나를 시작하는 것이. 그리고 우리는 우리의 트리를 통해 아래로 갈 수 있습니다. [00:24:50] 이진 트리입니다 나무의 특정 유형. 그리고 만 사양 이진 트리 각 노드가 가지고 있다는 것입니다 대부분 두 잎에서. 그래서 당신은 어떤을보고하지 않을거야 이 노드들은 서너개의 가질 또는 잎의 다른 번호입니다. 그리고 더 구체적인 이진 검색 트리입니다 여기서의 왼쪽에있는 모든 노드 노드는 값이 작은해야 할 것입니다. 그리고에 대한 모든 값 오른쪽으로 더 큰 될 것입니다. 당신은 (44)은 우리의 루트에 참조한다면, 왼쪽, 11, 22 및 33 우리의 루트가 아닌 모든 적습니다. 그리고 오른쪽에 있습니다 번호 66, 55, 77 bigger--. 그리고이 속성은 마찬가지 트리의 모든 수준에서. [00:25:37] 우리가 내려 가서 그럼 언제 여전히 22, 11, 33, 11 보다 작게 22 33는 22보다 크다. 그리고이보다 쉽게​​ 검색 할 수 있습니다 우리는 숫자를 찾고 있다면 때문에, 우리가 정확히 알고있는 가지가 아래로 따라합니다. 그래서 이것은 당신을 생각 나게한다 이진 검색의 약간. 그래? [00:25:56] 청중 : 그래서 당신이있어 바이너리를 묘사 당신은 대부분 두 잎에서 가지며? HANNAH : 그래 그래. 관객 : 덜을 수 있을까요? HANNAH : 네. 그래서 당신은,의, 예를 들어 봅시다 사물의 짝수 없었다 당신은 채울 수없는 모든 하나 하나가있는 경우 잎, 괜찮아요. OK? 신난다. 나무에 다른 질문? 확인을 클릭합니다. [00:26:16] 돌아 가기 우리의 시도에 내가 말하고으로 조금 이전에 대한, 우리는 어떻게 이러한 멀티 레벨 배열을 가지고있다. 이 경우 그래서, 우리는 정상에서 시작합니다. 그리고 우리는 아래로 주어진 단어를 따를 수 있습니다. 그럼 우리가 원하는 가정 해 봅시다 튜링을 확인합니다. 우리는 T에서 시작, 그것을 아래로 따라 U를 포함하는 배열에, 우리 때까지 아래로 따라 이 작은 델타에 도달하는 우리가, 그래, 당신이 단어를 발견 알려줍니다. 시도에 대한 명확한? 아무것도 저기 이동? 네? 청중 : 델타의 상징합니까 시도 내에서 공간을 차지해야? HANNAH : 네, 그래서 그것은하지 않습니다 반드시 심지어 델타해야합니다. 그러나 우리는 몇 가지 방법에 필요 우리가 computer-- 미안하다고, 그래서 우리는 TUR 단어 아니라는 것을 알고. 할 수 있기 때문에의는 우리가하지 않은 말 델타의 개념, 개념 축하합니다, 당신은 단어를 발견, 그것은, T-U-R을 통과하고 반복 것 다음 나는 그것을 발견, 멋진 말! 이 단어해야합니다. 하지만 정말 아니다. 우리는 전체 튜링 단어가되고 싶어요. 그래서 우리는에서 뭔가가 있어야합니다 라고 말, 축하, 당신은 합법적 인 단어를 발견했습니다. 청중 : 당신이 좋아했다 그래서 만약 알파벳 26 글자, 실제로 것 당신의 시도는 27 키? [00:27:24] HANNAH : 최고, 그래. 그래서 사실은 생각 다음 슬라이드에있을 것입니다. 짜잔! 당신은이 있으면 어디 당신의 시도에서 노드, 당신은있어 대신 26 27 아이를 가질 것. 그와 질문? 그래? 청중 : 왜 시도는 너무 차지 않은 공간 [들림]로 당신은 이동? 왜 [들림]로 간주됩니다? HANNAH : 물론. 의 돌아 가자. 질문은, 왜 시도는 훨씬 더 큰 해시 테이블과 같은보다. 이 수준의 각 그래서, 심지어 그들이 여기 그려하지 않는 경우 당신은 모든 26 문자를해야합니다. 이유 그리고 당신은 할 수 없습니다 나는, 튜링에 대한 오, 말,하지만 같은 그 중 하나를 할 필요가 없습니다 U. 음의 수준에 같은 일, 갑자기 경우 추가 싶어 T-H처럼 무언가, 당신이해야 할 것 그 단어를 추가하는 기능을 제공합니다. 모든 단일 문자에 따라서, 당신은 할거야 한 무리를하는 그것의 떨어져오고 배열. 그래서 당신은 말이죠 볼 수 있습니다 정말 큰, 정말 빨라요. 다른 질문? 좋아. 그래? [00:28:29] 청중 : 때 시도는 해시 테이블보다 빠르다? [00:28:33] HANNAH : 때 시도는 해시 테이블보다 빠르다? 그래서 만약 당신이 정말로 있었다 나쁜 해시 함수. 그래서 내가 좋아했다 가정 해 봅시다, 여기 해시 함수입니다. 그게 어떤 단어 당신이 저를주고, 난 항상 해요 배열 항목을 0에 넣어 것. 그래서 우리는 퍼팅으로 끝날 하나의 큰 긴 연결리스트의 모든. 그리고 조회 시간은 최악 걸릴 것 n은 우리의 목록의 맨 마지막에 있다면. 시도, 우리는 단지 반복해야 단어의 문자를 통해. 우리는 무리를 추가 그래서 경우에도 우리의 시도에 더 많은 단어, 그것은 더 이상 우리를받지 않을 것 특정 단어를 찾을 수 있습니다. [00:29:09] 우리가 할 일은 들면, 예컨대,이 경우, 이제 우리는 줌을 찾고 가정 해 봅시다, 우리는 반복 할 것 Z-O-O-M, 네 글자. 그래서 그건 단지 단어 줌의 길이. 그것은 얼마나 많은 문제가되지 않습니다 더 많은 단어는 우리는이 시도에 넣어. 우리는 항상 그것을 얻을 수 이 네 단계. 신난다. 네? [00:29:32] 청중 : 그래서 [들리지] 오른쪽 배열입니다? [00:29:34] HANNAH : 그래 그래. 청중 : 당신이 있다면 [들림]을 찾고, 당신은 통과 할 것 배열은 [들리지 찾는 방법은? HANNAH : 물론. 청중 : 그 시간이 더 걸릴하지 않습니다? HANNAH : 나는 갈거야 경우 내 배열은 항상 말 A, B, C, D가 될 것, E, F, G, 어쩌구 저쩌구, 나는 항상 알고있는 경우에 그래서이다 똑같은 순서로, 나는 항상 알고있는 경우입니다 알파벳 순서로, 난 그냥 O는 숫자입니다 말할 수 있습니다 그래서 그래서 알파벳. 그냥 그 장소로 이동합니다. 와, 기억 때문에 배열, 우리는 액세스 할 수 있습니다 상수에 해당 배열의 요소 우리가 찾고있는 곳에 우리가 알고있는 경우 시간. 그래? [00:30:09] 청중 : 이전에 [들림] (27)를 밀어 하지만 첫 번째 26. [00:30:14] HANNAH : 죄송합니다? [00:30:15] 청중 : 첫 번째 아닌가요 한 0, 그래서 26되지 않을 것? [00:30:18] HANNAH : 우리가 27을 말할 때 물론, 그래서, 그게 우리가 (26)를 통해 0와 indices 줄 것. 그러나 실제로 계산하는 경우 그 가운데는 2​​7이 될 것. 좋은 질문입니다. 다른 건? 그래? [00:30:31] 청중 : 그래서 시도는 해시 테이블보다 느린? [00:30:34] 한나 : 시도는에, 될거야 이론보다 빠른 해시 테이블 하지만 더 많은 메모리를 차지합니다. 그래? 청중 : [들리지? [00:30:45] HANNAH : 미안 해요 나는, 나는 당신을 듣지 않았다. 청중 : [들리지]. 25 0 당신에게 26을 제공합니다. [00:30:54] HANNAH : 0-25 것 오른쪽, 당신에게 26을 제공합니다. [00:30:56] 청중 : 그리고 [들림]. HANNAH : 오른쪽. 그래서 우리는시 지정하는 숫자입니다 우리의 배열에있는 사물의 수입니다. 우리가 27이 있다면 그래서, 그것은이다 우리에게 줄 것 0 (26)를 통해, 어떤을 줄 것이다 이 경우 미국 방,, 나는 아포스트로피를 포함하지 않는거야. 그래서 우리는 25를 통해 0이 있어요 알파벳의 첫 26 글자, 알파벳 또는 모두 26 글자. 그리고 그 마지막을 것은, 항목 26입니다 체크 될 것 마크, 또는 델타. 다른 건? 신난다. 내 공간을 잃었다. 시원하고 확인을 클릭합니다. [00:31:31] 그래서 우리는 이미 다루었 다. 그러나 큰 무역 오프 시도 및 해시 테이블 사이 시도가에 제공한다는 것입니다 이론, 일정 조회 배하지만 메모리의 전체를 많이 사용합니다. 자, 이제 우리는 약간있다 덜 복잡한 구조, 우리는 C와 함께 할 것입니다, 우리는 오른쪽을 따라 이동합니다. [00:31:49] 스택 그래서, 우리는 이것을보고 여기서 강의에 당신 같은 뭔가를 트레이 곳의 스택 당신이 넣어 마지막 일 스택에 가고 이륙 첫 번째 일이 될 수 있습니다. 그래서 정말 스택을 정의 무엇 마지막은 당신이에 넣어 것입니다 첫 번째가 될 것입니다 점은 이륙. 그리고 우리가 사용하는 용어 경우 우리는 무언가를 넣어거야, 우리는에 무언가를 추가하려고하는 경우 우리의 스택, 우리는 밀고 있음을 호출합니다. 그리고 우리는 무언가를 가지고가는 경우 오프, 우리는 터지는를 호출합니다. 그리고 우리는 거라면 우리를 스택을 구현 추적해야 할 필요가 크기와 용량을 모두. 요소의 총 개수 우리 수 있도록 보유 및 요소의 현재 수 것을 우리는 들고 있습니다. [00:32:27] 그리고 매우 유사하게, 우리는 큐가 있습니다. 그리고 유일한 차이점 대신 스택입니다 우리는 말했다 우리가 넣어 마지막 일 우리가 이륙 최초의 일이다. 그래서 큐와, 우리가 지금까지 해왔 먼저 를 될 것입니다 우선 우리는 꺼내. 그래서 이것은 당신이 있다면처럼 실제로 가게에서 안감 당신은 도움을 받고있어, 라인에서 다음 첫 번째 사람 도움이 될 수있는 첫 번째 사람이되어야한다. 그래서 큐 것입니다. [00:32:52] 그래서 우리는 추적 할 필요가 크기, 용량, 머리 우리가에 있기 때문에 전면 떨어져 모두 걸릴 것 대신에 위로의리스트. 그에 대한 질문? 당신을 귀찮게 모든 C 질문? 데이터 구조, 그 재미 물건의? 좋아, 좋아. 그래서 앨리슨에 넘겨 것 좀 더 프로그래밍에 뛰어. [00:33:14] 앨리슨 : 아, 우리가 볼 수 있습니다. 우리는 내가 여기에 얼마나 잘 볼 수 있습니다. 좋아, 내가 시도하고 비행거야 이 물건을 통해, 여러분. 한나는 매우 갔다 그녀의 모든 일에 깊이. 나는 제공하기 위해 노력하겠습니다 당신은 빠른 폭발 개요 우리는 모두와 함께 다빈 얻을 수 있도록 재미 자바 스크립트와 보안 물건 어쩌면 당신이 실제로 에 대한 자세한 내용을 듣고 싶습니다. [00:33:33] OK, 한나 말했듯이, 경우 당신은 질문이, 내가 너무 빨리거야, 알려 주시기 바랍니다. 나는 필요에 따라 질문에 대답합니다. 시작 그래서, 우리는 시작하는거야 바로 첫 번째 것들 중 아마 하나 당신은 웹 배운 프로그래밍, 권한. 그래서 chmod를, 너희들은 했어야 모든 웹이의 주인 만약 여러분의 프로그래밍 최근에하고 있었다. 그것은 기본적으로 그냥 명령이다 그 권한을 변경 또는 액세스 권한 우리의 파일 시스템 개체. 물론, 실제로 당신이 있다면, 이러한 참조 이들과 어떤 문제가 문제 세트 중, 당신은, 긴 LS의 -l을 사용했을 수 있습니다 이 등으로보기 종류를 얻을 수 있습니다, 당신은 실제로 모든 볼 곳 파일에 대한 권한을 설정합니다. [00:34:16] 그리고 정말, 우리는 갈거야 꽤 빨리를 통해 단지 예쁜 많은 이들 각각이 무엇을 의미하는지. 그래서 우리는 바로 여기 거라고이있는 그냥 디렉토리를 의미합니다. 물론 여기, 우리는 rwx로 참조하는 읽을 수있는, 쓰기 및 실행이다. 이러한 또한 비트로 표현 될 수있다, 저희는 다음 페이지에 얻을 것이다. 우리가 본 각각의 화음 여기에, 그래서 세 화음을합니다. 우리는 R 아무것도 x와 R을 RWX 한 아무것도 첫 번째 파일 X가 없습니다. 그것은이 일반적인 구조입니다. [00:34:49] 그래서 우리는 몇 가지 디렉토리가 있습니다. 우리는 어떤 사용자 그룹을 가질 이러한 권한. 이러한 권한이 일부 그룹, 및 세계 권한이 있는지. 당신은 트라이어드 이러한 생각할 수 있습니다. 당신은 3 비트 이러한 생각할 수 있습니다. 그래서 그들은 값을 저장할 수 어디서든 0에서 최대 7, 이는 왜 때때로 우리는 당신이 chmod를 수행했다 대신 어떤 RW chmod를 600. 우리는이 예에 얻을 것이다. 그러나 기본적으로, 당신은 생각할 수 다만 RWX 이들 중 어느 하나, 또는 당신은 몇 가지로 생각할 수 있습니다 숫자 그 다음이 첫 번째 사이의 숫자를 나타냅니다 0에서 7이 두 번째 사이의 숫자를 나타냅니다 0, 7, 세번째 OK, 0에서 7 사이의 숫자를 나타냅니다? [00:35:38] r은 4의 값 w가 값 2, 및 X가 이유를 1의 값을 갖는다 여기 권한은 700 chmod를 할 것입니다. 여기이 경우, 우리를 말한다 때문에 첫 번째 비트가에 뒤집혀있다. 그래서 우리는 읽기 (4)를 가지고있다. 두 번째 비트는 동안 뒤집어 지금 우리는 6이 때문에, 2 인, w. 그리고 세 번째 비트가 뒤집혀 1 X, 대한, 그래서 우리는 일곱을 얻는다. 그리고 물론, 우리 그룹 우리의 세계는 각각 0이다. 그래서도이고 chmod를 700에 해당. 그리고 나는 확실히하려고 할 것입니다 그 간의 매핑을 이해합니다. 그것을 가지고 있는지 확실하지 않습니다 전에 퀴즈에 와서, 그러나이 될 것입니다 내가 요청할 수 있습니다 질문입니다. [00:36:18] 조금만도 가고 여기에서 더 chmod를, 여기에 매우 일반적입니다 chmod를 호출의 구조. 그래서 물론, 우리는 여기에 chmod를했다. 이것이 의미하는 것을 참고, 누가 우리는 이러한 권한을주고있다 또는 누가 우리는이 복용 거리에서 권한을 설정합니다. 그래서 우리가 여기 권한에있다, 같은 우리는 당신이 플러스 X chmod를 준, 우리가 곧 볼 수있다. 다만 이러한 특정을 적어 모든 사람에게 권한을 부여합니다. 모두에게 부여합니다. 그래서 당신은 아주 잘 유 플러스 X를 가질 수 또는 g 플러스 X 또는 O 플러스 X 또는 여러 그. 첫 번째 부분은 항상되도록 참조 할 것. 누가 우리는 이러한 권한을주고있다 사람이나 우리는 거리에서 그들을 복용? [00:37:03] 두번째 연산자이다. 그래서 너희들은 대부분 플러스로 다루었 다. 이 권한을 제공합니다 누구든지 당신이 그들을 제공하고, 마이너스 반면, 논리적으로 제거합니다. 이 그래서 아무것도 너무 끔찍한. 그리고 모드들 우리가 무슨 얘기를하다 읽기, 쓰기, 또는 실행에. 그래서 플러스 x는 실행을 적어 모든 사람에게 권한을 부여합니다. 그리고, 물론, 그 위에 특정 파일이나 디렉토리. OK? chmod를 좋은 모두? 너무 나쁜? [00:37:37] OK, 당신의이, HTML 때문에 이전에 충분한 마이 스페이스의 나이를 바꿔 ..? 나는 나의 섹션이 보내 말 그대로 사람들의 절반 내가 미친 것처럼 나를 바라 보았다. 그리고, 사람, 마치 우리는 오래된 아니에요. 어서. 그래서 하이퍼 텍스트 마크 업 언어, 그것은 정직하게 당신을 위해 단지 방법 웹에서 어떤 일을 표시합니다. 그래서 마크 업 언어입니다. 이 스크립트 언어 아니다. 거기에 어떤 논리가 없습니다. 그것은을 변경 단순히 방법 뭔가가 표시됩니다. OK, 그래서 중요 차이는 확인합니다. 이것은 마크 업 언어 여길 하지 스크립트 언어. [00:38:12] 그래서 여기에 우리는 우리의 HTML 태그를 가지고있다. 이 슬라이드에 아마 대부분입니다 당신이 잘 알고 있어야 사람 와 정말 편안하게. 그래서 분명히, 우리가 우리의 HTML 태그, 어떤 그 모든 일을 지정 사이에이 두 HTML됩니다. 우리는 몇 가지 링크를 가지고있는 분명히 당신에게 줄 것이다 외부 웹 페이지로 연결되는 링크. 일부 제목, 여기에 우리의 머리 이내. 그리고 우리는 우리의 몸을 가지고 헤더 인 H1, 그래서 그것은 좋은 만들거야 그리고 대담하고 큰. 그리고, 우리는 몇 가지가 문단 페이지. 당신은 아마 알아야한다 물건을 잘 알고 있어야 이미지를 삽입하는 방법입니다 같은 거기에 다른 헤더 클래스? 나는 확실히 될 것 사업부 편안. 따라서 이러한 태그를 가지고 다수 당신은 잘 알고 있어야합니다 것을. 그러나 물론, 모든 것을에서와 같이 CS (50)는 목록이 전부인 것은 아니다. 그래서 당신이에 브러시해야합니다. [00:39:08] CSS, 그래서 CSS, 당신의 시계 경우 2 주 전에서 내 세미나, 정말 그냥하는 방법입니다 웹 페이지의 스타일을? OK, 그래서 우리는 약간의 마크 업 언어를 가지고있다. 그냥 텍스트를 돌봐 HTML, 그리고 페이지에 어디있을. 그러나 CSS는 꽤 만드는 것 정말. 당신은 당신의 HTML에서이있을 수 있습니다 파일, 그러나 우리는 나중에 대해 이야기로, 나는 수도 확신 그 다음 슬라이드 될 일반적인 방법이며, 실제로 우리가 정말 격려 연습, 당신이 유지하는 그들을 분리 때 MVC 그 전체의 패러다임에 대해 이야기. 즉,이은에 공급 정말로이다. [00:39:42] 그래서 CSS는 단지 방법입니다 상황이 꽤 보이게. 여기 물건, 같은 몸과 #title 및 .INFO, 이러한 선택기 무엇이라고 그들은 특정 일을 선택하면된다 HTML 파일 내 그리고 어떤 스타일을 적용, 당신이 무엇을 원하는 것들의 종류, 웹의 특정 요소에 페이지. 그래서 여기, 우리가 배경 색상 및 색상 및 폰트 패밀리가되고있어 그 몸에 무엇이든에 적용. 우리가 여기 뒤돌아 경우 그래서, 그것을 제목에 적용되지 않습니다. 그것은 단지 무엇인지에 적용됩니다 이 몸 선택기에서, OK? [00:40:22] 여기에 제목이있다 같은 일이 될 것, 텍스트의 색상 블루 만 가고있는 내 어떤 영향을합니다 표제 선택기. 뿐만 아니라 여기에 정보로서, 텍스트, 핑크 될 것입니다 바로 여기에 무엇이든의 정보,. 유일하게 그 그래서 이 페이지에 핑크 것 날짜, 2014년 11월 17일 (월요일)입니다. 좋아, 그럼 CSS는 단지 방법입니다 예 시달리고보다 효율적으로 제어 할? [00:40:48] 청중 : 왜해야합니까 제목 해시를 사용 하는가? [00:40:51] HANNAH : 다음 슬라이드, 약속! 우리는 거기에 도착합니다. 우리는 해시를 사용해야 그래서이다. 그래서 선택기 세 가지에 걸릴 우리가 당신들에게 이야기 형태. 나는 더 많은 것을 배우고 싶은 fyou, 많은 거기 밖으로있다. 큰 CSS 문서가있다. 이렇게하는 태그 명은, 거기 HTML 단지 일반 태그. H1, P, DIV, H2 그래서, 사물의 그 종류. 그리고 우리는있는 그대로 그 이름을 지정할 수 있습니다. 우리가 여기에 참조 그래서 본체는, 그 태그의 정상. 그래서 우리는 몸을 넣을 수 있습니다 우리는 우리의 CSS 파일에 얘기. [00:41:26] 제목, 전체 이유와 우리 이 해시가있는 우리는 무엇이야이 ID 생각했다. 그래서 ID는 항상해야한다 HTML 페이지 내에서 고유 당신이 때 너무 이를 참조하면 당신은 단지 참조하려고한다는 사실을 알려 하나의 특정 일에. 와, 여기이 경우에 따라서 우리의 여기 H1, CS (50) 리뷰 세션, 우리는 제목의 ID를 가지고 있습니다. 그냥 참조하기 위해 그래서 우리의 HTML의 조각, 우리는 해시 타이틀을한다. 그냥 규칙에 따라 ID가 지정되어 있습니다 그들의 앞에 해시. 동일한 방식으로, 우리는 참조 여기에 정보는 클래스입니다. 그리고 CSS와 클래스입니다 점 클래스로 지정 또는 그 클래스가 어떤 점. 그래서 여기에이 경우에는 정보이다. [00:42:10] 그래서 나는 그것을 다시 받아. 이 두 가지 것 여기에 우리의 CSS 핑크 그들은 둘 다 정보의 클래스가 있기 때문이다. 그리고 우리의 CSS 파일에, 우리는 지정했다 정보의 종류와 그 아무것도 분홍색이어야한다. 그 의미가 있습니까? 네? [00:42:27] 청중 : 당신이 있다면 만들려면 몸에 흰색의 모든, 그리고 당신은 만들려고 푸른 그 안에 무엇인가, 즉, 문제가 발생할 것인가? [00:42:34] HANNAH : 그래서 CSS는 CSS 스타일 시트. 그래서 무엇이든은을 향 바닥은 우선합니다. 그래서 몸으로 뭔가를 할 경우, 당신은 모든 흰색 확인 다음 나중에 당신은 제목을 변경 또는 신체 내에서 텍스트를 변경, 그것은 그것을 덮어 씁니다. 쪽으로 그래서 아무것도 바닥은 우선합니다. 네? [00:42:56] 청중 : 그리고 ID는, 고유 하지만 클래스는 더 할 수 있는가? HANNAH : 오른쪽. 그래서 ID는 고유해야하고, 클래스는 할 수 당신이 원하는만큼 많은 일을 참조하십시오. 다른 질문? 예. [00:43:09] 청중 : [들리지]. 나는 궁금 해요 그 차이가 있습니다. 한나 : 미안 해요, 질문이 뭐였죠? 청중 : 작은있다 "F"자본 "F." HANNAH : 그래서 차이 작은 "F"과 자본 사이의 "F" 변화를하지 않아야합니다. 그래서 "F"(15) 중 어느 방법이 될 것입니다. 쿨, 다른 건? 좋은 모두, CSS? 네? [00:43:30] 청중 : 죄송합니다. 당신은 클래스와 ID를 가질 수 있습니까? [00:43:35] HANNAH : 예, 당신은 할 수 있습니다. 상황이 클래스와 ID 모두를 가질 수 있습니다. 그리고 나는 매우 좋습니다 자신의 이러한 테스트. 당신이하여 최선을 바로 배울 CSS 무언가 매우 간단한 웹 페이지, 일부 CSS를 그리기, 단지 그들이 상호 작용하는 방법을보고. 그리고 당신은 아주 좋은를 얻을 수 있습니다 그것이 어떻게 작동하는지에 대한 직관적 인 감각. [00:43:56] OK, CSS 좋은 사람? 당신은 모든 만들거야 이제 CSS와 아름다운 웹 사이트. OK, 모범 사례, 단지 명심해야 할 것들, 것들 우리가 도킹 왜 ... 그 얘기입니다 당신 디자이너와 이것 저것합니다. 그래서 모든 HTML 태그를 닫습니다. 당신이 열려있는 몸을한다면, 가까운 몸이 있어야합니다. 당신은 개방 단락이있는 경우, 단락 끝이 있어야합니다. 페이지 유효성을 검사 확인합니다. 너희들은 아주 잘 알고 있어야합니다 에서이와 P-설정 일곱 CS (50) 금융과 W3 유효성 검사기와. 그리고 내가 전에 말했듯이 우리의 큰 패러다임의 하나 CSS으로 나만의 스타일을 분리한다 HTML입니다 마크 업에서. 그리고, 물론, 우리가 여기로이 위대한 XKCD. 야호, 희극! [00:44:38] OK, TCP / IP. 이들과 HTTP 사이, 기본적으로 그들은 두 프로토콜이야. 그래서 그냥 생각할 수 이들 일련의 규칙으로서 어떻게 일을 지배하는 그 인터넷을 통해 이동합니다. 그래서 송신 제어 프로토콜 또는 인터넷 프로토콜 확인하는 단지 방법입니다 이 어디로 가야 데이터 가져 우리는 알고 있음 우리는 지금까지 데이터가 누락하고 있습니다. 그래서 너희들 경우하면 강의를 다시 생각한다 데이비드와 전 몇 주 여기서 우리는 그들이는 4 개의 봉투를했다 네 가지 중 하나처럼 번호가되었다, 네의 2, 4 세, 네 네,이 규칙의 단지 세트입니다. 우리는 OK, 우리가 때마다있어, 말했다 하나 이상의 패킷을 전송하는, 우리는 번호를하려고 그것이 무엇인지 번호가 그것을 얼마나 많은 총이 사용자는 받아야합니다. [00:45:19] 그리고 이것은 단지 말하고 누구 데이터 그들이 여부를 수신 경우 모든 또는 입수했습니다 뭔가가 길을 따라 길을 잃었다. 그리고 그들은 다시 요청해야합니다. 이건 정말 규칙 단지 집합입니다. 즉, OK, 생각할 수있는 방법? 또한, 상기 포트를 지정하는 너희들은, 내가 강의하는 동안 알고 있는데 ... 그들은 포트의 전체 목록을했다. 그러나 우리는 지금 여기가 없습니다. [00:45:41] 그래서 하이퍼 텍스트 전송 프로토콜 다시, 다른 프로토콜의 것이다. 그래서 다른 일련의 규칙이다 그이 경우, 적용, 하이퍼 텍스트는 어떻게 전달된다. 그래서 그냥 브라우저를 할 수 있습니다 웹 서버 이야기합니다. 우리가 여기에서 말한대로, 그것은이다 인간의 핸드 쉐이크있다. 그것은 지배하는 단지 방법 어떻게 웹 서버 인 브라우저와 상호 작용하는 것. 그리고 우리는 예 단지 몇 가지있다. 우리는 여기에 몇 가지 요청이 여기서 GET는 방법이다. 우리는 인 HTTP 1.1을 우리 프로토콜 버전. 그리고, 호스트는, 무엇 인 우리가 실제로 액세스하기 위해 노력 중입니다. 그리고, 당신이 여기에서 보는 바와 같이, 우리 이 200 몇 가지 응답을 얻을 우리의 HTTP 응답 코드로서 OK. 우리는 내가 갈거야 큰 목록을 가지고 1 초에 최대 당겨 너희들은 잘 알고 있어야합니다 것을. 그리고 우리는이 콘텐츠 형식의 텍스트 / HTML을 이는 단지 데이터의 유형을 말한다 우리는 OK, 서버로부터 수신하는? 이 호스트 및 콘텐츠 유형 HTTP 헤더의 일부입니다. 당신은 적은 또는 작은을 가질 수있다 의 상황에 필요한 무엇 당신이 상대하고. 때때로 당신은 많이있을 것이다 서버에서 오는 정보를 제공합니다. 어쩌면 그들은 많이 요청하고 사용자로부터의 정보. 그것은 상황에 따라 달라집니다. 당신이 CS (50) 연구를 보면, 그에 더 많은있다. 하지만 우리가 얻을 수있는 여지가 그래서 나는거야,를 통해 오른쪽 전방 경우 이동 즉, 사람들과 함께 OK인가? 쿨. 기다려. 나는 확실히 것을 가지고 허 집게 리아의 전체 목록! 이 이유를 모르겠어요 여기에 모든 방법. 나는 말 그대로 이동 생각 나는 sitting--을 동안 [00:47:15] 다빈 : 당신이 그것을 가르쳐 하시겠습니까? 당신은 내가 가르쳐 하시겠습니까? [00:47:17] 청중 : 나는 우리가 할 수 있다고 생각 단지 시작하는 그들에게 보여. 난 당신이에 갈 수 의미 또한 그들,하지만 그것은 내가 있기 때문에 더 의미가 만든 생각 단지 HTTP 상태에 대해 얘기했다. 그래서 여기에 전체 목록입니다. 나는 일이되어 무슨 일이 일어나고 있는지 추측 다빈은 나중에 들어갈 것입니다. 그러나 전체 목록은있다 맛의 미리보기를 제공합니다. OK, 우리는 이것이 것입니다 blow--거야 여느 때처럼 PHP의 충돌 과정이어야합니다. [00:47:41] 그래서 PHP, 하이퍼 텍스트 전 처리기, 그것은 재귀 backronym이다, 하는 그것이 다른 뭔가를 지명되었다 의미합니다. 그리고 그들은이 같은했다 정말 이해가되지 않습니다. 그래서 그들은 단지이게 뭐지라는 이름의 그리고 약어이었다 그래서 그들은 그냥 PHP 만든 하이퍼 텍스트 전 처리기, 어떤 다만 이해되지 않는다. 재미있는 이야기. 그것은 프로그래밍 언어이다. 내가 강조 그래서 많은 HTML은 프로그래밍 언어 아니다 이것은 마크 업 언어, PHP 야 프로그래밍 언어이다. 당신이 알고 어떻게 논리가 있기 때문에. 조건문이있다. 우리는 변수가 우리 반면, HTML에서 그런 일이 하나도 없다. [00:48:12] 좋아, 우리는이 작은이 비트는 여기에는 PHP의 맛처럼. 그래서 기본 변수 이름 달러 기호로 시작합니다. 그것과 같은 많은 사람들이. 우리 돈을 생각 나게한다. 그것은 모든 좋아요. 우리 모두는 PHP를 할 수 있습니다. 그래서 우리는을 지정하지 더 이상 변수의 유형입니다. 그것은 런타임에 결정됩니다. 인터프리터는 같은 것입니다 오, 우리는을 통해 실행하겠습니다 하고 상황에 따라, 우리는 유형의 종류를 볼 수 있습니다 이러한 변수가 있어야합니다. 더 주요 기능은 없습니다. 상황이 바로 실행됩니다. 에서 가져 오기와 너희들 당신의 P-설정 마지막으로, 당신은이를 알 수 있습니다. 주요 기능은 정말 없었다. 당신은 쓴 당신이 원했던 일. 그리고 그냥 가지 일어났다. 그래서 당신을 위해 PHP입니다. [00:48:56] 배열은 매우 유사하다. 우리는 여전히이 브래킷을 가지고있다. 여기, 우리는 몇 가지 변수가 도착 불리고, 그것은 동일 야 난 ... 우리는 우리의 정상이 대괄호 표기법. 그리고 우리는 몇 가지 중요한 가치를 가지고있다. 그리고 큰 차이 C와 PHP 배열 사이 우리는이 associate--을 가질 수 있다는 것입니다 우리는 키 값을 연결할 수 있습니다. 그래서 대신에 그냥 가지고 인덱스가 배열 숫자 나 위치에 의해 배열에서 해당 요소의, 우리가 실제로 열쇠로 연결할 수 있습니다. 우리가 말할 수있는 경우, OK, 내가 원하는대로 값은 과일과 연결되어 있습니다. 어쩌면 우리는 과일 바나나에갔습니다. 그래서 우리에게 바나나를 돌려주는 것입니다. [00:49:41] 그러나 기본적으로는, 가장 이것에 대해 강력한 것 입니다 너희들이 기억한다면 여기서 우리는 기본적으로 강의에서 데모 재 작성 PHP에서 철자하고, 전 ... 조회는 정말로 좋아 이 키는 존재 하는가? 즉,의 힘을 정말 친절 하시네요. 당신은 반복 할 필요가 없습니다 당신의 배열을. 당신은 알 필요가 없습니다 어떤 공간이에 있습니다. 그것은 끝이나 시작 부분에있을 수 있습니다. 만큼 당신이 키를 알고 그는 값과 연결된, PHP는 그 값을 침을 수 오른쪽 OK, 당신을 철회? [00:50:09] 그리고, 우리 또한 단지 이 단지 우리 때문에 키 값 쌍을 가질 수 있습니다 당신이이 의미하는 것은 아니다. 또한 단지 만들 수 있습니다 일반 배열 여기에 같은, 그것의 바닥에 하나, 둘, 셋, 넷. 사람들은 우리의 가치입니다. 그리고 사실, 자신의 키가 인덱스입니다. 그래서 하나의 키가 0이 될 것이다. 두 가지의 키는 하나가 될 것입니다. 등등 등등,하지 않는 한 명시 적으로 키를 할당, 당신은을 가정 할 수 값은 단지 그들의 인덱스입니다. 즉, 모든 사람에게 의미가 있습니까? 질문은 없나? 신난다. [00:50:38] OK, foreach는이에 대한 방법입니다 당신의 배열을 통해 반복. 그래서 우리는 여기에 뭔가를 그냥 일반적인 구조. 너무 foreach는, 이름 우리의 배열, 어떤으로 각을 호출 할 배열의 요소, 우리는 뭔가를 할 수 있습니다 그 요소 또는 값. 그래서 우리는 여기에 예를 가지고있다. 우리는 연관이 이 두 항목으로 배열 바 foo에와 관련되는 그리고 바즈와 관련되는 qux. 그래서 키는 foo에와 바즈 있습니다. 값은 바 qux 있습니다. 그래서 foreach는, 우리는 우리의 배열을 여기서, 키 값 쌍으로. 이 액세스 할 수있게 해준다 키와 값을 모두. 아마 당신이 원하는 값,이 경우에 당신은 도착처럼 할 수 다음 $ 값과 같이 다만 값 액세스 당신은을 통해 반복으로. 하지만 어쩌면, 일부 이유는, 당신은 키를 원하는, 내가 선택한 이유는 대신이 예. 그래서 당신은 실제로 조작 할 수 있습니다 이 경우 키와 값. OK? 질문? [00:51:41] 청중 : 당신이 원한다면 그냥 키를 것 조작 당신이해야 할 foreach-- [00:51:45] 앨리슨 : 오른쪽. 그래서 당신이 원한다면 단지 키를 조작, 당신은 여전히​​이 필요 구문 당신에 있는지를 무언가로 도착을 가지고, 한 가지, 그것은이다 가는 당신이 원하는 가정 값이 아닌 키. 그래서 당신은 그냥 같이있는 경우 어쩌면이 $ 요소처럼 그대로 도착, 당신이 요청한다고 가정 것 각 지점에서 바로 값. 명시 적으로 원하는 작업 키 뭔가를, 당신이가는하지 않더라도 값으로 아무것도 할, 이 구조를 필요 우리는 여기에 있다고 위치를 명시 적으로 요구하고 키 값 모두. 좋은 질문입니다. 다른 건? 쿨. [00:52:27] 좋아, PHP와 HTML. 아, 우리가 돌​​아 왔어요 P-설정을 다시 일곱. 그래서이 조금 익숙 할 것이다. 그래서 몇 가지 간단한 HTML 양식입니다 그 인사의 일부 입력 이름이 있습니다. 그리고 우리는 우리가 GET의 우리의 방법을 참조하십시오. 그리고 우리는 우리의 P-세트에서 기억한다면, 이 양식이 제출 될 때, 그것은이 $의 _GET라는 배열을 보냅니다 이러한 입력 또는 변수에서의 모든 해야 형태 우리의 PHP에서 조작 할 수 있습니다. 이 경우, 사용자 그래서 이름에 둘 것입니다. 그들은 제출. 그리고 우리는 우리가 여기에 몇 가지 배열을 얻을 것을 알 수있다. 우리는 우리의 GET 배열을 가지고있다. 그리고 우리는 이름을 액세스 할 수 있습니다. [00:53:11] 그래서 말로는, OK, 나에게주는 이름과 연결된 값, 여기에 키있는 이름을 지정합니다. 그리고는 직접 매핑 무엇 우리는 우리의 입력 이름이 말했다. 그래서 이것은 당신에게 열쇠를주고 있었다 무엇 여기에 배열 될 것입니다. 즉, 모든 사람에게 의미가 있습니까? 네? [00:53:32] 청중 : 이름에 참조가 나올까요 [들림]에 보라색 라인? [00:53:36] 앨리슨 : 그것은 여기를 참조합니다. 그래서 여기이 필드, 그것은 여기에이 이름을 참조합니다. 그래서이 이름을 수 있었다 전화 번호 또는 어떤 추천. 이 이름은 실제로 무엇을 말한다 이 필드를 호출? 당신은 어떻게 가고있다 이 필드를 참조하십시오? 그리고이 이름은 우리가있어, 같은 실제로 이 필드를 말하는 것은 이름이라고합니다. 즉, 우리가 그것을 액세스 할거야 방법입니다. [00:53:59] 청중 : 그래서 좋아한다 입력 이름은 밥과 동일, 그리고 ... [00:54:02] 앨리슨 : 오른쪽 다음, 거기 밥을 얻을 것입니다. 정확히. 모두 멋진? 좋아, 그래서, POST 대 GET 이러한 두 가지 주요 방법입니다 것을 우리는 HTTP 요청에서 데이터를 전달합니다. 너희들은 봤어야 이러한 희망의 모두. GET와, 정보 그래서 URL을 통해 전달됩니다. 그래서 당신은 구글을​​ 할 경우 검색, 유튜브, 당신은거야 아마 물음표를 알 수 있습니다. 그리고, 모든 단어 것을 그냥 거기에 넣어. 그리고, POST가 데이터를 전달 HTTP 메시지 본문. 그래서 GET과는 달리, 당신은 가지 고려 데이터는 사용자에게 표시된다. 하지만 정말이야 이해하는 것이 중요합니다 이 여전히 있다는 GET만큼 안전하지 않은. 내가 사용하고 싶은 비유 경우입니다 당신은 당신의 은행 계좌 번호를 그리고 당신은 외부에 쓰기 봉투, 그건 꽤 위험한입니다. 당신이 인 경우의 조각에 쓰기 종이 봉투 안에 넣어, 여전히 때문에 정말 안전하지 않은 당신이해야 할 모든 것을 열어입니다 실제 내용을 보면 메시지의 것을 볼 수 있습니다. 그래서이 "숨겨진"이고에 같은 사람 이 안전하다고 생각하지만 정말 아니다. 그리고 나는 확신 다빈 것 어쩌면 그 이상으로 얻을. 그러나 그것은 중요 구별로 만들려면 정말 좋은 일이 이해합니다. [00:55:15] OK, SQL은 쿼리 언어를 구조화. 모든 물건이 우리는 아주 최근에 본 적이! 그래서 기본적으로 단지 설계, 분명히, 데이터를 관리. 너희들과 많은 경험을했다 PHP MyAdmin와 테이블이. 그리고 네 일반적인 쿼리가 있습니다 우리가 원하는 것을 너희들은 알고 있습니다. 그래서 갱신, 삽입이있다, 선택하고 삭제합니다. 그래서 당신은 정말 잘 사람들을 알고 있는지 확인하십시오. 우리는 갈거야 정말 빨리 그들을 통해. [00:55:40] 그럼으로, 정말, 업데이트 무엇 당신은 그것을하지 생각 그냥 데이터베이스에 데이터를 업데이트합니다. 그래서 우리는 여기에 몇 가지 예를 가지고있다. 이것은 일반적이며 업데이트 쿼리의 구조. 그래서 우리는 테이블을 업데이트 것을 우리에 대해 얘기하고. 그리고 우리는 특정 설정하려면 값, 특정 열 특정 값과 동일. 그래서 이것은 단지 변경, 테이블을 업데이트 이 경우 모든 행의 값. 이 하나의 여기로 가면, 실제 예를 들어, 우리는 insert-- 죄송합니다. 즉, 슬라이드 전진 나없이 그것을 실현. [00:56:17] 그래서이 업데이트 테이블은 동일 COL1 설정 집이 동일 곳 val1을합니다 "커리어를." 어떤이 하나가하는 것은 그것은 단지 그것을 만 변경 특정 장소에서이 값을 업데이트합니다. 그래서 처음에, 이러한 변경 테이블의 모든 값, OK? 그것은이를 변경할 것 모든 단일 항목에 대한 열 모든 단일 행. 이 경우, 당신은 할 수 규정으로 생각합니다. 그래서 그것은 단지 변경할 것 매우 특별한 장소에서. 에 따라서 P-설정, 때를 일곱 아마도 현금의 양을 업데이트 사용자가 가진 것을, 당신은 아마했다 일부 ID, 오른쪽 세션 ID와 동일 어디? [00:56:53] 에 당신이 원하는하지 않았기 때문에 현금의 양을 변경할 모든 사람을위한 사람 당신의 웹 사이트를 사용하고 있었다. 당신은 하나를 위해 변경을 원 특정 사람, 그 사람이되고 누구든지하면 그 시간에 그것을 사용했다. 오른쪽? 좋아, 그럼, 인서트를 삽입 테이블에 특정 값. 이것은 당신이있을 때처럼 새로운 사용자를 생성. 여기에 일반 구조 어떤 테이블에 삽입된다 우리에 대해 얘기하고. 값,되는 값이 우리가 실제로 삽입 할. OK, 우리는 여기에서 볼 정도로, 우리 테이블에 삽입했다. 이와 특정 컬럼입니다 그들의 맞습니다 값. 그래서이, 삽입 말한다 포함하는 새로운 행 값 VAL1과 val2만큼 아래 이러한 특정 열. [00:57:33] 아마 당신은 단지 채우려 이 행의 절반 것들을 밖으로. 즉,이 부분은 여기에 당신이 할 수거야. 그것은 실제로 당신을 수 어느 부분을 결정합니다. 네? [00:57:44] 청중 : 수 당신 만 [들림] 행 [들림] 세포? [00:57:52] 앨리슨 : 만 기입하면 당신의 행의 특정 부분, 해당 셀의 나머지는 비어있다. 만큼 당신이 그들에게 허용하는 비어있는, 그것은 문제가되지 않습니다. 당신이 그들에 액세스하려고하면, 그건 일부 빈 요소를 반환 할 것. 그러나 아는 것이 중요합니다 특정 테이블에 그, 그들은 null이 될 수 있어야합니다. 당신은에 실행 한 수 당신의 P-설정시 문제 우리는 어떤을 허용하지 않았기 때문에 당신의 가치는 null. 하지만 당신은을 지정할 수 있습니다 테이블의 옵션 값. [00:58:26] OK를 선택, 그래서이입니다 점점 단지 방법 테이블에서 특정 데이터에 당신이 원하는 어떤 식별자. 테이블 곳에서 그래서 선택 스타 COL, 뭔가 그냥 의미와 동일 나에게 관련된 모든 데이터를 제공 여기서이 특정 열은 사실이다. 따라서이 경우에는 별 것 OK, 당신에게 전체 행을 반환? [00:58:49] 그리고,이 경우, 행을 선택 스타 표는 당신에게 전체 테이블을 제공합니다. 그리고, 분명히 그냥 삭제 테이블에서 행을 삭제합니다. 그래서 테이블에서 삭제 어떤 테이블 우리가있어 여기서 몇 가지 구체적인를 참조 식별자 또는 일부 조건은 사실이다. 네? [00:59:07] 청중 : 질문. 왜 두 번 사용하는 인용하고 있는지 여부 큰 따옴표 나 할 따옴표, 그것은 차이가 있습니까? [00:59:13] 앨리슨 : 큰 따옴표 또는 작은 따옴표 SQL에서 차이가 없다. 나는 또 다른 질문을보고 생각했다. 네? [00:59:20] 청중 : 그것은 무엇에 영향을주지 않음 쿼리에서 탈출되는? [00:59:25] 앨리슨 : 롭? [00:59:27] ROB : 당신은에 의해 무슨 뜻 이죠 쿼리에서 탈출? [00:59:31] 청중 : 누군가가있는 경우 형태로 단일 쿼리 집게 리아 [00:59:36] ROB : 누군가가한다면 에 작은 따옴표를 넣어, 다음으로 당신이 살균하고로 귀하의 의견은, 그것은 중요하지 않습니다. 하지만 당신은 하나를 사용하는 경우 견적 당신은 잘못이다 사용자의 입력을 탈출, 다음 예, 그들은 필요 휴식하기 위해 작은 따옴표를 넣어 코드. 큰 따옴표를 사용하는 경우, 그들은 배를 둘 필요가 당신의 암호를 해독하기 위해 인용. 그러나 한 당신은 일을 탈출로 제대로, 그건 문제가되지 않습니다. 그냥 번역 할 것 어쨌든 올바른 기호에. [00:59:59] 청중 : 탈출이 무엇을 의미합니까? 앨리슨 : 음, 같은 살균과 탈출. 우리가 시험, 위대한 XKCD 만화 당신이 그들이 어디에 올려 것을, 호 ... ROB : 그것은 마지막 슬라이드입니다. 앨리슨 : 정말, 마지막 슬라이드입니까? 세상에. 거기에서 우리는 완벽한 이동합니다. 좋아, 그럼 기본적으로, 당신은 삽입 할 수 이 SQL 쿼리에 뭔가 어디 당신을 나누기 코드, 다윗이 보였다으로 수업 시간에, 우리는 몇 가지 하나가있는 경우 인용 1 일 같고 우리의 코드의 경우, 우리는 바로 그에 복사하고, 우리는 끝 따옴표를, 무슨 일이 우리가 얻을 수 있습니다 일부 표현이 참으로 평가하는 것 누군가가 우리의 데이터베이스를 입력 할 수 및 데이터를 얻을 것을 우리 그들이 싶어하지 않습니다. 그래서 입력을 살균 그냥 확인하는 의미 우리는이 탈출되어 있는지 문자들을 지정 문자가 아닌 것 같은 그 허용해야한다 문자 그대로 수 우리의 SQL 문으로. [01:01:04] 그래서 큰 일이 우리가 말했다 너희들이 사용되어야한다고 HTML 특수 문자는 있었다 이는 뭔가 당신은보고 싶을 수도있다. OK, 삭제합니다. 데이터 타입이 모든 온라인 것이다. 우리가 15 분 왼쪽했기 때문에, 난 바로이 통과 것. PHP와 SQL, 기본적으로이입니다 단지 우리는 쿼리 기능을 활용하는 방지 도왔다 이러한 악의적 인 공격. 그래서 때마다 사용 쿼리, 우리는 확인하고 있었다 것들은 살균과 이것 저것했다. [01:01:36] MVC는 단지 디자인 패러다임 그래서 모델, 뷰, 컨트롤러. 이 일을 계속하는 단지 방법 이 좋은 동일하게 분할 우리는 인수 분해하는 경향 기능에 밖으로 코드. 이것은 단지 웹 디자인 프레임 워크입니다 그 같은 일을 할 수 있습니다. 나는이를 건너 뛸거야. [01:01:54] 이것은 뭔가 제가 슈퍼 편안 할 것이다. 그것은이 좋은 작은 테이블입니다. 그것은 당신에게 기능을 제공합니다 모델의 예. 난 그냥이를 통해 내가 있기 때문에거야 정말 다빈이 얘기하고 싶어. 당신은 질문이있는 경우, 주시기 바랍니다. 나는 후 여기에있을 것이다. 그냥 얘기 온. 즉, 우리는 HTTP 상태를 가지고있다. 그리고 다빈의 불어 것 15 분이를 통해. 이 위대한 사람이 될 것입니다. [01:02:17] 다빈 : OK. 어, 마이크? 그래. 미안 해요. 앨리슨 : 길을 준비합니다. 다빈 : 아니, 난 준비 됐어. 난 준비 됐어. 이 해 보자. 그것은 준비. 확인을 클릭합니다. 미안 해요. 나는 나 자신에 커피를 쏟았. 좀 더 있을지 모르겠어요 내가 바보 보이는 것이 화가, 또는 더 이상 커피를 필요가 없습니다. 어쨌든, 그냥 빨리 발표 시트에 대해 사람들이 있습니다. 그래서 너희들이이 시트는 아니다 퀴즈에 무슨 공식. 이 퀴즈에 무슨 공식이다. 또한, 웹 사이트에, 우리는 이야기 당신은 OK,이 퀴즈에있을 것입니다. 작은 컨닝 페이퍼에 따라서 당신은 공식되지 있습니다. 그리고에 실수가있다. 그래서 최고의 단지 맹목적으로 그것을 사용하지. 그래서 그래, 그럴 겁니다. 그럼이 진짜 빨리 들어갈 수 있습니다. [01:03:05] 그래서 HTTP 상태. 그래서이 때 발생 웹 사이트는 모든 모든 권리입니다. 모든 게 OK. 모든 것이 다시 온다 당신은 당신이 그것을 할 수있는 방법을 원한다. 당신은 200 OK를 얻을. (301)는, 여기서 우리는 (301) 그 전에 본 적 있어요? 무슨 일이야, 기다려? 미안 해요. 우리는 보안 동안 나는 주석 강의를 보았다. 그래서 만약 그래서 보안 동안, 다윗의 입력 HTTP하고, cs50.net로 이동하려 당신은 (301)가 이동 보게 될 것입니다. 왜? 이 리디렉션 것 때문에 우리의 HTTPS에 자동으로. [01:03:35] 그래서 (301)는 단지 그것의 이동 기본적으로 리디렉션. 그리고 당신은 이런 식으로 생각 할 수 있습니다. 2 년대로 시작하는 상태의 모든, 사람들은 모든 게 OK, OK, 같다. 시작 상태의 모든 3, 그 리디렉션합니다. 4로 시작하는 상태 수단이 클라이언트 오류의 어떤 종류가있다. 5로 시작하는 상태, 즉, 서버 오류의 일종이다. 그래서 당신은 가지 헤어 그런 상태. 그래서 304에 있으므로, 수정하지 아니하여 server.c의 P-세트, 그래서 당신을 가정 해 봅시다 로드 cat.html. 모든 것이 다시 온다 당신은 200S는 OK, 큰 얻을. [01:04:03] 의 당신이 그것을 새로 고쳐 봅시다. 음, 내부 cat.html, 당신은 JPEG있다. 음, JPEG는 아니다 가는 것은 다시로드 얻을 수 있습니다. 당신은 다른를 게시하지 않을거야 서버에 GET 요청, 다음 다시 모든 정보를 얻을 수 있습니다. 그냥 그 이미지는 나중에 ... 것 가는 것은 컴퓨터에 캐시합니다. 그리고 그 이미지는 304이 될 것입니다. 그래서 수정 아니에요. 아웃 한 후 닫으면, 분명 쿠키는 다음 새로 고침 해당 페이지를로드하려고 다시, 당신은 200S를 보게 될 것입니다. 당신은 (304)를 참조하지 않을거야. [01:04:28] 400 잘못된 요청, 실제 빠른,이 마음 를 보낼 거라고 서버에 JSON 객체 와 JSON 객체는 올바르지 당신은 그런 일을 볼 수 있습니다. 403, 금지. 때 당신은 금지를 볼 것인가? 아마 아마? 청중 : chmod를. 다빈 : chmod를, 그래. 그래서 당신은 설정하지 않은 제대로 권한을 설정합니다. 404 찾을 수 없습니다. 그냥 거기입니다. 잘못된 URL을 입력한다면. (500), 내부 서버 오류, 서버 아마 제대로 구성되지 않았습니다. 당신의 끝에 뭔가 아니지만, 서버 측에서 뭔가. 그리고 503? 많은 사람들이 보았다 마지막으로 P-세트 503s. 때 일어날까요? 나는 속삭임을 들었다. [01:05:05] 청중 : 때 구글 당신이 로봇있어 결정한다. 다빈 : 네, 때 구글은 결정 당신은 당신이 503s를 얻을 로봇이야. 그래서 과부하입니다. 당신은 서버에서 요청한 경우 너무, 보통 일시적이다. 그리고 당신의 대부분은 그것을 알아 차렸다. 그래서 당신은 503를 보았다. 당신은 조금 촬영 한 수 휴식 후 503s 멀리 갔다 모든 것이 괜찮습니다. [01:05:20] 별점 : 진짜 빨리, 너희들은 어떻게해야합니까 아마 500이 마지막 문제 설정? 네? [01:05:27] 청중 : 보통 경우 서버가 잘못 파일이 또는 [들림] 그 기계 [들림]. [01:05:34] 별점 : 그래서 그것은 구성 될 수 있습니다 당신의 서버에있는 PHP에 문제가있을 수 있습니다. 하지만 뭔가 수 있습니다 당신의 잊어 세미콜론 등을들 수있다. 당신이 PHP를 입력하는 경우, 일부 잘못된 구문 당신에게 그런 일을하실 수 있습니다. OK? [01:05:46] 다빈 : 차가운. 당신은 내가 AJAX 때까지 그냥 할 하시겠습니까? [01:05:51] 별점 : [들림]. 다빈 : OK. 그래서 DOM은 무엇인가? DOM은 무엇을 의미합니까? [01:05:55] 청중 : 문서 객체 모델. 다빈 : 반갑습니다. 그리고 왜 우리는 그것을 좋아합니까? 신난다. 마우스 오른쪽 단추로, 그것은 그래서 그냥 액세스 우리를 수 HTML은 매우 신속하게 페이지에 액세스 할 수 있습니다. 왜? 우리가 치료하고 있기 때문에 우리의 페이지, 우리의 HTML 태그를 처리, 치료 다 마치 그들은 개체를하고 있습니다. 그들이있는 것처럼 우리는 그들을 치료하는 경우 객체, 우리는 무엇을 할 수 있습니까? 음, 우리는 그들에 함수를 호출 할 수 있습니다. 그리고 이것이 왜 중요합니까? 음, 우리는 사용하려고하고 있기 때문에 자바 스크립트는 우리의 HTML을 업데이트하려면 이러한 개체를 업데이트합니다. 우리가 물체처럼 취급한다면, 우리는 그들에 함수를 호출 할 수 있습니다. 나는이 조금 들어갈거야 내가 자바 스크립트로 갈 때 더, 하지만 당신은 모든처럼 본 적이 document.getElementById를. 그래서 문서는이다 요소는, ID에 의해 요소를 얻을 그래서 당신은 볼거야 HTML 태그의 일부 ID합니다. 그리고, 당신은 할 수있다 그에게 뭔가. 예를 들어, document.body 등에 당신은 아이를 추가 할 수 있습니다. 그래서 당신은 문서를 찾을 것입니다. 당신은 문서를 가지고있다. 당신은 시체를 찾을 것입니다. 당신은 시체를 발견. 그리고, 당신은 갈거야 거기에 어떤 함수를 호출합니다. 그래서 아이를 추가, 당신은 추가 할 수 있습니다 몸 내부의 끝에 약간의 HTML. 그러니까 기본적으로, 당신은 그저 객체처럼 치료. 당신은 HTML을 치료하고 객체 같은 태그. 그리고 그것은 매우 쉽게 빠른 그들을 통해 이동합니다. 그러나 그것은 또한 당신을 수 있습니다 그들에 함수를 호출합니다 그래서 당신은 조작 할 수 있습니다 및 요소를 변경합니다. [01:07:04] 게이브는이 감안할 때, 왜 자바 스크립트입니다 좋은 언어는 HTML과 상호 작용? 사람들이 선택되었을 때 승률이 있습니다 브라우저의 언어, 클라이언트 측, 자바 스크립트는 정말 좋은 그것은 개체를 처리 정말 좋습니다. 그리고 개체는 가지처럼된다 HTML에 표시되는 개체, 그래서 자바 스크립트를 매우 쉽게 처리의 종류를 할 수 있습니다. 다빈 : 반갑습니다. 그래서 여기에 그냥 예입니다. 그래서, 작년의 퀴즈 생각 아니면 2 년 전, 우리 트리를 만들 수 물었다. 그래서 당신이 할 거라고 정확히이다. 그래서 당신은 문서 함께 시작합니다. 그리고 당신 기본적으로 그냥 태그 봐. 당신은 우리를 본다면 HTML 태그로 시작합니다. 그리고, 당신은 방법에 대한 단서를 얻을 수 들여 쓰기에 따라이 작업을 수행. 지점 그래서 머리 종류 끕니다. 머리 속에, 우리가 제목에 대한 또 다른 태그입니다. 그럼, 우리는 제목 태그가 있습니다. 그리고 그 안에, 우리는 몇 가지 문자열을 가지고있다. 그래서 우리는 대표 원의 문자열. 그리고 모든 태그는 사각형에 있습니다. [01:07:54] 그리고 당신은 보면, 우리의 경우 트리로이 생각, 과의 그 HTML이 가정 해 봅시다 부모, 다음 머리와 몸 형제 자매가 될 것입니다. 그들은 모두가 될거야 그 부모의 자식. 그들이이기 때문에 그래서 두 형제, 그들이있어 가지 옆에 될 것 우리의 트리 모델에 서로. 그리고, 당신 기본적으로 똑같은 일을. 그래서 어려운, 그러나 우리는 요구하지 퀴즈에 앞서이 같은 질문. 별점 : 누구를합니까 지금까지 질문이? 그것은 좋은가요? 다빈 : 차가운. 자바 스크립트, OK, 좋은 물건. 그래서 자바 스크립트, 자바 스크립트는 무엇인가? 음, 자바 스크립트는 신기 했어 복잡하지만, 이러한 하이라이트 중 일부입니다 것을 명심해야한다. 첫째,이 느슨한 타입입니다. 그게 무슨 뜻 이죠? 그래서 PHP 무슨 일이야, 네 그러죠? [01:08:35] 청중 : 당신은 명시 적으로 필요가 없습니다 그것이 변수의 유형 상태. 다빈 : 완벽한. 그래서 그는 당신이하지 않아도 말했다 명시 적 변수의 타입을 명시. 그게 바로 권리입니다. 내가 INT가 있다면 그래서 C에서, 내가 50에 해당, 다음 PHP에, 그냥이처럼, $ I, (50)와 동일합니다. 그리고 자바 스크립트에서, 호출은 어떤 것입니까? 바르, 맞죠? var에 내가 50에 해당 것처럼 것. 하지만 당신은 할 필요가 없습니다 같은, OK, 이것은 INT이다. OK,이 문자열입니다. 필요는 수행되지 않습니다. 그것은 해석 된 언어입니다. 이 사실은 무엇을 의미할까요? [01:09:04] 청중 : 컴파일하지 않습니다. [01:09:06] 다빈이 : 무엇을 의미 컴파일하지 않는 이유는 무엇입니까? 그래? [01:09:11] 청중 : 당신은 필요가 없습니다 코드를 구조 조정 하기에 준비하기 컴퓨터를 실행합니다. 그것은 단지의 시간에 찍은거야 실행과 컴퓨터 [들림]. 다빈 : 네, 그래서가는거야 통역을 통해 전달합니다. 하지만 당신은 정확히 맞아. 그래서 당신은 결코 않을거야 오른쪽 컴파일하는 방법? 때하고 있던 당신의 PHP와 자바 스크립트 코드, 당신은 컴파일을 호출되지 않습니다. 당신은 같은 것을 호출되지 않습니다 하거나 그런 건. 이 해석됩니다 때문입니다. 그래서 브라우저를 통과 할 때마다, 그것은 통역을 통해 간다. 그리고 그것을 해석하는 것 단지 바로 당신을 위해 실시간으로. 그래서 일부 긍정과 부정은 무엇인가 해석 언어를 갖는 것 및 컴파일 된 언어를 가진? 그래서 무슨 일이야, 그래 compiling--? [01:09:50] 청중 : 해석은 느립니다. 다빈 : 어떤 의미에서? [01:09:57] 청중 : 당신 후 컴파일, 당신은 필요가 없습니다 실행하기 위해 여분의 단계를 수행합니다 그것은,이 [들리지] 반면. [01:10:04] 다빈 : 오른쪽, 완벽한. 그래서 당신은 말 기본적으로 그 컴파일, 당신이 컴파일 할 때, 당신은이 초기 비용이 많이, 맞죠? 당신은 그것을 컴파일하는 것입니다. 하지만 당신은 컴파일 후, 컴파일러를 최적화하는 것입니다. 그것은 빠르고 될 것. 그것은 기본적으로에거야 그것이 될 수있는 한 빨리. 당신을 절대로 해석하지으로 그 선행 비용이. 그보다는 약간 느린 될 것 당신이 그것을 해석 매번. 그리고 당신이해야 돼요 그것을 매번 해석한다. 그래서이 갖는 대신 한 시간 비용, 지금은있어 해석해야 할 것 마다 페이지를 렌더링한다. [01:10:29] 그래서 통역 때문에 좋은 당신은 그것을 컴파일 할 필요는 없습니다, 하지만 그들은 그 모든 나쁜 것 그것의 페이지로드 시간이 해야 할 것 이 자바 스크립트를 해석한다. 그리고 약간 느리게 실행 것 당신이 그것을 컴파일한다면보다. 당신이, 오, communicate-- 기다릴 수 있습니다. 를 조작하는 데 사용 내용과 모양. 우리는 그것에 대해 이야기했다. 그것은 DOM을 사용합니다. AJAX, 우리는에거야 약간의 AJAX. 그리고 나서, 그것은 클라이언트 팀. 그래서 PHP는 서버 측이다. 자바 스크립트는 클라이언트 측이다. 그 긍정적 인은 무엇입니까? 그것은을 말한다. 그것은 바로, 더 빠르다? 그것은 더 빠른 인명 피해가 없는지 ... 당신이이 없기 때문에. 당신은 의사 소통을 할 필요가 없습니다 다른 장치. 당신은 단지에있어 경우 클라이언트, 당신이 무슨 상관이야 이동해야 할 것 및 서버에 무엇이 있는지 다음 다시보고 또는 그런 일. 그래서 클라이언트 측 경향 조금 빠르다. [01:11:15] 별점 : 그래,하지만이 PHP는 의미하지 않는다 자바 스크립트보다 더 빨리 등의 아무것도. 그들은 같은에서 가지 실행 속도가 모두있어 때문에 인터프리터 언어. 느린 것은 여기서 요청이다. 그래서 당신은 실제로거야 브라질에 걸쳐 모든 방법 몇 가지 정보를 얻을 수 있습니다 그이 살고있다. 그러나 PHP와 자바 스크립트, 그들은 가지 동일한 속도에서 실행됩니다. 그것은하지 하나입니다입니다 다른 것보다 더 빨리. 여기이, 또한, 트릭 질문입니다. 그래서 자바 스크립트가된다 결코 참 또는 거짓 기계어 코드? [01:11:47] 청중 : 거짓. 별점 : 거짓. 그것은 기계가한다 코드 기계 코드이기 때문에 유일한 것은 기계가 이해하고 있습니다. 그것은 컴파일되지 비록, 여전히 기계 코드해진다 인터프리터가 단지 때문에 한 행씩 프로그램 과에 그 라인을 변환 뭔가 컴퓨터가 이해하고 있습니다. OK? 쿨. [01:12:08] 다빈 : 여기에 그냥 아주 기본적인 세계 자바 스크립트 프로그램을 안녕하세요. 당신은 본 적이 그렇다 니 그래서 나도 몰라. 하지만 당신은 여기 HTML있다. 그리고 대신 실제로 퍼팅 스크립트 태그에 자바 스크립트, 그래서 당신은 일반적으로 머리에 넣어 것입니다. 당신은 스크립트 태그가 있습니다. 당신은 거기에 놓습니다. 여기서 우리가했던 모든 우리는 감옥에 ... 연결 한한다 그래서 우리는 자바 스크립트 파일에 연결 한 이 같은. 그리고이 모든 오른쪽 짓을했는지? 그래서이 때 jQuery를하고 사용하고 있던 마지막으로 P-세트 underscore.js, 당신은 코드의 최대의 톤이 없습니다 스크립트 태그, 당신의 머리에 백업합니다. 당신은 그렇게 할 대신 할 수 당신은 이것을 링크한다. 그리고 당신은 이것을 링크 당신은 CSS와 함께 할 좋아. 그냥 수 있도록 쉽게 그래서 읽기 1000 선 긴처럼되지 않습니다 코드 기능의 톤과 그 당신이 사용되지 않을 수 있습니다. [01:12:52] 그 대신에 연결합니다. 그것은을 compartmentalizes. 그것은 몇 가지 헤더 파일을 작성처럼, 그리고 다음 C.에 해당 헤더 파일을 포함 바로 이런 식으로 생각하십시오. 따라서이 기능은 무엇입니까? 음,이 실행하는 것입니다. 이 경고하는 것입니다. 그래서 좀받을거야 라는 안녕하세요 세계를 팝업. 빠른 질문, 단지 전성 검사, 그래서 당신은, 몸 여기 참조 여기에 몸 HTML을 말한다. 무엇이 먼저? 여기 몸, HTML 보입니까, 또는 내가 먼저 경고를 볼 수 있습니까? [01:13:19] 청중 : 경고. [01:13:20] 다빈 : 오른쪽. 그는 경고했다. 왜? [01:13:22] 청중 : 당신 때문에 위에서 아래로 이동합니다. [01:13:24] 다빈 : 예. 완벽한. 그래서 그는 당신이 위에서 이동 말한다 절대적으로 올바른 바닥. 당신은 위에서 아래로 갈 것입니다. 그리고 자바 스크립트, jQuery를, 당신은이 같은 온로드, 또는 준비 기능, 그리고 그 확인 될 때​​까지 기다리라고 이 HTML의 모든로드. 그리고, 자바 스크립트를 호출합니다. 우리는 여기에, 그 없기 때문에 일어날 제일 처음 그것은 위로부터 아래로 내려 가서 것입니다. 그것은 그 JS 칠 것 전화, 그것은 경고 것입니다. 그 후 [확인]을 클릭, 그 경고가 사라집니다. 그럼 보여 것 당신이 여기에 몸 HTML. 니스. [01:13:54] OK, 그래서 그냥 진짜 빨리, 쓰기 자바 스크립트에서 슈퍼 빠른이다. 선언하기 위해서 변수 var에 이름. 그래서 C에서, 당신은 당신이, INT의 난이 그것이 유형의 종류를 선언합니다. PHP, $. 자바 스크립트, VAR. 우리는 이것에 대해 이야기했다. 좋아, 가자. [01:14:11] 루프, 같은 일. 같은 일. 함수 선언, 그래서 당신이 C에서 본 적이있는 것 다른 유일한 것은 그렇게 할 때입니다 당신은 다른 프로그래밍 언어에 도착, 같은 당신은 (51) 다음 학기를 취할 때 당신은, OCAML로하고있는 당신은 익명 함수를 처리 할 수​​ 있습니다. 그래서 당신이 여기가 정확히입니다. 그래서 당신은 합계에 넣어하고자, 합계 값의 일종. 하지만 당신은 단지 그것을 한 번 일을 할 수 있습니다. 당신은 함수를 호출하지 않도록 합은 그것을 함수 선언을 제공합니다. 대신, 당신은 단지 그것을 사용 익명 함수로. 그리고이 많이 봤어요. 당신의 예를 볼 수 있습니다 몇 슬라이드에서이. 그래, 우리는 볼 수 있습니다. 별점 : 좋은 질문입니다. 당신이 사용할 수있는 경우 여기에 익명 함수? 기본적으로, 때 당신이 뭔가를 원하는, 이벤트처럼 발생합니다. 그래서 마우스가있을 때 클릭, 예를 들면, 당신은 어떤 함수가 호출되고 싶어요. 그래서 당신은 이벤트에 전달 핸들러는 이벤트에 전달 가지, 기능이 당신은 호출하려는. 그리고 당신은 무엇을 전달하고 마지막에, 같은입니다 오늘의 단지 포인터 함수에 그 명령. 그래서 당신이 전달하는 것도 아니 잖아 전체 코드, 그냥 함수에 대한 포인터. 그리고, 때 누군가가 클릭 마우스, 그 함수가 호출됩니다. [01:15:17] 다빈 : 배열, 당신 때문에 배열 선언을해야합니다. 그런 다음, 배열에 물건을 넣을 수 있습니다. 진짜 빨리이 무엇을 인쇄 할 것인가? 세 번째 요소는 무엇인가? [01:15:31] 청중 : "JS". [01:15:32] 다빈 : 바로, 그것은 "JS."것 잠깐, 다시 이동합니다. 길이는 무엇입니까? [01:15:37] 청중 : 세. 다빈 : 세, 오른쪽? 정확히 무슨 생각을. OK, 이제 이동합니다. 배열은, 당신은 그들에게 물건을 추가 할 수 있습니다. 그래서 당신은 넘어 갈 수 있습니다 초기 경계입니다. 그냥 뭔가 염두에 두어야합니다. PHP, 자바 스크립트, 그들은 조금있어 사물의 측면에서 좀 더 관대 그런. 개체별로 같은 구조체 C에서, 매우 PHP의 연관 배열 등을들 수있다. 당신은이 모든 경험을 했어. 당신이 JSON을 통과하고 JSON, 그래서 앞뒤로 P-설정 여덟에, 그 개체입니다. [01:16:03] 그래서 그래, 예를 들어, 잽싸게 예. 여기서 목적으로한다. 당신이 참조하는 방법 개체, 빠른 그래서 그냥 진짜, 의 내가 찾고 싶었어요 가정 해 봅시다 아웃, 확인 과정은 무엇인가? 그리고 여기에 개체 이름이 CS50입니다. 그리고 내가 연관이 있다면 배열, 내가 어떻게 할 건데? 나는 오른쪽 키를 사용할 것? 그래서 배열의 이름을 가지고있다. 나는, 브래킷, 시세, 키가 최종 시세, 엔드 브래킷 그리고는 그것을 참조합니다 내 연관 배열 내부 요소입니다. 어떻게 참조 할 내 개체 내부 과정? 아무도 알아? [01:16:39] 청중 : [들리지]. [01:16:40] 다빈 : 무슨 일 이죠? 청중 : CS50.course. 다빈 : 그래, 그래. 그래서 CS50.course. 그래서 방법 당신은 일을 참조 JSON 객체의 내부에 점으로한다. [01:16:48] 청중 : 당신은 또한 배열 구문을 사용할 수 있습니다. [01:16:53] 다빈 : 미세하고 확인을 클릭합니다. [01:16:54] 별점 : 당신은 또한, CS50 브래킷을 사용할 수 있습니다 인용 부호와 같은 문자열. 청중 : 그것은 PHP와 동일합니다 생각합니다. 별점 : 그것은 같은 일입니다. 다빈 : 파인! 하지만 당신이 다른 곳을 볼 수 있습니다. 그래, 그렇게 계속. 이것은 내가 방금 말한 것입니다. 자바 스크립트 jQuery를 예에 따라서. 그래서 내 DOM, 오른쪽입니까? 진짜 빨리, 그래서 난이 머리, 안녕하세요 세계, 신체의. 나는 버튼이 있습니다. 그것은 "나를 밀어"라고 그래서 그것을 밀어 싶어요. 그리고 내가 뭔가를하고 싶은 그것을 클릭 할거야 때. 좋아, 다음. [01:17:31] 그래, 그래서 이것은 내 자바 스크립트입니다. 그래서 jQuery를 그냥 쉽게 방법은 자바 스크립트를 작성합니다. 이 그래서, 내가 보여 주겠다 무엇 당신은 다음, jQuery를 될 것입니다 동일합니다. 그래서 그들은 같은 일을 할 것입니다. 다만 jQuery를 좀 더 쉽게되는 경향이있다. 사람들은 더 좋아하는 경향이있다. 그것은 많은 기능을 가지고있다. 그래서 사람들은 jQuery를를 사용하는 경향이 있습니다. 여러분 모두 마지막 P-세트에 jQuery를 사용했다. 그래서이 무엇을 할 것인가? 어떤 것이 JavaScript-- 그래서 이 자바 스크립트 그냥 일반입니다. 이것은 무엇을 할 것인가? 그것은 무엇을 할 것인가? [01:18:03] 그래서 첫째, 당신은 윈도우 온로드를 참조하십시오. 오른쪽? 그래서 우리는 그 전에 보지 않았다. 그래서이 기다릴 것입니다 전체 창로드까지. 그래서 때까지 기다릴 것 HTML, 모든 이미지로드 전에 아무것도 않습니다. 그럼 우리의 DOM이로드 가정 해 봅시다. 모든이있다. 그리고 무슨 일이 일어날? 그래? [01:18:19] 관객 : 버튼이 나타납니다. [01:18:22] 다빈 :이 버튼이 이미있다. 그래, 아직이 버튼의. 하지만이 말 것입니다 OK, I 버튼을 클릭하면, 그래서 버튼이 이미 이, 그 HTML 태그 등을들 수있다. 잠깐, 진짜 빨리 돌아갑니다. 이 태그 바로 바로 여기 이미 단추가 될 것. 버튼이 이미 있습니다. 그러나, 자바 스크립트 태그 바로 여기, 그것은 OK, 내가 원하는 말한다 ID에 의해 요소를 얻을 수 있습니다, 그래서 검색 버튼은 OK, 내가 원하는 말한다 그 버튼이 변수를 매핑합니다. 그래서 변수는 단지입니다 그 버튼에 액세스 할 수있는 쉬운 방법. 나는 그것을 클릭하면 그리고, OK, 말 버튼, 내가 그 요소를 클릭 그래서 만약, 이 요소를 의미한다 버튼, 나는 그것을 클릭하면, 그때는 함수를 호출 할 수 있습니다. 여기에 그 익명 중 하나입니다 우리에 대해 얘기했다 기능. [01:19:03] 그냥 몇 가지 함수를 호출합니다. 그 함수에서, 기본적으로 뭔가 우리는 많은 경고를 본 적이있다. 당신은 검색 버튼을 클릭합니다. 그것은 기본적으로 버튼을 가질 것입니다. 당신은 그것을 클릭합니다. 당신은 경고를 얻을. X 아웃. 이게 다예요. 그래? [01:19:16] 청중 : 그래서 당신은 넣을 경우, 스크립트 당신의 HTML에서 [들림], 스크립트 태그? [01:19:21] 다빈 : 당신은 스크립트를 넣을 수 있습니다 머리에 태그 직선 당신이 온로드를 가지고 있기 때문에. 그것은 당신이 클릭을 가지고도 있습니다. 그래서 때까지 기다릴 것 당신이 뭔가를 클릭합니다. 그러나 온로드는 안전을 위해 그냥, 만들 당신의 HTML에 확인 모든로드 사전에. 그래? 당신은 뭔가를 말하고 싶은? [01:19:40] 별점 : [들림]. 다빈 : 네. [01:19:42] 청중 : 그래서 온로드 피한 변수 검색 버튼을 정의 다만 document.getElementById를 말하여 검색 버튼 점 [들림]. [01:19:49] 다빈 : 확실히,하지만 당신의 캐릭터는 거대한 가져옵니다. 정확히, 그래서 이것은 단지이다 그래, 당신을 위해 쉽게합니다. 네? [01:19:56] 청중 : 우리했다 window.onload를 만들? 또는 document.ready? [01:19:58] 다빈 : 네, 있습니다. 예, 나는 거기에 확인됩니다. [01:20:02] 별점 : 그들에 대해 신경을하지 않는. [01:20:03] 다빈 : OK, 그래서 나는거야 어쨌든 당신에게. 그러니까 기본적으로, 그냥 일반적으로, 그래서 window.onload 모든, 당신의 DOM 때까지 대기 당신의 HTML,로드합니다. 그것은 당신의 이미지를로드 할 때까지 기다립니다. 그것은 모든로드 될 때까지 기다립니다. document.ready, 그것은 단지 당신의 DOM이로드 될 때까지 기다립니다. HTML은 한 번 모두가, 일단 당신의 DOM이 실행을 시작합니다. 즉, 유일한 차이점입니다. [01:20:23] 별점 : 빠른 정신은 여기에서 확인. 그래서이 가지 볼 수 있습니다 한 줄의 코드처럼, 오른쪽? 이 window.onload 이니까 잔뜩 같습니다. 자바 스크립트를 읽을 때이 사실 또는 거짓, 기능이 실행됩니다. 거짓. OK? 여기에 무슨 일이 그냥 통과하고 익명의 기능으로이 기능을 window.onload합니다. 그리고시는 것입니다 실제로 실행 얻을? 하면 윈도우가로드됩니다. 즉 이벤트입니다. 그래서 우리가있어 jus 보라 t의 일이 바로 이전에 대해 얘기? 그래서 이벤트가 발생했을 때, 함수가 발생합니다. 의 onclick과 같은 일. [01:20:59] 다빈 : OK, 누군가가했다 그래서 멀리 document.ready. 그러나 이것은 정확한 same-- 될 것입니다 청중 : 달러 기호, 그 document.ready입니다. 그게 바로 가기입니다. [01:21:07] 다빈 : 아, 그렇습니까? 좋아, 그럼이 방법 document.ready, 바로 가기. 하지만이 window.onload과 동일 그 작은 차이를 제외하고 나는에 대해 말했다. 그리고 이것은 jQuery를이다. 그래서이 정확한 동일 이 자바 스크립트입니다 건 말인데 .... 이것은 일부 사람들이 생각하는 단지 ... 더 가벼운 무게로, 세련된 버전 그 많은 기능을 가지고 것을 당신은 아마 사용됩니다. 그래서 똑같은 일을한다. [01:21:34] 그래서 가지 종류의 지적합니다. 다른 예에 따라서, 우리 , document.getElementById를했다 그래서 우리는이 긴했다 얻을 것 문자열 그것이 무엇 이건 ID로 요소입니다. 그건 바로 여기이 호출로 대체합니다. 그래서 당신은, 달러 기호를 참조 당신은 인용, 해시 태그를 참조하십시오. 해시 태그는 항상 선택이다. 그것은 OK,이 ID과 관련이있다 말한다. 클래스의 선택은 무엇입니까? [01:21:56] 청중 : 점. [01:21:57] 다빈 : 점, 맞아. 당신은 단지에가는 경우 태그가 무엇을 선택? 그것은 정확하게, 그냥 태그입니다. 그리고 당신은뿐만 아니라, 여기에 사용할 수 있습니다. [01:22:05] 별점 : 그리고 태그에 의해, 우리는 같은 의미 DIV, 예를 들어, 또는 두부. [01:22:08] 다빈 : 또는 신체 또는 p 또는 그런 건, 그래. 그래서 여기, OK, 대신 말의 document.getElementById를, 이것은 단지 동일한 것입니다. 그냥 jQuery를, 그것은 짧은입니다. 그래서 간단합니다. 그럼, 더 이상 onclick을 바로 클릭하십시오. jQuery를 함수는이 함수를 호출합니다. 경고 정확한 동일합니다. 그래서 조금이다 작은, 또는 조금 짧은, 작은 bit-- 사람들이 생각 이 쓰는 조금 쉽게, 쉽게 조금 이해합니다. 그러나 이것은 jQuery를이다. 많은 사람들이 조금 얻을 비트 혼란과 걱정 그들은 OK, jQuery를, 생각 자바 스크립트 다릅니다. 나는이 기억해야 다른 두 가지. 그것은 아니다. 나는 다른 구문의 의미. 그러나 jQuery를 자바 스크립트입니다. 그냥 겉으로 야 더 나은 버전이 에 더 쉬울 수 있습니다 사람들이 사용하는 것으로 알고 있습니다. 별점 : 네, 될 솔직히, 그 달러 기호 당신이 jQuery를에서 볼 것을, 그건 그냥있어 JQuery와 정의 함수의 이름입니다. 그것은 특별한 일이 없습니다. 그것은 함수의 이름 만입니다입니다 단지는 달​​러 기호를 정의 할 수 있습니다 좋아한다. [01:23:03] 다빈 : 네, 그래서 이것에 대해 이야기했다. 몇 가지 유용한 것들. 나는 예전의 퀴즈에서 찾고 있었다. 지난 몇 퀴즈, 그들은했습니다 이 같은 일을 사용했다. 그래서 document.ready, 그래서 안부를 확인 전에로드하는 일을 시작합니다. ID를 선택하거나 선택 클래스, 그냥 좋겠 일부 클래스, 최종 견적을 점 인용합니다. 당신이 그래서 만약, 제출 형태와 전화를 제출 양식 후이 기능을 제출합니다. 값, 그래서 내가 양식을 먹었지 제출, 사용자 이름과 같은, 이메일, 뭐든간에. 나는 텍스트 상자를했다. 그래서 난 그 텍스트 상자에 입력하고 있습니다. 글쎄, 당신은 값을 얻으려면 텍스트 상자에서, 당신은 도트 발을 사용합니다. 그리고, 여기 아래, 도트 HTML은 동일 문서 도트처럼 에는 getElementById 점 innerHTML을. 그래서 반환 것 당신이 ID에서 HTML. 여기에서, 당신은 일부를 사용 ID 또는 어떤 점 HTML. 즉, 해당 요소의 HTML를 얻을 수 있습니다. 당신은 그 변경을 원하는 경우 HTML, 당신은 뭔가를 전달할 수 있습니다. 그래서 당신은 그 점 HTML처럼, 그리고 것 내부, 시세, 새로운 HTML 또는 뭔가. [01:24:05] 별점 : OK, AJAX 그래서. 정말 이해하기 좋아 AJAX 정말 잘. 그래서 나는 당신에게 사람을 원하는 정말 잘 AJAX를 이해합니다. 당신이 경우에 때문에, 당신은 꽤 많은거야 모든 것을 이해하는 그 HTTP 함께 할 수있다, PHP, 자바 스크립트를 모든 때문에 AJAX 함께 제공됩니다. AJAX는 언어가 아닙니다. AJAX는 기술이다. 그리고 다른 도구를 많이 사용합니다. AJAX는 의미 비동기 자바 스크립트 XML. 그래서있어서, 언어 데이터. [01:24:36] 우리가 사용하는 주요 언어 그래서 AJAX 모든 것을 트리거하려면 모든 것을 처리하기 위해 나중에 자바 스크립트입니다. 그것과 관련된 이유 자바 스크립트에 매우 가깝습니다. 그리고 비동기입니다 우리는 그것을하지 않기 때문에 한 번에 우리는 페이지를로드 할 때. 이것은 우리가 할 수있는 일 병렬 가지 일을. 뒤에 주요 아이디어 AJAX는 당신이 원하는 것입니다 그것은 몇 가지 구체적인 정보를 얻을 수 있습니다. 예를 들어, 당신은 새로운 입력하는 만약 사용자 이름을 등록 사용자 이름, 내 사용자 이름은 ABC123입니다. 그리고, 끝에 양식 제출을 클릭해야합니다. 그리고, 서버에 가야했다 다음, 데이터베이스에 있는지 확인 ABC123 이미있다. 이미이 있다면, 그것은 말한다, 이미 데이터베이스의 사용자 이름입니다. 그리고, 당신은 작성해야 전체 양식 밖으로 다시. 그리고 정말, 정말 나쁜했다. [01:25:23] 그리고 사람들은 말한다, OK, 왜 우리는 할 수 없습니다 그냥 확인하는 작은 HTTP 요청을 할 사용자가이 데이터베이스에 있는지 사용자는에 있었다 전에 전체 양식을 제출? 그래서 예를 들면, 사용자는 ABC123를 입력​​ 완료 그냥 서버 조금에게 가자 비트는 단지 참 또는 거짓을 얻을 있는지 확인하기 위해 서버에서 그 유효한 사용자 이름이나 아니다. OK, 그래서 주 중 하나 요즘 여전히 AJAX의 사용합니다. [01:25:49] 다빈 : 그래서에서, 빠른 실제 jQuery를의 Ajax 호출, 당신은 당신이 있음을 의미 할 수 그것이 동기가되고 싶어요. 이 작업을 수행하지 않아야합니다. 하지만 당신은 그렇게 할 수 있습니다. 당신이 그런 짓을한다면 어떤 일이 일어날까요? 음, 예를 들어, 경우있어 뉴스 또는 무엇이든을 받고, 브라우저는 기다려야 할 것입니다 그 전체 호출이 완료 될 때까지 대신시키는의 다른 할 바로 후 가지를 클릭합니다. [01:26:14] 별점 : 그것은 더 이상 통과 아니에요. 세상에. 죄송합니다! 아, 그래. "과거 클라이언트 요청에 필요한 웹 사이트의 전체 내용. " 그게 내가 말 했어요. 그것은 보낼 수있게 해준다 추가 GET 또는 POST 하지 않고 요청 우리의 브라우저를 다시로드합니다. 하루의 끝에 그래서, 우리는있어 실제로 HTTP 요청을하는 여기에 자바 스크립트를 사용하여. 전에하기 때문에, 우리는 자바 스크립트를 사용 이미 제공된 HTML을 변경합니다. 그리고 지금, 우리는 인터페이스를 사용할 수 있습니다 또한 웹 서버와. 이런 방법 우리는 클라이언트가 있습니다. 다빈은 클라이언트입니다. 그리고 그는 모든 JavaScript를 사용 HTML 때문에 실행하는 바보입니다. 자바 스크립트는 똑똑하다. 그래서 다빈 다빈 자신의 스마트가 부분과 그의 바보 부분. 그는 이제 자신의 스마트 일부를 사용하는 것입니다. 그는 자바 스크립트를 사용하는 것 요청, 예를 들면, ABC123이 있는지 여부 데이터베이스 나하지. [01:27:04] 그래서 다빈, 제발, 당신​​ 단지 나에게 HTTP 요청을 보냅니다. 감사합니다. 그래서 그는 단지 HTTP 요청을 보냈습니다. 당신은 보이지? 그리고 그것은 단지 같은 방법 모든 HTTP 요청이 전송된다. 브라우저, 구글 크롬 또는 뭔가입니다 다빈의 것을 볼 것 HTTP 요청을 보내려고 약간의 흠 도움이 될 것. 그리고 갈거야 서버에있는 모든 방법. 이제, 서버는해야 할 것입니다 여기 PHP, 또는 임의의 다른 언어. 그냥 보통의 HTTP 요청에 좋아한다. 그것은 거의 정상적인 HTTP 요청입니다. [01:27:31] 그리고, 서버 확인을 말할 것입니다, 다빈이 있는지 여부를 확인하기 위해 나를 원한다 이 ABC123 데이터베이스이다. 모델에 이야기를 이동합니다. 모델은 아니다 말한다. ABC123 좋은 사용자 이름입니다. 그리고, 웹 서버는 것입니다 파일의 형태를 렌더링하는 PHP를 사용합니다. 말 그대로 그냥 파일 수 그 아니오 "거기에"예 "를 포함, 또는, 또는 그런 일. 그것은 어떤 파일이 될 수 있습니다. [01:27:54] 내가가는 것 같은이 될 수있다 다빈에게 오리의 사진을 보내 이 데이터베이스에 그리고 만약 햄스터의 사진을 보내 그것은 데이터베이스에 없으면. 그 종류의 것 바보,하지만 작동합니다. OK, 그래서 나는 다빈에 오리를 보낼 수 있습니다. 다빈은 오리를 얻었다. 그리고 지금, 누가 것입니다 오리를 처리하기 위해? 다빈의 스마트 일부 다시, 그래서 자바 스크립트, 오른쪽? 자바 스크립트가 전송 요청 및 자바 스크립트 요청을받을 것입니다 어떤 형태로 해석. [01:28:22] 그리고 이러한 의미에서, 그것은에 무슨 나는 괜찮아요 오리 경우, 확인을 말한다. 햄스터 경우, 내가 갈거야 이미 아니, 사용자 이름, 대답 데이터베이스에 존재합니다. 그러나 일반적으로, 당신은 아니에요 오리를 보낼 것. 당신은 보낼거야 약간 똑똑 뭔가. 그리고 우리가 사용하는 XML이다. 그리고 최근에, 우리는 JSON을 사용합니다. JSON은 자바 스크립트입니다 객체 표기법, 어떤 기본적으로 당신을 얻을 수있다 전체 자바 스크립트 객체. 그리고 당신은 좋아, 파일에 넣어 너희들 보았다 CS50 객체입니다. 당신은 파일에 넣어, 그리고 당신은 다빈로 보내. [01:28:53] 이 경우, 나는 것 자바 스크립트 객체를 만들 다만, 사용자가 존재, 예 말한다. 또는 사용자가 더 존재. 그리고 그에게 다시 보낼 수 있습니다. 왜 JSON? 사람 때문에 사람이이받는 것 자바 스크립트를 사용할 것 응답을 처리한다. 그리고 자바 스크립트는 잘 때문에 작동 그것은 자바 스크립트 객체 표기법라고. 오른쪽? 그래서 그는 단지 함수를 호출 얻을 수 있습니다 응답에서이 좋은 객체입니다. 그리고, 그는 여부를 알 것 그 사용자는 데이터베이스 나 아니다. [01:29:22] 당신이 볼 그래서, 그것의 모든오고 함께 웹 서버에, 다음 요청에 하나의 HTTP있다 하나의 HTTP 응답과 모든 것을. 그래서 반드시 너희들을 이 AJAX 호출을 이해 그것이 도움이되기 때문에 모든 이해 개념의 우리에 대해 얘기하고. [01:29:37] 그래서 여기에 예입니다 jQuery를 함께 AJAX의. 그리고 여기, 우리는 가져 오기 JSON으로한다. 그래서 우리는을 얻으려고 노력하지 않을 여기 고양이, 또는 오리의 이미지입니다. 우리는 JSON 파일을 얻기 위해 노력하고 있습니다. 그리고 우리는 때까지 기다립니다 그것은 할 점, 이루어집니다. 그게 내가 응답을 기다리고있어 의미합니다. 그것은 다소 시간이 걸릴 수 있습니다. 그런 다음 약간의 로딩을 참조하십시오. 당신은 당신의 웹 사이트에 그렇게합니다. 그래서 다음 수행하고, 도트 무엇 이 일을 끝낼 때 어떻게됩니까? 당신은 익명으로 전달 기능, 그냥 우리가 이전에보고 좋아한다. 일 때문에 그냥, 이벤트 마우스 또는 무엇이든을 클릭하는 것과 같은, jQuery를합니다. 그래서 당신은이 기능에 통과 데이터, 텍스트 상태 및 jqXHR. 그리고 기본적으로, 그건 그냥 몇 가지 변수 당신은 나중에에 사용할 수있는 HTTP 요청의 상태, 이 무슨 데이터 당신에게 다시 보낼 수 있습니다. 그래서 당신은 나중에 그것을 해석 할 수 있습니다 그리고 그것으로 의미있는 일을. 실패 할 경우에, 때 실패 할 수 있습니다? 음,시는 HTTP 요청 준다 당신 같은 500 일. 그런 다음, 당신에게 말할 것 상태였다 장애의 종류, 사물의 모든 종류. 당신은 확인해야 두 경우를 처리하기 위해, 그렇지 않으면 프로그램이 미친 간다. [01:30:42] 다빈 : 그래서 그래,이 정확히 당신은 당신의 마지막 페이지 세트에 본 것을. 실제 AJAX 호출은 가져 오기 JSON입니다. 즉, 호출입니다. 그리고, 도트 수행은 같다 이 성공적인지는 확인합니다. 그것이 성공하면, 당신이 원하는 데이터 작업을 수행합니다. 당신은 상태에서 돌아올 JSON 요청 데이터. 그게 당신이 돌아올 것입니다. 그래서 당신은 당신의 P-세트에서 기억한다면, 당신의 많은 데이터 브래킷 같았다 난 또는 무엇이든, 도트 링크 또는 제목입니다. 다시 무엇이든을오고 그 JSON에서 어떤 필드는 그 JSON 객체에 그건 당신이 돌아가고거야. 데이터는 돌아가고 것입니다. 텍스트 상태, 뭔가 그 당신은 무슨 일이 있었는지 알 수 있습니다. 그리고, jqXHR, 그건 단지 jQuery를 XML의 HTTP 요청. 그건 그냥 객체처럼. 그리고 게이브 말처럼, 실패​​합니다. 별점 : ABC123의 우리의 작은 예에서 즉 데이터베이스에 있다면 단지 확인 또는, 데이터는 당신이 뭔가 될 것 없습니다 데이터 점의 사용자 이름이 존재하는 경우, 할 것, 당신의 PHP가 생성 된 것을 이는 데이터는 도트 사용자 이름은, 존재한다면 내가 경고하는거야, 사용자 이름이 이미 존재합니다. 그렇지, 난 그냥하자거야 사용자가 양식을 작성 진행합니다. OK, 보안, 멋진. [01:31:50] 다빈 : 저를 원하십니까? [01:31:52] 별점 :이 하나를 좋아한다. 그래서 뭔가 익숙한 보이는. 우리는 거의 완료. 그래서 그냥 예입니다 너희들은 클래스에서 보았다. 여기 argv1 사용하고 있었다. 즉, 명령 줄 인수 같아요. 그리고 우리는 복사를하고는 mem하고 그 크기 (12)의 버퍼에. 문제는 여기에 무엇입니까? 버퍼 오버플로! 우리는 크기 (12)의 버퍼를 갖고 있기 때문에. argv1 억의 크기를 가질 수 있습니다. 우리는 어떤 경계 검사를하지 않습니다. 그래서 우리는 많은 메모리를 복사 할 수 있습니다. 그리고 우리는 특히있을거야 이것에 대해 나쁜. 우리는 그건 무엇을 할 수 아주, 아주,이 경우 의미? 네? 청중 : 억 가지의 일부 반환 실행 코드를 포함 [들림]. 별점 : 그렇지. 그래서의 종류 사람들이 사용 일 예를 들어, 아이폰 탈옥한다. 그런 종류 그래서. 당신은 장치를 만들 수 있기 때문에 당신이 좋아하는 코드를 실행합니다. 수정, 그래서 수정이 용이하다. 그냥 경계를 확인합니다. 당신은 널 (null) 때문에 확인 우리는 항상 널 확인 때 우리는 문자열을 처리하고 있습니다. 그리고, 당신은을 문자열 길이 전에. 그리고 문자열 경우 길이는 유효한 문자열 0 내에 길이, 12, 우리는 좋은거야. [01:33:03] 다빈 : 당신은 확인하지 않는 경우 널 (null), 진짜 빨리, 어떤 일이 일어날 것인가? 그것은 세그먼트 오류 것입니다. 왜 잘못 SEG 것인가? 당신은 널 (null)에 strlen 함수를 호출하고 있기 때문에. 별점 : 네. 하나를 사용하여 참 또는 거짓 암호는 좋은 생각이다. [01:33:19] 청중 : 거짓. [01:33:20] 별점 : 거짓. 많은 암호, 큰, 긴 사람을 사용합니다. 자물쇠 아이콘은 보안을 보장합니다. [01:33:26] 청중 : 거짓. [01:33:27] 별점 : 거짓. 그것은 아무것도 의미하지 않는다. 그냥 아이콘입니다. SSL은 방지 중앙 공격에 남자. 청중 : 거짓. 별점 : 거짓. OK, 그래서 모든 사람들은 false입니다. 니스. [들림] 얘기를 원하십니까? 네 차례. 다빈 : 공격의 유형, 중간에 남자가있다. 중앙 공격에 남자가 무엇입니까? 청중 : [들리지]. 다빈 : 당신을 보낼 경우 HTTP 요청, 그들은 바로,이 작업을 수행 할 수 있습니까? 하지만 당신은 HTTPS를 보내는 경우, 아마이 작업을 수행 할 수 없습니다. 많은 점있다 연결 함께. 당신은 라우터가 있습니다. 당신은 DNS 서버를 가지고있다. 누군가가 물리적를 할 수있는 경우 당신이 보내는 것을 참조 그래서 누군가는 할 수있다 실제로 사이에 도착, 클라이언트 및 서버와는 당신이 보내는 것을 볼 수, 이 팀은 중앙 공격에 사람이다. 그래서 당신은에서 얻을 위해 노력하고 무엇을보고 서버, 또는 악화 할 수있다 알아요 ... 당신은 볼 수 있습니다 쿠키 또는 그런 일. [01:34:16] 예를 들어, 그래서 당신은 그가, SSL을 사용하지 않는 볼 수 있습니다 세션 ID 쿠키. 그리고 이것은 세션 하이재킹이라고합니다 그는 당신의 ID 쿠키를 볼 수 있기 때문에, 다음 그는 그에 갈 수있어 웹 사이트 및 당신을 척. 단지 PHP에서 좋아하기 때문에, 기억 우리가 로그인 할 때, 우리는 무엇을해야합니까? 우리는 ID와 동일한 세션 ID를 설정합니다. 그래서 당신을 식별합니다. 당신은 당신의 포트폴리오를 볼 수있는 이유 그리고 모든 사람 다른 사람의 포트폴리오. [01:34:38] 글쎄, 내가 그 쿠키를 얻을 수있어 경우, 그때 그 페이지에 로그인 할 수 있습니다. 그리고, 난 그냥 물건을 볼 수 있습니다 사고, 물건 판매를 시작. 그래서 세션 하이재킹입니다. 하지만 당신은 그렇게 할 수 난 ... 안 중앙 공격에 사람을 사용할 수 있습니다 심지어는 SSL을 사용하는 경우. 하지만 당신은 할 수 없을 것이다. 그들은 SSL을 사용하는 경우, 당신은 세션 공중 납치 할 수 없습니다. 왜? 그것은 모두 암호화되어 있기 때문에, 오른쪽? 그것은 암호화되어있는 경우, 나는 아직도 남자 야 중간, 난 여전히 당신의 데이터를 얻을. 그건 괜찮아요. 그러나이 암호화되어있어. 그래서 정말 사용할 수 없습니다. 그래서 두 가지입니다. [01:35:09] 진짜 빨리, 크로스 사이트 요청 위조. 링크가 있다면 그건 단지 그 링크는 무언가를 당신은 어떻게해야한다고 생각하지 않는다. 그래서 예를 들어, 링크는 경우였다 주식을 사거나 주식을 판매하는 것, 당신은 몰랐어. 당신은 링크를 클릭 구입 요청을 보내 또는 뭔가를 판매하는 당신이 할 말은하지 않았다. 거기가. [01:35:25] 크로스 사이트 스크립팅, 여기 이렇게, 당신은, 변수 q를 통해 전달하고 대신 일종의 통과 가치, 어쩌면 q는 이름과 같다. 그래서 그 대신 Q의 등호를 전달 다빈 또는 같은, 당신은 HTML을 사용하지 않는 경우 특수 문자, 당신 경우 그것의 확인이 탈출하지 않습니다 좋아, 그럼 내가 대신에 전달할 수, 여기서 내가 말하고있는 가정 해 봅시다 같은 인쇄 또는 무엇인가, 나는 여기에 스크립트 호출을 전달할 수 있습니다. [01:35:51] 그럼 대신 다만 변수를 받고, 나는 다음이 스크립트 호출을 실행합니다. 해당 스크립트 내부 그래서 전화, 그것은 무엇을합니까? 문서 도트 위치, 즉에거야 문서의 위치를​​ 변경합니다. 그래서 재거야 다른 곳으로. 그것은 나쁜 사람에라고 이 예, 아주 좋아. 단어를 생각 할 수 없습니다. 그리고, 무엇도 있어요 더 내가 갈거야 것입니다 일부입니다 설정 한 다음 쿠키에 변수 I는이 웹 사이트에 있습니다. 나는 그것이 동일하게 설정거야 문서 도트 쿠키에. 따라서, 내가 갈거야 쿠키를 훔치는. 그리고 재거야 웹 사이트에 몇 가지 정보 것을 당신은에 액세스 할 수 없습니다. 당신이이기 때문에 그리고이 모든 일이 발생 하지 당신이 무엇을 본 적이 탈출. 그래? [01:36:29] 청중 : 그래서 단지에 그것의, 즉 명확하게 vulnerable.com 그 이에 취약합니다. 이 링크가 표시 할 수 있도록 특정 페이지에. 누군가는 그것을 클릭 vulnerable.com로 이동합니다. 당신은 vulnerable.com에 쿠키를 가지고있다. 의 페이스 북이 있다고 가정 해 봅시다 취약, facebook.com 그래서. 당신은 당신의 페이스 북의 쿠키가 있습니다. 이 무엇을하고 있는지, 당신이있어 facebook.com에 가고, 즉시 리디렉션있어 당신은 badguy.com하기 그러나 쿠키 정보를 포함. 그래서 빠른 리디렉션입니다, 하지만 페이스 북의 쿠키 그 리디렉션에 포함되어, 그것은 어떻게 [들리지]입니다. 별점 : 네, 거기에 아주 평균 일 이이 있다면 사람들이 할 수있는. 예를 들어, 페이스 북은 허용하는 경우 모두가 사용자 이름을 변경합니다 그들은 어떤을하지 않았다 정신 검사, 당신 때문에 자바 스크립트 일을 삽입 할 수있는 햄스터에 이미지를 변경합니다. 그리고 그 같은 자바 스크립트를 삽입 당신의 페이지를 볼 모두에. 당신의 페이지를 볼 그래서 모두 사용자 이름에 같은 일이있다. 그리고이 바이러스이기 때문에, 그것은 기하 급수적으로 확산. 다빈 : 우리는 마지막을 건너 뛸 것 하나, 그리고, 우리는 완료. 그래서 이것은 또 다른 예이다. 그래서이 사실은 별 것 아니라고입니다 자신의 SQL 테이블을 탈출. 그래서 당신은 그것을 삭제할 수 있습니다. 그래서 당신은 일을 탈출 할 수 있습니다. 즉, 앞의 예였다 크로스 사이트 스크립팅. 늦어서 미안 조금 달렸다. 내일, 죄송합니다! 내일, 우리는 근무 시간이있다. 11:00 Cabbot 8:00에 따라서 근무 시간. 근무 시간은 엄격하게 퀴즈 질문.