DAVID 마란 : 좋아, 우리는 다시 수 있습니다. 흥미 진진한에 대한 그래서 결론적으로, 우리의 마지막 섹션 웹 프로그래밍, I에 우리는 일반적인 용어로 사용하는 거라고 생각했다 몇 나머지 항목을 촬영합니다. 의 마지막에 따라서 일, 우리가 실제로 할 것이다 손 - 웹 프로그래밍의 조금 자바 스크립트라는 언어. 그리고 나는 우리가 살펴 보겠습니다 생각 이미지와 관련된 뭔가 뭔가를 발견 몰래 이미지에 숨겨진, 또한 구글을 살펴 지도 API, 응용 프로그램 프로그래밍 인터페이스, 뭔가로 소프트웨어 유형의 대표적인 그건 점점 및 오늘 자유롭게 사용할 수 있습니다. 그런데 왜 우리는 살펴하지 않는다 이 세계에 성분에서 우리는 가지 봤는데 것을 당연한 복용 존재 약간의 시간에 대한 데이터베이스. 지난 날과 우리가 가정 한 반 우리는 데이터베이스에 액세스 할 수 있지만, 데이터베이스는 어떤 문제를 해결합니까? 그것은 우리를 위해 무엇을 하는가? 그것은 무엇입니까? 청중 : [들리지] 데이비드 마란 : 모든 정보를 보유, 정보의 확인, 그리고 어떤 종류의 당신은 그것을 넣어 수 있습니까? 청중 : [들리지] DAVID 마란 : 모든 정보 당신이 그것을 넣어, 당신은 다시 얻을 수 있습니다. 그건 사실이다. 전형적인 웹 기반 사이트 또는 웹 응용 프로그램, 정보의 종류, 특히, 당신은 넣어 수 있는가? 청중 : [들리지] DAVID 마란 : 사용자. 따라서 사용자는 무엇인가? 청중 : [들리지] 데이비드 마란은 : OK, 등록 사이트의 사용자. 그리고 그것은 무엇을 의미 하는가 저장하는 사용자 정보? 어떤 사용자를 구성? 사용자는 무엇을 가지고? 청중 : [들리지] DAVID 마란 : 네, 개인 데이터, 나는 그것을 좋아한다. 좀 더 정확하게 할 수 있습니다. 따라서, 사용자는 전형적으로 이름을 가지고 사용자는 다른 무엇을 할 수 있습니까? 청중 : [들리지] DAVID 마란 일 : addr-- OK, 그래서 이름, 성. 그게 좋다. 사실, 이제 해결하자 즉 그것은 무슨 일 때문에 수있는 기회를 엽니 다 토론, 여전히 더. 이름, 성, 성. 어떤 종류의 ID. 그 밖의 무엇? 나도 전에 다른 것을 들었다. 이메일, 우편 주소. 그래서이 일시 중지하고 지금 생각해 보자 우리가 데이터베이스에 저장하고없는 것을, 그것은 아마도 이후, 왜하지만 ...하지 분명 당신이 사용자를 등록하면 해당, 당신은 몇 시간 동안 그들을 기억하고 싶다. 당신은에 그것을 원하지 않아요 다만 RAM에 저장 될 그래서 forgotten-- 수 의는 방법에 초점을 맞출 수 있습니다. 이 글은 그 밝혀 데이터베이스의 세계, 요즘은 적어도 두 가지를 거기. 뭔가, SQL 데이터베이스라고 구조화 조회 언어, 또는, 귀엽게라는 SQL없는 NoSQL에. 그리고 후자 인 예를 무엇 수도 객체 지향 호출, 또는 객체 저장소 데이터베이스 그 개체를 저장하고,하지, 변명 나 같이 우리는 곧 행을 볼 수 있습니다. 그래서 우리는 그냥 잠시 초점을 맞출 것 이 중 첫 번째, 즉, SQL 데이터베이스, 그건 때문 경우 그래서 익숙한 이미 사람에게 엑셀 사용한 사람 또는 Google 스프레드 시트 또는 Apple 숫자 또는 표준 스프레드 시트 프로그램, 또는, 동등, 또는 더 정교, 마이크로 소프트 같은 액세스 또는 Oracle MySQL의 또는 PostgreSQL을, 또는 모두의 구현을위한 제품 이름입니다 다음 아이디어. 관계형 데이터베이스는 단순히 행과 열이 뭔가. 열과 행함으로써, 말 그대로 무언가를 의미 같은, 그래서 여기서 우리는이있을 수 있습니다 필드와 여기에 해당 유형의 이름을 지정합니다. 그리고 실제로, 저를 보자 이제 이러한 매핑 시작한다. 그래서 사실, 나도 몰라 왜 별도의 차트를 받았다. 이제이 간단한 유지하자. 우리는 바로 여기 있습니다 우리 테이블의 시작 이 필드의 이름 이러한 데이터 타입은, 및 유형에 따라 나는 다음을 의미한다. 이 숫자인가, 그것은 문자열입니다 단어와 같은 짧은 문자열 이 단락은, 그것은 인 이미지와 같은 바이너리 데이터,? 그리고 그냥이 애타게하자 떨어져 그냥 잠시. 그래서 이름, 번호, 문자열, text--의 큰 덩어리 청중 : [들리지] DAVID 마란 : 네, 그래서 문자열입니다. 그리고 데이터베이스 맥락에서, 우리는거야 일반적으로이 문자 필드를 호출합니다. 난 그냥 우리가있어하지만 지금 문자를 말할 것이다 잠시이 문제를 수정하는 것. 문자 필드입니다. 성 아마 동일합니다. 성별? 남성 또는 여성, 그것은 너무 숯불 필드 수 있습니다. 그것은 하나 견적을 수, 인용을 끝내 "남성"또는 인용, 인용을 끝내 "여성" 아니면 m 또는 F를 수 있습니다. 좀 더 포괄적하려면, 당신은 제 값을해야 할 수도 있습니다 또는 아예 다른 분야의 어떤 종류. 그리고 당신은 참 거짓을 사용할 수 있습니다. 필드는 남성 호출 될 수도 당신은 참 또는 거짓 말할 수 있습니다. 그러나 반드시 캡처하지 않습니다 당신이 할 수 있습니다 모든 정보. 다른 유형의 거기 밖으로 그래서집니다 필드의 여기에 유용 할 수 있습니다 그 일반적인 데이터베이스에서,라고 이 문자 필드 ENUM, 하지만 당신은, 디자이너에 도착 가능한 값을 열거, , 인용, 인용을 끝내 "남성"을 인용 등 등을 맺다 "여성"과. 그래서 어떤 값 당신의 데이터베이스에 실제로 문자 기반이지만, 이는 이들 값 중 하나이어야한다. 우리는 아마를 원하지 않을 것이다 이름 또는 성 이름을 열거. 그렇지 않으면 우리는 것 이름으로, 열거하기 말 그대로 모든,에서 유래 가능한 성과 이름. OK, ID 있도록 ID는 무엇을해야 하는가? 네, 그래서 아마 번호. 그럼 고수하자 지금은 그, 수. 그리고 숫자로, 숫자이다 지금은 조금 너무 광범위. 두번째의 끝 일, 우리 같은 느낌 좀 더 정확합니다. 번호는 같은 의미 할 수도 있고, 그것을 1.236 뭔가를 할 수 있습니다. 그리고 아마 아니다 우리는 ID가 무엇을 의미. 우리는 아마 ID에 의해 무엇을 의미합니까? 청중 : [들리지] DAVID 마란 : OK, 아 그래서 어쩌면 심지어 수 없습니다. 아마 실제로 고유 식별자입니다 즉 사용자 이름과 같은 문자열입니다. 그래서 절대적 일 수있다. 나는 누군가 아마 생각 하지만, 숫자 의미했다. 그래서 그와 함께 머물 수 있습니다. 수의 종류는? 어떤 것은 더 정수를 precise--. 따라서 숫자 0와 같은 1, 2, 3, 그래서 우리는이 정수 전화 할게. 그리고 그렇다하더라도, 나는 할 수 하찮은 일에 속 태우고 수, 그건 정말 그냥 당신이 원하는 일반 정수입니다. 당신은 아마, 음의 값을 원하지 않는 해서, 그냥 이상한 느낌. 당신은 아마 양의 정수를 원한다. 그래서 당신은 또한 표현할 수 데이터베이스에 그, 하지만 지금, 우리는 정수를 말할 것이다. 이메일? 이것은 무엇을 그냥 ... 아마? 청중 : [들리지] 데이비드 마란 : 그것은 이메일입니다, 하지만, 바로 문자인가? 그냥 같은 펑키 문자가 에 "에서"기호 또는 뭔가 다른, 하지만 여전히 문자 필드입니다. 그리고 우편 주소? 문자 필드입니다. 그래서 좋은 시작은,이다하지만, 의 지금은 좀 더 정확하게 할 수 있습니다. 그래서 그것은 밝혀에서 해당 데이터베이스, 당신이 자주 더 세련 이상 선택의 여지가 이런 일 버전. 사실, 일반적인 SQL 데이터베이스, SQL, 또는보다 일반적으로 관계형 데이터베이스, 행 데이터베이스 과 열, 당신이 자주 의 유형뿐만 아니라 지정하세요 field-- 나 일부 객실 here--을 만들어 보자 또한 길이. 제 이름은 어떻게됩니까? 나는 D-A-V-I-D, 생각합니다. OK, 나는 그것을 얻었다 아마 반 같은 기분을 상하게 방에있는 사람들이, 오른쪽, 사용자의 이름은 다섯 이상이므로 문자, 그래서 오 조금 이기적인 것 같다 그리고 순진, 그래서 더 나은 가치는 무엇인가? 10, 모든 권리, 나는 생각한다 우리는 방에 OK입니다. 13? 30? 이유는 적용되지 않습니다 이전의 접근 때 배열과 메모리에 대해 얘기했다? 왜 난 그냥 1000과 같은 말을하지 않습니다? 아무도 이름은 것입니다 1,000 이상이 될 수 있습니다. 다시 밀어 넣습니다. 청중 : [들리지] DAVID 마란 : 그래, 그건 낭비, 오른쪽, 특히 대부분의 이름이있는 경우에만 5 ~ 10 15 자, 그건 매우 낭비입니다. 그래서 당신은 무엇인지? 이 어려운 질문의 종류이다. 이제, 우리는 확실히 영어를 분석 할 수 있습니다 그리고 다른 언어의 이름 잘, 무엇을하고, 파악 average-- 평균 정말하지 않습니다 최대는 무엇 us-- 도움 아마 우리가 정말 원하는 것을. 그러나 우리는 심지어이 밝혀 여기 유형을 통해 몇 가지 선택. 일반적인 SQL 데이터베이스에서, 당신 숯불 필드라는 것을 한 그리고 또한 VARCHAR, V-A-R, 변수 문자 필드. 그리고 그 차이는 이것이다. 숯불 필드, 당신 디자이너, 사전에 지정해야 필드의 정확한 길이. 그래서 아마 이름 등 20 종류의 안전 느낀다. 에 일부 인터넷 검색을 할 필요가 있습니다 그만큼 실제로 안전되는지 확인합니다. (21)와 이름은 아마 거기 자,하지만 지금은 20 가정 안전합니다. 숯불 필드는 의미 것 데이터베이스에서 당신을 20 항상 20 문자를 사용합니다. 지금은 그 단지 D-A-V-I-D, 15 인 경우 그냥 공백 문자로 가고있다, 하지만 당신은 여전히​​ 20 바이트를 사용하고 있습니다. 포함 된 VARCHAR 필드 반대로 수단 문자열은 최대 20 자이어야한다 하지만 다섯 만 있다면, 만 사용하는거야 A에 대한 다섯, 아니면 육 마지막에 특수 값, 그 공처럼 우리 것을 논의 문자의 끝을 의미 메모리에 순서. 그래서 때 생각 당신은 문자를 선택할 수 있습니다 VARCHAR 대, 그 트레이드 오프를 제공? 문자는 많은 문자, VARCHAR를 사용 많은 자보다 더 이상 사용하지 않습니다. 청중 : [들리지] DAVID 마란 : OK, 당신은 때를 알고 문자열의 길이 꽤 설득력 그냥 경우 문자, '원인을 사용하는 당신은 그것을 내려 놓고, 그것을 알고있다. 그리고 어쩌면 그 우편에 대한 사실 코드, 미국, 적어도, 02138, 항상 다섯이 될 것 당신까지 문자는 대시 사를 추가합니다. 하지만 당신은 몇 가지 값을 가질 수 있습니다 이는 항상 길이를 알고있다. 아니면 상​​태 기호, 뉴욕에 대한 NY 등, 및 MA 미국 매사 추세 츠합니다. 어쩌면 당신은 어떤 경우가 있습니까 곳은 완전히 합리적인 그러나 그 논리에 의해, 왜 우리는 심지어이 지나친? 왜 우리는 사용하지 마십시오 VARCHAR, 그리고, 우리는거야 항상 어쨌든 두 개의 문자를 사용하거나 항상 어쨌든 다섯 문자를 사용할 수 있습니까? 왜 단지에 대한 VARCHAR를 저장하지 모든 것을, 그 논리에 의해? 캐치가 있어야합니다. 청중 : [들리지] DAVID 마란 : 수 뭔가 잘못 물품. 그래서 사실이다. 하지만 그렇다하더라도, 그들은 사용할 수 없습니다 내가 할당보다 더 많은 메모리. 나는 아직도 마지막이 의 길이에 걸쳐 말 그래서 그들은 실수 할 수 없습니다 그런 실수,하지만 좋은 생각. 그것은 더 미묘하지만 매우 관련있어 우리의 토론, 실제로 배열 이전 목록을 연결. 이 경우, 데이터베이스 밝혀 그것은 모든 값임을 알 고정 된 길이의 경우에도 그 값의 일부가 비어 있습니다 일종의 미학적 빈, D-A-V-I-D 후 15 공백, 그것은 밝혀 그 모든 경우 필드는 동일한 길이, 배열과 같은 많은 그 물건을 모두 가지고 있었다 다시 그래서 다시 다시 다시하는 당신은 단지 1을 더한 다음에 얻을 수 값 데이터베이스 테이블 같은 생각. 캐릭터의 모든 경우 문자열은 동일한 길이이고, 당신은 랜덤 액세스라는 무슨있다. 모든 문자열의 경우 길이 20, 당신은하지 않습니다 수행 플러스 1 방금 수행 플러스 20, 플러스 20, 플러스 20, 플러스 20, 당신은 매우 빠르게 스크롤 할 수 있습니다 또는 모든 데이터를 검색 할 수 있습니다. 가변 문자 필드 반대로 항상 20 자이 없습니다. 그런 다음 20가있을 수 있습니다 15 다음 19 다음 10, 그래서 검색 할 경우 그것을 통해, 당신은 단지 맹목적 할 수 없습니다 다음 중 하나에 도착하는 20 바이트를 추가합니다. 당신은 말 그대로을 검색해야 때문에 데이터 구조의 가장자리 당신이 경우, 비정형입니다. 그것은 종류의 간다 밖으로 기반 문자열의 실제 길이에. 그래서 당신은 길이 등을 알고있을 때 카림은 문자 필드를 사용하여 말한다 당신은 것을 얻을 수 있기 때문에 존재의 효율성 빨리 그것을 통해 검색 할 수 당신이 데이터를 찾을 때, 그렇지 않으면 변수를 사용합니다. 불행하게도, 나는 더 좋은 대답이 없다 이름이 있어야 할 시간에, 하지만 같은 뭔가 이름, 나는 말할 것 포함 된 VARCHAR 일반적이다 그것은 않을거야 때문에 모두를위한 고정 길이 될 수 있습니다. 20, 나도 몰라, (20) 약간 타이트을 느낀다. 그냥 50, 50을 가정 해 봅시다. 정말 당신을 비용하지 않습니다 50 대신 40을 말할 훨씬 더, 그러나 어떤 점에서, 당신은 필요 판단 통화를 할 수 있습니다. 아주 일반적인 솔직히, [하시나요? 역사?] 이유는 과도한, 비록 때문에 얼마 전에, 255 말을하는 것입니다 인기있는 데이터베이스 시스템과 같은 MySQL은, 무료 오픈 소스 도구 그 많은 회사 같은 심지어 페이스 북은 사용 이 최대 기본이었다 그래서 사람들은 그것으로 갔다. 그래서 무리, 그러나 우리는거야하지 좀 더 직관을 사용 50 확실히, 그건, 말 아마 조금 과도. 성별, 내가 열거 좋아한다, 그리고 우리는 따라서 수 남성 또는 여성을 열거, 아니면 더 효율적으로, m 또는 F 또는 어떤 다른 기호이지만 열거가 좋은 선택 것 같은 느낌이 든다. 명확하게하기 위해, 성 그냥 VARCHAR 될 수있다, 우리는 모든 수 같은 좋은 사람을 동의 항상 같은 값을 넣어. 남성 또는 여성 또는 이것 저것. 그러나 문제는, 우리가 할 수 있다는 [들리지] 제안 등의 실수를 이전에 다른 컨텍스트입니다. 우리가 실수를하면, 우리가 얻을 수 우리의 데이타베이스는 잘못된 값. 그래서 데이터베이스에 대한 좋은거야 오라클과 MySQL과 다른 이들처럼, 이 마지막을 가지고있다 방어 곳의 층 당신의 DBA, 데이터베이스 관리자, 누구든지 우리처럼이 테이블을 설계하고있다 구두이고, 둘 수 있었다 열거 장소에 그 지정하여 그 방지 남성, 여성, 그래서 아무도 다른 어떤 프로그래머가 실수로 수 다른 값을 삽입합니다. 그래서 이것은 좋은 일이 될 것입니다. 이 기능입니다. 그래서 ID, 숫자 ID를 가정하면, 그것을 아마 양의 정수 여야합니다. 그리고 우리는 때때로해야합니까 길이를 논의 할 수있는 기회. 당신은 일반적으로 않을 것 여기에 번호를 지정, 대신 지정합니다 이것은 INT, 또는 큰 int이며, 그들이있는 한 일반적이라고합니다. 그러나 일반적으로 정수 것,의이 말 4 바이트 수 있습니다. 그리고 4 바이트의 경우, 그 얼마나 많은 비트입니까? 청중 : [들리지] DAVID 마란 : 32 비트. 그래서 우리는 얼마나 많은 사용자를 가질 수 있습니다 우리의 데이터베이스 그들 모두는 ID가있는 경우 이 ID는 고유해야합니다? 32 비트는 우리가 패턴을 의미 하나, 둘, 셋, 넷, five-- 제로의 때문에 얼마나 많은 다른 패턴 (32)이있는 경우와 사람이 당신은 할 수 있습니까? 그와 같은 일이 질문 32 두를 무엇입니까? 그것은 큰 숫자의 그 나는 아주, 바로 얻을 수 없다 그러나 나는 그것이 약 40 억 알고있다. 그래서 이것은 데이터베이스 테이블 수 있다는 것을 의미합니다 사십억 사용자를 가지고 있고 그게 다입니다. 그래서 이것은 재미있다 디자인의 의미. 회사의 알맞은 수 아마 너무 많이, 결정 자신의 사용자 테이블 갖는 때문에 40 억 사용자가 드문 문제입니다. 이것은 페이스 북 스타일의 일종이다 문제가 아닌 일반 회사의 문제. 하지만 당신은 트랜잭션 로그가 어쩌면 경우 또는 지속적으로 데이터의 일종 데이터베이스에 기록됩니다 절대적으로 수십억을 가질 수있는 행 수십억하고, 당신은 그것을 위해 정수를 사용 무슨 일이 가능한 한 빨리 일어날 당신은 번호 40 억 행에 도착 다음은 삽입하려고 4,000,000,000번째 1, 말하자면? 나는 숫자를 조금 단순화하고 있습니다. 당신은 삭감 할 수 있습니다, 당신을 의미 어떻게 든 처리해야합니다. 그리고 컴퓨터가 일반적으로 어떻게 할 것인지, 심지어이 아침부터 그것에 대해 생각, 당신은 4 비트의 값이 있으면 , 1, 1, 1, 1 등, 이는 그냥 아침 넥타이 함께 오후에, 무엇을 이 숫자는 이진 표현합니까? OK, 우리는 그것을 쉽게 만들 수 있습니다. 이 번호를 무엇 진 대표? OK, 우리는 그것을 쉽게 만들 수 있습니다, 무엇을 이 바이너리를 대표 하는가? 대상 : 세. DAVID 마란 : 세, 때문에 우리는 사람이 column-- [웃음] 아휴! 우리는 사람 열을했다 그리고 조로 열입니다. 그래서, 참으로, 그 가정 우리의 [? 내야는?], 32 비트 없었다 하지만이 비트는 우리가 할 수있는이었다 사용자의 수가 0, 1, 2, 3의 카운트 그리고, 우리는 종류의 것 다시 사용자 00에 다시. 그래서 이것은 일반적으로 발생하는 것입니다. 혹시 expression-- 들었어요 경우 당신이 잔 마셔요 경우 아마 가지고 있지만, 정수 오버 플로우, 당신을 당신의 모든 비트를 틀지 유지 가장 큰 가능한 값이 될 수 있습니다, 다음은 비트에서있어, 일반적으로 어떤 일이 일어날까요? 왜 00 말합니까? 음,이 세 가지입니다. 어떻게 4는 표현합니까? 나는를 표현하려면 어떻게 이진 숫자 4 하시나요? 청중 : [들리지] DAVID 마란 : 그래 One--, 자체 (100) 말을하지 않습니다, 그것은 잘못이 있기 때문에 내포하지만, 1-0-0. 그래서 그 번호 1-0-0은 참으로 올바른,하지만 당신은 두 개의 비트가있는 경우, 당신은 정말 무슨 짓을? 당신은 00 이월했습니다. 그리고 실제로, 그것은 무슨 일이 일어날 지입니다. 사실, 당신은 생각할 수 이 더 친밀하게 대해. 당신이 기억하는 경우, 무엇을, 십육년 전 세계 때 종료했는데 Y2K 문제가 발생했습니다. 이유가 있었다? 그런데 대부분의 컴퓨터에 대한 합리적인 의사 결정, 등 번호를 저장했다 1975 년 또는 1999 년 두 자리 숫자를 사용하여 컴퓨터 메모리이다. 물론 그래서, 무슨 일이 당신이 2000 년에 도착하면, 당신은 그래, 오히려이로 이동, 또는. 그래서 2000 년에 가서,하지만 경우 당신은 단지 보이는 두 자리 숫자를 사용하는 올해처럼 00 그래서 당신은 롤오버했습니다. 그리고 이것은 왜 많은 시스템 필요한이 시간에 업데이트된다. 와 그래서 그는 말했다, 회사 등 페이스 북은이 상대로 실행합니다. 를 처리하는 유일한 방법 그래서 상황은, 솔직히, 그것을 기대하는 것입니다. 아니면 가장 깨끗한 방법에 이 상황을 처리 그렇지 있도록 예상하는 것입니다 나중에 변경할 수 있습니다. 그래서 그 대신 8 바이트, 그거 알아? 나는 미래 지향적 될거야 여기에, 그것은 비록 그 조금 낙관적 우리는 40 억 할거야 우리의 웹 사이트에 한 사용자. 하지만 그냥 8 바이트를 사용하게하거나, 일반적으로 될 64 비트, 매우 기술적, 큰 정수를했다. 그리고 그것은 단지 당신이 할 수 있음을 의미 전화 번호에 더 많은 숫자. 그러나 이것은 중요 디자인 결정, 당신이 번호를 선택하면 그 때문에 표현의 너무 적은 비트가 당신은 실제로 만들 수 있습니다 소프트웨어의 버그. 좋아, 그래서 마무리하자 이메일 및 우편 주소. 그래서 이메일, 얼마나 오래해야 이메일 주소가 될? 50. 난 정말 아무 생각이 없지만이다 아마 같은, 그렇지 않으면 하나가 않을 것 때문에 너무 길어질 경우를 쓰기 때문에, 50, 의 지금은 그것으로 가자. 주소, 얼마나 그되어야 하는가? 청중 : [들리지] DAVID 마란 : 그것은 아니에요 단지 우편 번호, 그래도. 주소, 나는 들었다. 그래서 1 덜컹 덜컹 울리다 광장처럼, 쉼표, 캠브리지 질량., 쉼표, 02138. 그리고 사실, 저 그냥 가져 보자 여기에 약간의 워크 시트입니다. 이처럼이 느낌 놓친 기회. 우리는 1 덜컹 덜컹 울리다 광장이있는 경우, 쉼표, 캠브리지 MA 02138, 우리가 더 잘 할 수 같은 느낌 단지 우편 주소보다. 왜 우리는이 조금 폭발하지? 나는 무엇에서 무엇입니까? 우리는 대신에 무엇을해야 여기에 우리의 행에 대해, 아마? 청중 : [들리지] DAVID 마란 : 그래, 그렇게하자 street_number를 호출, 그리고 밑줄은 그냥 일반적이다 공간 모양을 갖는 방법, 하지만 실제로,이 아니다. 거리, 다음 죄송 city--? 청중 : [들리지] DAVID 마란 : 우리는 그렇게 할 수 있습니다. 라인 한 줄이. 왜 우리는 계속됩니다하지 않습니다 지금은 단순하게, 하지만 절대적이다 허용 결정. 그리고 다음 주, 다음하자 지금은 작은 미국 중심의 일 그냥 이유만으로, 우편 번호을 그것은 흥미로운 실수로 이어질 수 있습니다 여기에 또는 문제. 그래서 지금 우리의 주소입니다 가정합니다. 그것은 그 조금 더 짜증나 우리는 모든 더 필드가 그러나 지금 우리는 태그를 추가 할 수 있습니다 일 좀 더 나은. 그래서 지금 거리 번호 아마 그것을해야, 숯불 안? 그것은 무엇을해야 하는가? 청중 : [들리지] DAVID 마란 : 아마, 수 다시 정수처럼? 큰 정수? 당신은 아마 살지 않는다 40 억 메인 스트리트에서 또는 그런 미친 아무것도. 그래서 정수 아마 미세하지만, 사람이 지금과 같은 주소에 거주 1A 덜컹 덜컹 울리다 광장, 또는 1과 1/2? 이런 일들은, 불행하게도, 존재 경우에도 당신은 거기에 거주하지 않은 이러한 이상 현상이있다 아파트 1A, 1B, 1C, 등. 그래서 당신은 무엇을 알고, 우리는 아마 정수와 이동 안, 그렇지 않으면 우리는거야 일부 판매를 잃는. 문자 필드, 아마? 나는 얼마나 오래 모르겠어요. 아마 될 것 아니에요 그래서 10 일, 그렇게 오래. 아무도 쓸 않을거야 긴 숫자, 아마. 그러나 다시, 우리는 아마해야 그에게 더 생각을 제공합니다. 아마, 구글 약간 연구를, 그러나 우리는 지금 우리의 용기와 함께 갈 것입니다. 거리, 문자, (50)는 모르겠어요. 어떤 시점에서, 아무도 않을거야 봉투에 쓰기 위해, 너무, 너무 거기에 아마 거기에 약간의 상한. 시는 동일해야합니다, 그래서 50을 char. 국가는 지금 미국의 중심이 될 수 있습니다. 그래서 너무 친절, 목록이 될 수 있습니다 판단 호출 상태. 그것은 두 문자처럼 될 수있다. 그래서 사실은, 어쩌면, 나는 문자를 말하고 있었다. 아마 VARCHAR 의미, 그냥 효율성, 그러나 우리는 다시 올 것이다 잠시 그 결정. 국가를위한 길이 2의 문자 수 있습니다. MA와 같은 그들이 가지고있는 미국의 경우, 매사추세츠, NY, 뉴욕, 뉴저지, 뉴 뉴저지, 등등. 그래서 그 고정 될 수있다. 워싱턴 DC 용 DC. 하지만 내가 생각하는, 올리비에, 당신 또 다른 방법을 제안 하였다. 청중 : [들리지] DAVID 마란 : 네, 그래서 그것은이다 입력 거의 성가신, 하지만 열거가 더 적합 할 수 있습니다 이러한 방식으로 인해 미국에서 적어도 당신은 열거 지루하다면,하지만 수 당신은 당신의 데이터베이스에 한 번만 그것을 할 결코 다시 생각해야 그것은, 50 두 문자 코드. 그래서 열거를 좋아한다. 때문에의가 그 고수하자 그것은 일종의 더 엄격을 적용합니다. 그리고 우편 번호? 나는 앤드류가에 대한 생각을 가졌다 고 생각 청중 : [들리지] DAVID 마란 : 네, 5 개 구. 그냥 간단하게 할 수 있습니다. 그냥 지금은 다섯을한다. 하지만 어쩌면 난 그냥 수 오른쪽 정수를합니까? 내가 할 수있는,하지만 당신은 무엇을 알고, 내가 만든 어떤 의미에서 한번 실수. 몇 년 전, 나는에서 마이그레이션 된 Gmail로 마이크로 소프트 아웃룩, 및 Outlook은 수출의 방법이 Excel 파일 등의 모든 연락처, 값 파일을 쉼표로 구분 된 CSV 파일. 그리고 나는 실수를 두 번을 클릭하는 생각, 나는에 수출을 다운로드하면 있는지 확인 내가 예상대로 보였다. 내가 저장 또는하자 공격해야합니다 에서 킥 또는 뭔가를 자동 - 저장합니다. 그때 가져올 때 때문에 그것은 Gmail에, 모든 일했다. 그러나 년 동안이 일을하고, 나는 10 년 전,이 다섯 가지 않았다 나는 아직도이 친구를 찾는거야 같이 주소. 왜? 청중 : [들리지] DAVID 마란 : 그것은했다 0, 음, 오히려 그것을 로 전체의 우편 번호를했다 숫자, 따라서 그것의 의미 선도적 0 는 의미가 없다. 그리고 2138 내 우편 번호 것으로 보인다. 그리고 이것은, 솔직히, 성가신 엑셀입니다 나는 기본적으로 생각된다 기능, 그것은 단지에 의미가있어 경우에도 수 텍스트, Microsoft Excel에서 나에게 도움이 될 수 있습니다 것을 결정한다, 그리고 아, 그리고 난 단지 숫자를 참조하십시오. 의 숫자 이러한 치료를 할 수 있습니다. 그리고는 앞에 0을 자릅니다. 나는 하나님 께 맹세, 모든 커플 달의 난 주소를 찾을 수 있습니다, 과 강박 장애의 일종에서, 나는 돌아 가야 과에하면 0 추가도 결코 I 불구하고 사람들이 문자 또는 아무것도를 보낼 수 있습니다. 하지만 난 여전히이의 잔해를 찾는거야. 그래서이 말을하는 것입니다 이것은 좋은 생각인가? 아니, OK 때문에 사람의 매사 추세 츠,이 지역에서, 를 선도하는 O를해야 할 것입니다. 그럼 등으로 가자 문자, 아마, 오. 그리고 여기, 우리를 실현 열거 우리를 사용할 수 10,000을 열거 할 수 가능한 우편 번호, 아마처럼하지만 그 느낌 혜택, 등의 선을 넘어. 당신은 입력이있는 경우 그 데이터베이스에있는 데이터의 양 뭔가에 대해 보호 할 수 있습니다. 그래서 문자는 입력 할 수 실현 우편 번호와 같은 H-E-L-L-O에서, 가있는 것은 분명 숫자입니다. 그래서 어떤 방법으로,이 없다 일반적인 데이터베이스, 단지 숫자를 지정하고 오래 만 5 자, 그래서 우리는 할 겁니다 코드에서 그렇게 할 수 있습니다. 우리는 PHP에서 그렇게 할거야 또는 Java 또는 어떤 언어 우린 서버에서 사용하는 집행 제약 조건의 종류. 와우! 그래서 질문이 아직 좋아? 의 다른 디자인 결정을 내릴 수 있습니다. 그것은 당신 밝혀 또한 선택에 도착, 하는 SQL 데이터베이스를 설계 할 때 또는 일반적인 관계형 database-- 경우 다시, 관계형 단지 행과 열을 의미 그것은 당신이 당신의 data--를 구성하는 방법은 그리고,이 의미가 있음을 인식 나는에 오해의 소지가 있었어요 ,이 drawing-- 해요 있음 스키마라고 무엇인가 데이터베이스 테이블. 이처럼 table-- 사양 하지만 시간이 올 때 실제로 데이터를 저장, 우리는 여기에 단지 예하여이 작업을 수행 할 수 있습니다. 나는 때문에, Excel을 열어 갈거야 엑셀은 나에게 행과 열을 제공합니다. 그리고 그 정확히 오라클과 MySQL과 다른 도구 나 줄 것이다. 그래서 난 그냥 사용하는거야 그것은 토론을 위하여. 내가 앞서 가자 최대 열려면 여기에 대표적인 문서, 조금 확대. 예를 들면 그래서, 우리의 헤더는 지금 이름, 성, 성별, ID, 이메일, 거리 번호, 거리, 으악. 거리, 도시, 주, 단지 대한 화면에 적합합니다. 그래서 이것이 의미하는 것은 그 때 사용자는 먼저, 내 웹 사이트를 등록 이 같은 될 것 다윗은, 마란은, m은의 1을 가정 해 봅시다 malan@harvard.edu, 거리 번호는 것 1 덜컹 덜컹 울리다 광장, 캠브리지, MA처럼, 02138, 다음 등 때문에. 그래서 내가 말할 때 관계형 데이터베이스 또는 SQL 데이터베이스 행과 열이며 나는 이것을 의미한다. 즉, 실제 데이터가 저장된다 행 및 열이다. 이것은 단지 우연의 일치입니다 우리가 얘기했다 것을, 난 그냥 그리기했다 행과 열에서 아웃. 이것은 단지 스키마이며 무엇보다 중요한 정의. 여기에 이​​러한 필드 그래서, 또는 동등이, 이는 당신이 생각하는 분야는 나는 사용자있어 경우에 검색 할 가능성이있어 아니면 데이터베이스 관리자를 요하는 경우? 마찬가지로, 어떤 필드 I 오전 실제로 다른 검색하려고? 청중 : [들리지] DAVID 마란 : 이름, 그래 그렇게 나는, 그래 that-- 사실을 좋아한다 이메일은 매우 일반적인 수 있습니다. 죄송합니다, 당신은 이름을 말했다. 그래서 봐 주길 다시, 우리는있어 이러한 종류의 추상적 인 얘기. 나는 왜 좋겠 모른다 이름을 검색 할 수, 하지만이 경우 합리적인 느낌 당신은 사용자를 검색하고 있습니다. 아마 확인, ID, 상태. 그리고 그것은 미끄러운있어 경사, 내가 할 수 있기 때문에 시나리오 곳을 고안 어쩌면 내 상사가 나에게 요청했다, 얼마나 많은 사람들 우리는 우리의 사이트에해야합니까? 얼마나 많은 여성 우리는 우리의 사이트에해야합니까? 그리고 그 시점에서, 당신은 할 수 있습니다 너무, 성별 필드를 검색하려면, 다른 아무것도 없습니다. 그래서 트레이드 오프는 여기에있다. 다시 말하지만, 거기에 더 정답 만이 대부분의 SQL 데이터베이스의 기능입니다 인덱싱, 이에로 알려진 당신, 디자이너의 데이터베이스 관리자, 사전에 결정을 얻을 수있는 데이터베이스 최적화해야 필드들이 에서 검색합니다. 당신은 매우 순진 최적화 말할 수 이것은, 즉,이 최적화 최적화 그이 최적화, 데이터베이스는 것 밑에서 몇 가지 마법의 일을 후드와 같은 방식으로 일을 할 당신이 검색 다음에 이러한 필드에, 그것은 사실 빨라집니다. 이 가능합니다. 그것은 그 자체를 취소하지 않습니다. 그러나 지불 가격이 있어야합니다. 당신이 만약 순진, 이상 - 열정적으로 말하자면, 색인이 모든 필드, 그래서 수 있도록, 말하자면 모두 효율적으로 검색, 당신은 아마 어떤 가격을 지불? 청중 : [들리지] DAVID 마란 : 성능. 당신은 무엇을 의미합니까? 그런데 성능, 최소한의 내가 논의하고있어 상황은 이제 더 낫다. 즉, 인덱스의 정의입니다. 그것은 빠른 검색을 할 것입니다. 그래서 시간이 말하자면, 감소한다. 청중 : [들리지] DAVID 마란 : 공간. 그래서 다시, 이들은 공통 거래이다. 나는 당신의 검색 속도를 수 있지만입니다 당신에게 공간을 더 바이트 비용 것. 왜? 음, 기본적으로, 경우에 우리는 전혀 없다 이 빨간 별이 인덱스 없음, 말인지으로, 당신은 어떻게 검색하나요 이 데이터베이스의 이름을 검색 하시나요? 그럼 그려 보자 우리 이 예에 대한 관심. 우리는 다윗과 스컬리와 카림이있는 경우 이러한 행 아르와 등, 예를 들어. 그럼 정확히 할 수 있습니다. 스컬리는 여기에 다음 우리는, 카림, 그리고 아르와가 그리고 다른 사람, 당신이 아닌 경우 인덱스 말하자면 정의해야 당신이 할 수있는 최선의 선형 검색입니다. 당신이 아르와 검색하면, 우리는 아니에요 바로 점프 할 수있을 것 그녀의 빨리. 우리는 정상을 시작하려고하고 있고 바닥에 모든 길을 갈, 하지 우리의 원래는 달리 마이크 스미스 예. 그러나, 내가 말할 경우,이 봐, 데이터베이스, 인덱스 이름 필드를, 다음은 뭔가를 할 것 애호가 뭔가를 지원 이진 검색 등을들 수있다. 아마 그 자체 이진 검색하지 않습니다. 데이터베이스는 다른 사용하는 경향 B-나무라는 데이터 구조, 이진 나무와 혼동하지 않도록, 그냥 빠르게 검색 할 수 있도록하는 것이 자연 대수 뭔가. 하지만 가격은 그 구축 비용을 지불 기능, 메모리의 데이터 구조 더 바이트입니다. 그래서 몇 메가 바이트 걸릴 수 있습니다, 몇 기가 바이트, 누가 알 겠어? 이 데이터에 따라 달라집니다. 어떤 점에서 그래서, 당신이 결정해야, 아마 일반적인 경우는 아니다. 그래서 실제 공통 무엇인가 경우, 당신은 정말 선택해야한다면, 좋아하는 분야는 무엇을 할 수 있는가? 이메일. 그리고, 이메일 때문에 이메일처럼 이론적으로, 고유해야합니다. 그래서 일반적으로, 당신은 때를 알고 사전에 필드 중 하나가 것을, 또는 고유 것이다 좋은 필드 해지는 경향 에 검색 그렇게 때문에하는, 때 당신이 뭔가를 검색, 다시 하나를받을거야 또는 응답을 제로 다음 작업이 완료됩니다. 당신은 계속 필요가 없습니다 아직 다른 사람을 찾고. 그리고 여기이 경우, 이메일, 두 번 등록 할 수 없기 때문에 너무 오래 동일한 이메일과 함께 좋은 하나입니다. 의 정의에 의해 ID, 컴퓨터 과학의 세계, 당신은에 대해 얘기하는 경우 더 나은 고유 한 ID. 즉, 내포의 일종 ID 또는 식별자. 그리고 이들의 나머지는있을 수 있습니다 ,의는 가진 자에게 좋은 부르 자 하지만 정말 필요하지 않습니다. 그래서 데이터베이스에, 당신은 인덱스를 지정 하지만 당신은 더 정확하게 할 수 있습니다. 당신은 헤이, 데이터베이스, 확인, 말할 수있다 것을이 테이블의 모든 ID는 고유합니다. 심지어 프로그래머를 못하게 실수로 중복 이메일에 넣어 또는 ID 번호를 중복. 열거 같은 많은 마찬가지로 당신이 우리를 보호 이러한 낮은 수준의 방어를 할 수 있습니다. 그리고 데이터베이스 설계에 어떤 의미, 재미의 종류이다, 당신이 방어를 할 수 있기 때문이다. 당신은 일종의 작업하는 것으로 가정 끔찍한, 끔찍한 프로그래머 당신은 많은 방어를 넣어하려면 , 데이터를 보호하는 당신이 할 수 하지만 동시에 당신이 원하는 그들이 더 잘 수행에 도움 어떤 선택하여 필드에 대한 최적화 할 수 있습니다. 하지만 당신은 반드시 그것을 할 수 없다 우리와 같은 진공 가지 여기에 있습니다. 당신은 무엇을 알고있어 그 일반적인 경우는 주도했습니다. 개발자는 경우 주소록을 구현, 당신은 잘 할 수 있도록 할 수 있습니다 거의 모든 필드를 검색하려면, 그냥 응용 프로그램의 성격에 의해. 그래서 어쩌면 당신은 지출 그 추가 공간. 오른쪽, 질문? 네. 청중 : [들리지] DAVID 마란 : 아니 청중 : [들리지] DAVID 마란 : OK. 청중 : [들리지] DAVID 마란 : 아, 그래서 방식으로 이야기 지금은 완전히 언어 무신론자입니다. 그래서 우리는에 대해 지금 이야기 더 일반적으로 관계형 데이터베이스, 또는 SQL은 더 일반적으로 데이터베이스. 청중 : [들리지] DAVID 마란 : 더 나은 단어 사용하기 어떤 언어로 사용할 수 있습니다. 그래서, C를 자바 스크립트 코드를 작성할 수 있습니다 코드, C ++ 코드, 자바 코드, 루비 코드, 이는 모두는 이야기 데이터베이스 및 실행 쿼리. 사실, 그건 나쁘지 않아 예를 들어 쿼리에 SEGUE. 그리고 다시, 우리는로 이동하지 않을거야 Java 또는 C ++ 또는 더 이상 그 어떤 것도, 하지만 SQL에서, 언어는 내가 유지 쿼리 언어는 구조화, 참조, 이것 자체는 프로그래밍 언어, 그러나 더 위해 사용되는 것을 의미있어 놀람, 쿼리 쿼리를 구성. 그게 나는 이것을 의미한다. 데이터를 선택하는 방법 MySQL 데이터베이스에서 당신은 말 그대로 프로그램에 입력됩니다 사용자의 선택 스타처럼 뭔가. 나는이 테이블 가정하고, 이제부터는 사용자라고합니다. 나는 우리가 원하는 무엇이든 그것을 호출 할 수 있습니다 하지만 가지 의미가 있습니다. 그래서 선택은 매우입니다 일반 동사, 당신이 경우 것, SQL에서, 그 문자 그대로 않습니다. 당신은 스타에 대해 어떻게 생각하십니까 이러한 문맥 수단? 청중 : [들리지] DAVID 마란 : 미안 해요? 청중 : [들리지] 데이비드 마란은 : 필요 없음, 그건 보다보다 포괄적, 실제로. 그것은 와일드 카드 문자입니다. 무엇을 의미 거의 항상 스타, 그래서,이 경우에도 수단 데이터베이스에서 모든 것을 선택합니다. 나는이 말을 때, 내 말은 모든 열을 나에게 돌려 줄 내 테이블에서 사용자를했다. 이 호출 그래서, 나에게 결과 집합을 제공합니다. 즉, 나에게 사본을 제공 스프레드 시트, 난에 받고 있어요 것입니다. 그러나 나는 말했다 경우 사용자의 선택 스타 ID 1에 해당하는 경우, 얼마나 큰가해야 내 결과 세트는 수? 또는 동등하게, 얼마나 많은 행이해야 나는 데이터베이스에서 다시 핸드? 아마 하나, 난 정말이있는 경우 고유 식별자로 ID를 처리, 다윗은 그 고유 한 ID가있는 경우, I 오직 하나의 행을 다시 받아야합니다 다윗의 정보를 모두 포함. 나는 말했다 경우이 경우 ID 99 같다, 나는 돌아 가야한다 이러한 맥락에서 제로 행 적어도 순간. 그러나, 나는 정말 상관하지 않는 경우 모든 정보에 대한, 난 그냥 여기서 다윗이 살고 않습니다, 말할 수 있을까? 에서 선택 우편 번호 ID가 1 인 사용자. 이 날에만 다윗의 우편 번호를 선택합니다 코드와 해당 행이 아닌 전체. 내가 왜 대신이 작업을 수행 할 수 있습니다 스타 질의, 와일드 카드? 청중 : [들리지] DAVID 마란 : 그래, 나는 단지 그것을해야 할 수도 있습니다. 그래서 성능은 다시 여기에 대한 대답이다. 왜 더 요청 정보 당신은 필요한 것보다 그것은 바로 함께 모든 경우에도 때문에 당신은 여전히​​, 그 데이터를 복사해야 이 데이터베이스에서, 보일 것입니다 어떻게 든 프로그램으로, 그것은 당신이 경우 그냥 바보 만 숫자의 다섯 필요 행이 아닌 전체. 그래서 어떻게 사용자를 삽입합니까? 사용자가 바로이 가정 처음 등록. 구문은 일반적으로 다음과 같을 것이다. 사용자에 삽입하고, 우리는, 값을 말할 것입니다 그리고, 우리는 가치를 말할 것이다 같은,,,의 말 로렌 스컬리하자 바로 여기에 우리의 제작자. 그리고 다음 필드는 성별입니다. 그래서 우리는 인용, 인용을 끝내 말 것 "F", 우리는 ID가 내가하자 say--거야 그녀는 여기에 사실이 아니다 척 그래서 우리는 이야기 되감기합니다. 그래서이 그녀 ID 될 것이다. 그리고 다음 필드 여기에 그녀의 이메일입니다. 그래서처럼 될 것 등 로렌 스컬리와, 그리고 우리는 단지 점 도트 있습니다 여기부터 멀리 점. 지금은 조금 얻을 것이다 지루한, 그러나 삽입 쿼리 궁극적으로 그렇게 보일 것이다. 나는 제거하려면 스컬리는, 어 - 오, 이제 등록 취소하자 그녀의, 그녀는 그녀의 계정을 삭제, ID 2에 해당 사용자의 삭제, 스컬리를 제거합니다. 아니면 업데이트 사용자가 설정 말할 수있다, 우리가 무엇을 변경할 수의 말을하자? 그녀는 이동하자. 설정 우편 번호는 동일 021-- 아니, 그것은 그녀의 현재의 지퍼입니다. 90210. 유일한 다른 우편 번호 나는 세상에서 알고있다. 그래서 바꿀 것 그녀의 우편 번호는 실제로 code-- 그것은 그녀의 우편 번호를 변경하지 않을 것입니다. 난 그냥 무슨 짓을 한거야? 비록 구문은 아마 새로운 기능입니다. 청중 : [들리지] 데이비드 마란 : 그래, 나는 모두를 이동 비벌리 힐스, 캘리포니아. 그래서 실제로해야 ID 2에 해당 위치를 말한다. 기타 등등. 그래서 SQL이에 대한 모든 것입니다 명령의 종류. ,, 업데이트, 선택 삽입, 삭제 끝이 술어 이 곳의 절은, 말하자면. 그리고 더 많은 당신이 할 수있다 , 그러나 그것은 정말 귀결 간단히, 경우 arcanely, 표현 당신은 무엇을 데이터베이스 싶어요. 그리고 데이터베이스 알아낼 것이다 때 당신은에 로렌 스컬리를 삽입 데이터베이스, 여기서 메모리에 그녀를 넣어 우리는 매우 신속하게 얻을 수 있도록 그녀의 그녀의 이메일 주소를 기반으로 또는 그녀의 ID 번호 등을 기반. 그래, 댄. 청중 : [들리지] DAVID 마란 : 정말 좋은 질문입니다. 이 스크립트는 변경됩니다 오라클 마이크로 소프트 액세스 MySQL로 PostgreSQL을 하는가? 짧은 대답은 달려있다. 이론적으로 매우가 존재 SQL의 중요한 공통의 부분 집합 그 모두를 통해 공유 된 이러한 구현. 그러나, 다양한 제조업체 추가 기능을 가지고 있습니다 자신의 데이터베이스에 어떤 일을 할 수 이러한 기능의 범위를 넘어, 즉, 실제로 파괴 할 수 있습니다. 그런데 개발자 그래서 이에 대비, 그 대신 원시 쓰기보다 SQL 코드는 내가 여기 쓰고 있어요처럼 그들은 대신 라이브러리를 사용, 공통 라이브러리 자체 입니다 종류의 높은 수준과 초록 멀리는 사용중인 제품입니다. 그리고 그것은 당신을 제공합니다 함수와 프로 시저 그래서 당신이 결코 호출하지합니다 실제로 원시 SQL을 작성합니다. 이론적으로, 다음, 당신은 변경할 수 있습니다 오라클 마이크로 소프트에 제품 또는 그 반대 또는 아무것도 다른 사람, 그리고 문자 그대로 코드에 대해 아무것도 변경하지 않습니다. 현실은, 그러나, 당신이 가끔있다 그 결과 같은 기능을 제공합니다. 당신은 제품 때문에을 선택했을 수 있습니다 이들 부가 가치 기능을 가지고, 당신은 지금 막 아니에요 의식적으로 그들을 사용. 그리고 일화, 대부분의 회사는 경향이있다 멀리 자신의 데이터베이스에서 이동하지합니다 않습니다. 이에 좋은 반면 그래서 기능이, 현실 당신이 정밀 검사하는 경우이다 데이터베이스, 당신은있어 아마 다른 변화의 다발을 어쨌든, 당신은 필요하지 않습니다 그 예상해야합니다. 그래서 틀림없이입니다 오버 엔지니어링 문제를, 하지만 정말 상황에 따라 달라집니다. 그러나 이론적으로, SQL은 공유 이러한 다양한 제품에서. 정말 좋은 질문. 네. 청중 : [들리지] DAVID 마란 : 네, 그래서 당신은 데이터베이스를 생각할 수 단지 서버의 끝에있다 , 해당 서버의 내부 일 의 전체 무리입니다 테이블, 행 및 열. 그리고 당신은 다음과 같은 쿼리를 보낼 때 프로그램에서, 당신의 웹 사이트, 자바로 작성된, 루비, 파이썬, 무엇이든, 서버는이 명령을 받고 그리고 그것을 해석 사실상 동일한 방식으로 우리는 함께 이전 논의 해석 언어, 다음 제로에 대한 몇 가지 작업을 수행 0 개 이상의 테이블 이상의 행. 청중 : [들리지] DAVID 마란 : 정확히, 정확하게. 뭔가에 대한 의사 그래서 같은 그이 될 수 있습니다. 당신의 PHP 파일 또는에서 파이썬 파일이나 자바 파일, 당신은 의사 코드가, 또는 것 스크래치와 같은 블록으로, 사용자가 방문하는 경우 처음 acme.com/register~~V, 다음 사용자로 등 삽입합니다. 그리고 우리는이 번역 것 결국보다 구체적인 코드입니다. 하지만 실제로는, 우리 모두가 여기서 빌딩 블록 우리는 몇 가지를 생략하는 경우에도 구현 단계. 그래서 내가 무슨 잘못을 찾을 수 있습니다 우리 놀라 잠시 전했다. 당신은 꽤을 만들었습니다 사용자를위한 완전한 테이블. 인정 하듯이, 우리는 구현할 수 몇 가지 다른 방법으로, 하지만 실제로 우리를 주도 그리고 path-- 아래로 난 당신 말 그러나 그것은 상당히 아마 내 fault--있어 비효율적 인 데이터베이스 구현. 그것은 정상화 아닙니다. 그리고 정규화에 의해 내 말은 있을 것입니다, 시간이 지남에 상당한 중복, 따라서 비 효율성, 그 공간의 낭비이다. 당신이 여기에서 보는 것만, 수에 근거 당신의 공간이 곳 폐기물을 구상 시간이 지남에 온 것입니다, 점점 더 많은 사용자 등록으로 귀하의 웹 사이트에 대한? 어떤 데이터가 중복 될 수 있는가? 청중 : [들리지] DAVID 마란 : 왜을 의미합니까? 청중 : [들리지] DAVID 마란 : 그래. 그리고 이제 목적을 위해 가정하자 오늘의 그건 사실입니다. 알고 보니, 우리는이를 배웠다 어려운 방법, 즉 사실이 아니다. 어떻게 든 여러 도시,이 어떻게 든, 동일한 우편 번호, 있는이 놀라운 직관을 나누기. 하지만, 이제 그 사실 가정하자 그것은 거의 항상 사실 때문이다. 그래서 우편 번호가 있다고 가정 항상 같은 도시와 관련된 종류 및 상태, 합리적인 가정의, 하지만 잘못된, 그것은 밝혀졌습니다. 그러나 합리적인 가정 오늘의 목적을 위해. 그럼 난 캠브리지에 살고 있다고 가정, MA,이 사용자의 표에 따라, 하고 있다고 가정 로렌 스컬리는 매사추세츠 주 캠브리지에 살고 하고 있다고 가정 카림 매사추세츠 주 캠브리지에 살고, 와 아르와는 캠브리지에 살고 MA, 우리 모두 02,138인치 왜 우리는 캠브리지 기억된다 MA, 우리 모두 사 용 02,138? 기억하기 충분해야 하는가? 청중 : [들리지] DAVID 마란 : 그냥 우편 번호. 02138이 존재 그냥 때문에 당신은 우리가 무엇을 할 수 있는지 알아? 우리는 여기에 약간의 공상을 얻을 수 그리고 여기, 또 다른 테이블을 정의 이것은이 될 것입니다 경우 이름이이 유형이 될 것입니다 이것은이 될 것입니다 길이, 이제부터는, 난 나의 도시 표를 호출하는 것. 이것은의 불렸다 물론, 내 사용자 테이블. 그래서 내가 여기에 무슨 이상 넣어야 나의 도시 테이블, 당신은 생각 하는가? 청중 : [들리지] DAVID 마란 : 그래. 그래서 국가와 도시와 지퍼. 그래서 여기 유형, 우리는 말할 것 이것은 다시 문자 5가 될 것입니다 이전의 논쟁의 대상. 이것은 아마도 같이 열거 될 것입니다 전에 도시는 VARCHAR (50) 일 것이다. 그래서 지금은 무엇을 어떻게해야합니까 이 표에서 삭제하기 그 비 효율성을 제거하는 방법? 청중 : [들리지] DAVID 마란 : 니스. 국가와 도시는 사라, 그래서 나는 지금했습니다 잠재적 인 비 효율성을 제거 에 대한 중복, 캠브리지를 기억 MA, 캠브리지, MA, 캠브리지, MA, 캠브리지, MA, 희망하는 결코 변경하려고하지 않습니다. 이 경우에도, 그것은이다 minorly 짜증나는 지금 나는 변경해야한다는 그것은 여러 행에, 여기 반면에, 난 그냥 수 한 곳에서 변경합니다. 이제 트레이드 오프는 아마도 무엇인가? 이것은 매우 편리했습니다. 멋지게 함께 내 모든 데이터를했다. 하지만 지금은 경우 명확하게 무엇입니까? 청중 : [들리지] DAVID 마란 : 정확히, 그리고 난 다행 당신은 단어가 결합 사용 즉 실제로 키워드 왜냐하면 관계형 데이터베이스의 세계 SQL, 그것은 실제 단어의 당신 입력하거나 적어도 전달할 수 있습니다. 그리고 사실, 우리가 지금해야 할 다윗의 전체 정보가 선택 에서 선택 스타 같은 사용자는 on-- 지금, 도시 가입 난 그냥 두 번째 라인으로 이동하려고 해요 이 fits-- users.zip가 같도록 users.ID 1에 해당 cities.zip. 그래서 무슨 일이야? 그것은 찾고 추한,하지만 당신은 종류의 수 그것은 아래로 오른쪽, 위쪽 왼쪽 읽어 보시기 바랍니다. 사용자의 선택 스타 이전과 동일 그러나 자체 사용자에서이 아니다. 사용자가 도시에 가입에서입니다. 나는 무엇에 두 테이블을 조인입니까? 음, 분명히, 사용자 테이블 필드 지퍼, 이 기간은 특별하다 구문은 그 생각을 표현, 이것은 도시 테이블 필드를 압축한다. 나는 그 두 동일 할 하지만 궁극적으로 선택합니다 행만 경우 사용자 테이블의 ID 내 할 일이있는 1과 같다. 그리고 그냥 명확하게하기 위해, 프로그래머, 일반적으로 때 숫자 같은 것을 하드 코딩 1, 때문에 다른 웹 사이트 만 데이비드 또는 지원 첫 번째 사용자, 당신 대신 할 것 ID, 같은 이 나타내는 변수, 뭔가 그 시간이 지남에 변경할 수 있습니다, 유사 앞서 말에 정신 자리의 이러한 종류. 하지만 지금 우리는 단지 1로 하드 코드됩니다. 그리고 이것은 무엇을 의미합니까? 음,이를 시각화 할 수있는 좋은 방법입니다 이 손이 사용자 테이블 인 경우 그, 이 손은 참아입니다 테이블, 우리의 finding-- 종류의 것 내 손가락의 끝은 지퍼입니다 여기, 내 손가락의 끝 여기에 당신이있어, 우편이다 를 연동 가지 당신은 결과를 다시 얻을 수 있도록 진정으로 결합하여 원래 테이블, 일반 필드에서 두 테이블. 그리고 그것은 압축 할 필요가 없습니다. 그것은 다른 대부분의 무엇이든 될 수 있지만 수 우편, 그것은 짧은이다, 때문에 하나의 좋은 둘, 그것은 항상있어 같은 길이, 그래서 거기에 에 실제 효율 무엇 올리비에는 여기에 제안 우편을 감안와, 그리고 [들리지] 우리가 제거 할 것을 제안 도시와 국가의. 따라서이 과정은 정상화라고도합니다. 그에 대한 질문? 그럼 내가 지적하자 이 물건의 종류 그것은 상당히 낮은 수준에도 불구하고, 당신이 생각하는 것이 토론, 당신은 일종의 있어요 잡초 손실, 이 충분한의 표현입니다 개발자를위한 기회는 나쁜합니다. 그리고 사실, 경우에도 우리에 우리가 했어 때 코스는 내가 가르쳐했습니다, 예를 들어, 경험 학부 프로그래머 첫눈에, 웹 사이트 구축, 웹 사이트는 훌륭한 보일 수 있습니다. 그리고 그들은 모두가 기능을 우리가 요청 개발자는 좋은 일을했다. 그러나 그들은 반드시 몰랐다 데이터베이스 설계에 대한 충분한 또는 하드 생각하지 않았다 데이터의 유형에 대한 충분한 사용자의 유형 웹 사이트는해야 할 것되었다 우리는 다음 찾기, 6 개월 후, 그들이 졸업 또는에 이동 한 후, 그 젠장, 우리의 웹 사이트 정말, 진정으로 느립니다. 그리고 난 것에 대해 이야기하고 있지 않다 수백만 또는 수천 명의 사용자. 나는 캠퍼스에서 몇 백 사용자를 의미 그들 모두가 좋아하는, 예를 들어, 의 과정을 물색 동시에, 그들은이야 그 과정 카탈로그를 사용하여 응용 프로그램을 내가 언급 그리고 일이 정말 점점 어떤 인덱스가 없어서 천천히. 아무 빨간 별은 없었다 너무 말, 또는 우리는했으나, 반드시 공통 데이터를 반영 공간의 일부 절감 효과를 얻을. 그래서 개발자를 진료 할 때 또는 데이터베이스 사람 등에 을 통해 생각하는 질문의 종류 짝수, 다른 사람의 코드를 검토 할 때, 반드시 보지, 말을 자신의 모든 코드,하지만 말을 통해, 의 데이터베이스 테이블을 통해 살펴 보자. 당신은 무엇을 저장하는? 그리고 말을 잘하는 대기 분, 당신은 왜 정수를 사용하고 있습니까? 우리는 40 억이있는 경우 이러한 행 1? 의 이러한 종류의 질문 기회입니다 종류의 뒤로 밀어 및 여기서의 감각을 얻을 당신이하고 편안하지 않은 경우 그것은 갖는 사람이 더 많은 기술 이러한 질문을 물어 여부 그 사람은 정말 자신의 물건을 알고있다. 그리고 이것은의 종류 물건도, 그 사람들 인터넷에있는 사람 어쩌면, 독학 있습니다 자주 덜 배우고 당신 때문에 반드시 건너하지 않습니다 당신이 얻을 수 있기 때문에, 많은 데이터베이스 및 실행, 하지만 당신은 읽을하지 않는 한 튜토리얼이나되어 최대 데이터베이스 정규화에 대한 이야기 및 인덱싱 성능, 이 물건의 종류입니다 그것은 당신을 다치게 할 것입니다. 그리고 당신은 생각이나 나쁜 엔지니어 수 오, 그래, 우리는 더 나은 임금, 말할 수 더 큰 데이터베이스에 대한 또는 빠른 데이터베이스 아니면,이 돈을 던져 수직 규모, 반드시 그렇게. 당신은 in-- 가서 당신이 들어갈 수있는 경우 fact-- 및 추가 인덱스 후, 그리고 그것은을 위해 몇 시간이 걸릴 수 있습니다 그 새로운 데이터를 구축하는 데이터베이스 앞서 언급 구조, 당신은 여전히​​, 사실 후에이 문제를 해결할 수 있습니다 이 곳을 것을 구별 시작 나쁜에서 좋은 디자이너 디자이너뿐 아니라 심미적으로, 하지만 성능 현명한뿐만 아니라. 질문? 아니? 다른 유형이었다 NoSQL에 대한 그래서 데이터베이스의 어느 나는 이전에 언급하기 당신은 행과 열이 없습니다. 대신, 당신이 뭔가를 할 것이다 그 같은 좀 더 보인다. 나는 일반적인 구문을 사용하겠습니다. 중괄호가 일어날 여기에 꽤 많이 사용. 당신은 뭔가가있을 수 있습니다 이름 다윗처럼, 당신은 마지막있을 수 있습니다 이름은 따옴표 마란입니다, 당신은 ID가있을 수 있습니다 is-- 실례합니다, whoops-- ID는, 1 이메일은 malan@harvard.edu이고, 나는하지 않습니다 다음 나머지를 입력 귀찮게하고, 다른 것들. 즉,이다 텍스트 표현 우리가 일반적이라고 부르는의 컴퓨터 프로그램의 개체. 그 목적은 일반적으로 키 값 쌍의 집합. 그래서 다시이 반복되는 테마입니다. 우리는 HTML에서 키 값 쌍을 보았다 우리는 지금 키 값 쌍을 보았다 데이터베이스의 문맥, 그리고 우리의 컨텍스트에서 키 값 쌍을 보았다 의, 나는 언어 오늘 아침, 생각합니다. 오고 유지합니다. 그리고 실제로, 그것은 정말 어떤 데이터로 귀결, 데이터 및 메타 데이터, 또는 값 각각 및 키. 그래서 비 관계형 데이터베이스, 뭔가를 기반으로 당신은 그냥 덩어리 개체에 모든 것을 함께하고 넣어 메모리로, 일반적으로 것 같은 그림, 또는이 같은 생각. 그리고 난으로 지금 떠날거야 다른 방법의 일종. 그리고 하나 필요는 없다 다른 것보다 더 나은. 사실, 아주 많이 유행 요즘은 데이터베이스 시스템입니다 MongoDB를하고 레디 스 몇 등 무료로 사용할 수 등의 도구, 하지만 그들은 유행 욕실 점점입니다. 구름들이 추가로 제공하기 때문에 이 표 접근 방식을 통해 기능, 뿐만 아니라 그들은이기 때문에 사용하기 좀 더 쉽게, 당신은 열심히 생각하지 않기 때문에 이러한 디자인 결정의 많은 대해. 장단점 그래서. 그래서 옵션이 있습니다 실현 이상으로 우리는 단지 시간을 보냈다 것. 그래서이 작업을 수행 할 수 있습니다. 의 조금 전환하자 다시 이제 웹 프로그래밍, 그래서 우리는 가지 결론을 내릴 것을 뭔가 오늘 즉, 충전, 약간의 손에의 어제 약간의 차이입니다. 날이 처음에 가자. 그래서 어제 기억 우리는 몇 가지 표준 HTML했다 처음에 한 페이지 만 HTML, 다음 이차적으로, CSS했다 CSS 스타일 시트. 이것은 우리가하지 않았다 새로운 태그입니다 어제 참조하거나에 거주, 스크립트 태그 소위. 당신이 실제로 포함 할 수 있습니다 밝혀 언어 웹에서 자바 스크립트 호출 페이지와 웹을 페이지는 뭔가. 그래서 나는 그 무엇을 의미합니까? 글쎄, 내가 앞으로 그냥 가자 잠시이 코드를 빌려. 내가 Cloud9에 갈거야, 필요 없습니다 아직 거기에 자신을 이동합니다, 나는이 alert.HTML를 호출하는거야. 나는 여기에 내 파일에 붙여 넣을거야. 그리고 그냥 내가 무슨 짓을했는지 명확히하기 위해,하자 나,이 주소로 가서 경고로 이동 당신은 안녕하세요을 참조하십시오. 하지만이 실망의 종류입니다. 내가 뭔가를하고 싶은 조금 다른. 그래서 나는 실제로 이렇게하는거야. 나는 여기 전자에 갈거야 내 스크립트 태그 사이에, ( '안녕하세요, 세계) 경고를 말한다; 그래서 통지 조금 실수,하지만 나는 HTML있어, 내부에있는 A는 자바 스크립트라는 언어, 이은을 불리는 것입니다 함수 호출 또는 프로 시저 호출. 따라서,이 경우, 문자 그대로 동​​사 나는 코드 기능을 호출하고 다른 사람이 쓴. 그래서 기능은이다 경고는, 그래서 해당 페이지로 가자 지금 당신은 지금 새로 고침을 클릭 상호 작용의 약간을 참조하십시오. 그것은 오래된 학교 추한의 종류입니다. 이 종류의 당신을 생각 나게한다 팝업, 아마, 작년의 하지만 뭔가 a를 수행했다 더 많은 프로그램 작은. 보다 그래서 더, 이제하자 더 흥미로운 뭔가. 내가 여기 가서이 제거하자. 그리고 앞서 갈 예정하고있어 우리가 어제했던 것처럼 폼을 만듭니다. 사실, 그거 알아? 나는에 갈거야 의 google.html, 이는 우리 속되는, 어제 시작 이, 어떤을 통해 우리는 고양이 검색 그러나 종류가의 거기에 주목 현재 버전에서 버그. 그것은 고양이 작동하지만 있다고 가정 내가 협조하지 않고 나는 아무것도 입력하지, 나는 단순히 제출을 클릭합니다. 즉, 이상한 행동의 종류입니다. 실제 구글에 데려 갔다 나에게 오류 메시지를 제공하지 않았다. 나는 사용자에게하고 싶습니다 당신은 우리에게 값을 제공해야합니다. 그래서 우리는 이것을 어떻게 할 수 있는가? 그럼 내가 Cloud9과로 다시 가자 내 페이지의 상단에 가자 이 같은 스크립트 태그를 추가, 어디 나는 약간의 자바 스크립트 코드를 입력하겠습니다. 그리고 난 다음을 수행하겠습니다. (document.getelementByID-- 및 리콜 경우 우리가 이전에 대해 이야기하는 것이, 그 함수. 무엇 ID 나는 싶어합니까? 내가 질문을하고 싶지, 내가 갈거야 말은이 항아리처럼 아무것도 동일하지 실제로 나에게 큰 따옴표를 사용하자 단지 consistency--에 대해 아무것도 동일하지 않습니다, 다음 경고 여기 ( "검색어를 입력하십시오"). 그래서 나는 것 같습니다 무엇을해야 조건 같은 것을. 우리는 스크래치에서이 일반적인 생각을 봤어요. 그것은 그 퍼즐의 하나처럼 이처럼 보였다 조각. 그리고 내가 무엇을 말하고 있는가? 자, 여기까지, 난 알 다음을 수행 할 것. 나는이 양식을 줄거야 Q의 필드의 이름뿐만 아니라 어떤 Google에 전달되는,하지만 난 것입니다 그것을 로컬 식별자를 제공하는 것, 또한 Q했다. 하지만이 아무것도 부를 수 I 원하는, 난 그냥 간단하게거야 또한 단지 단순화를 위해, Q를 호출합니다. 그리고 지금 내가 할거야 좀 더 뭔가. 여기에 양식 필드에, 나는에 갈거야 이벤트 처리기라고 무엇을 추가 할 수 있습니다. 제출, 나는 전화를 걸 유효성 검사라는 함수. 이것은, 아직 존재하지 않는 단어, 또는이 동사 검증 내가 할거야 무엇 때문에 여기까지 지금 몇 가지 코드를 추가합니다. 나는 기능의 유효성을 말할거야. 나는 이것을 들여 또 다른 추가거야 곱슬 여기 중괄호 여기에 또 하나. 이 지금 무엇을하고 있는지 생각 해보자. 나는 창조로이 생각 now--이 내 이전에하지 않았다 자신의 퍼즐 조각 존재하고, 나는이 퍼즐라고​​했습니다 유효성 검사 퍼즐 조각을 조각입니다. 인생의 목적은 실행하는 것이다 그것의 내부 코드의 네 줄. document.getElementById를하는 경우 그래서 개념적으로, 즉, 요소​​에 들어갈 예정이다 누구의 고유 HTML 요소 아이디어는 비록 후 바로 Q이고, 구문은, 조금 이상한 보인다 그 동일한는 같음을 의미 같습니다. 그래서 그 의미 경우와 요소 Q의 고유 식별자,받은 때, 값이없는, 그냥 동일 인용을 끝내 인용, 아무것도 거기에, 그 다음 내가 어떻게해야할까요? 나는 사용자에 소리 싶어요. 그리고 우리는 여기에 훌륭한 세부 사항을 가지 않을 것이다. 나는 false를 반환하겠습니다. 즉, 오류가 발생합니다. 그렇지, 나는 true를 돌려거야. 그래서 하나는 일을하거나하지 않았다. 허위 또는 사실. 그리고 내가 어떤 실수를하지 않았다 해주기 경우, 내가이 내용을 저장하고이를 다시로드 할 수 있습니다. 그리고 나에게 단 한 번 확인하자 그 나는 사실, 오타를하지 않았다, 그래서 나는 나 자신을 난처하게하지 않습니다. 이 작동하는지 보자. 그래서 지금은 고양이를 입력 할거야. 아직 작동 또는 적어도 반 작품. 지금 내가 그것을 다시, 지금합시다 나 입력하지 않고 전송 해 봅니다 anything-- 젠장, 그것은 끊었다. 잠시만. 나 콘솔을 열어 보자, [들리지], 로그인 페이지를 다시로드합니다. 나를 다시 해보자. 아, 젠장. 나는 잊었다. 내가 오타를했다. 나는 그것이 무엇인지 기억한다. .값. 나는 값이 있으면 말을 의미 요소의 ID가이 질문입니다 다음 사용자에 소리 것을 같습니다. 그래서 지금 내가 다시는 내 숨을 수 있습니다. 여기에서 우리는 간다. 우리는 거기에 갈. 검색어를 입력하십시오. 그래서 저를 통해 두지 않을거야. 나는이와 종류의 장난 일 수있다 대신에 어떤 값을 검사, 내가 뭔가를 말할 수 더 이상 고양이를 검색, 이제 우리는 더 장난스럽게하도록 할 수 있습니다 개를위한 사용자 검색하는 경우 그 또는 그녀 원 또는 여기에서 갈 경우 지금은 할 수 없습니다, 고양이를 검색합니다. 그래서 테이크 아웃은 여기에 무엇입니까? 그래서 하나, 우리는에 도입 한 HTML과 CSS의 우리의 세계, 프로그래밍 기능을 제공합니다. 지금은 실제로 수 코드에서 의사 결정을 내릴 수. 이전에, 내가 할 수있는 모든 마크 업입니다 텍스트 콘텐츠 또는 그래픽 내용 무엇을보고 그것을 말해 같은과 위치를 표시합니다. 지금은 실제로 요청할 수 있습니다 웹 페이지의 질문 및 기반 의사 결정을 내릴 수 거기에, 상기 사용자에게 프롬프트 나는 그 또는 그녀를 소리해야하는 경우. 그래서 뭔가를 해보자 이와 우리 자신에. 어서 나 다음 슬라이드를 열 수 있습니다 여기에, 단지 한 가지를 지적한다. 그냥 CSS와 마찬가지로, 우리는 밖으로 인수 분해 할 수 있습니다 별도의 파일에 대한 우리의 자바 스크립트 코드, 당신은 같은 일을 할 수 있습니다 CSS와 같은 자바 스크립트. 그리고 당신은 소스를 사용하는 것이 사용 스크립트 태그의 속성. 그러나 우리는 지금 일을 복잡하지 않습니다. 대신에, 만약에 당신이 할 수 하지이 페이지로 이동 하지만 ... 내가 order--이 주위를 이동하자 당신이 할 수있는 경우 여기에이 페이지를 이동합니다. 여기에이 URL. 그것은 오늘날의 슬라이드에 있습니다. 당신 때문에 다시해야 할 수도 있습니다 나는 것은 몇 가지를 추가했습니다. 어떤 퍼즐이 기다리고 어디하지만 거기. 그리고 이것은 우리에게 기회를 줄 것이다, 조금 더 재미 맥락에서, 일부 자바 스크립트 손 대고 있습니다. 그리고 당신이 거기 도착하면, 나는 기다리고 무엇을 설명 할 것이다. 녹색 가져옵니다. 파란색 설정합니다. 녹색, 빨간색 설정 설정합니다. 죄송합니다. 죄송합니다. 이 정도 인 우리 이 문제에 대한 설명서를 참조하십시오. 그리고 이것은 다음과 같이 작동하는 것입니다. 그래서 당신은이에 어떤 페이지 전체 무리입니다 버디로 이미지 퍼즐 스탠포드 대학. 그래서 당신이보고있는 무슨을 거의이다 그 마법의 눈 퍼즐의 한 종류, 하지만 당신은 단지 그것을 응시하는 경우, 아무것도 당신을 밖으로 팝업 않을거야. 오히려 무언가가있다 이 이미지에 숨겨진. 그것은 다음과 같은 방법으로 숨겨진. 이미지는, 아시다시피 될 수 있습니다 단지 세 가지 색상으로 구성. 일부 빨강, 일부 파란색, 일부 녹색. 그리고 우리는 모든을 만들 수 있습니다 무지개 색상 어떻게 든 그 세 가지 색상을 혼합하여. 그래서이 주로 녹색 보이는 푸른,하지만 닉은 여기에서 말한대로, 이 철 퍼즐 이미지 퍼즐입니다. 그것은의 이미지가 포함 유명 것을 그러나 이미지가 왜곡되었다. 유명한 객체는 빨간색 값입니다. 그러나, 적색 값 모두 10로 나눈되어 있습니다. 그래서 10 배 너무 작다. 환언 닉 원본 이미지를했다, 그는 모든 채도 그것에서 적색, 적색의 양을 낮추는 잉크, 만약에 당신, 그것입니다. 파란색과 녹색 값 모든 단지 의미가 랜덤 값은 일명 노이즈 설계 실제 영상을 불명료. 그래서 닉했던 것은 그가이었다 다음 빨간색과 아래로 톤 그는 단지 무작위로 던져 파란색과 녹색의 양 무명의 종류 이미지에서 여전히 실제로 무엇을. 이러한 왜곡을 취소해야 이미지를 공개합니다. 첫째, 모든 파란색과 녹색 값을 설정 제로의 길에서 그들을 얻을 수 있습니다, 그 결과를 보면. 그때 (10)에 의해 각각의 빨강 값을 곱하면, 까지 다시 축소 약 최종 값. 유명한 목적은 무엇입니까? 그래서 여러분이 사각형이 지금 브라우저입니다. 그리고 몇 가지가 있음을 알 수 시동 코드, 말하자면. 이 자바 스크립트 코드입니다 닉은 당신을 위해 작성했습니다. 그리고 거기에 알 중간에 줄이 그건, 슬래시 슬래시로 시작 무슨 일이 일반적으로 코멘트라고. 그것은 프로그래머 어구의 의미 그 기능적 의미가 없습니다. 그것은 인간의 단지 시각적이다. 그래서 당신은 가서 수 그냥 줄을 삭제, 그리고 슈퍼 조심하지 수 삭제하거나 다른 작업을 변경합니다. 그리고 내가 단지를 안내하자 이 코드를 수행하고 난 떠날거야 무슨 당신에게 비밀 이미지를 알아낼 수 있습니다. 난 그냥했습니다 여기에 첫 번째 라인 강조는 당신에게 다음을 제공합니다. 좌측, 당신이라고 무슨이 닉 임의로 가지고있는 변수 하지만 합리적으로 이미지의 메신저라고합니다. 오른편 그 등호, 그는 나에게 새로운을 제공 말하는 인용, 인용을 끝내 "간단한 이미지". 이러한 맥락에서 간단한 이미지, 물론, 클래스라고 무엇인가 그것은 그 수업 같은 종류의 기술적으로 prototype--하지만 정말, 이것은 나에게 새로운 객체를주고있다 파일에있는 내용, 철 puzzle.png. 즉, 아이디를 만들었다 간단한 이미지의이 개념 우리가 교육적 들어 수 있도록 목적은 이미지와 함께 재생 와, 붉은 변경 녹색, 청색 값. 어떻게 우리는거야? 여기이 다소 난해한 구문 종류의 반복 블록처럼 여러분 중 일부는 이전 스크래치에서 본 것을 당신이 10 번 반복 할 수 있습니다 오늘. 이 경우, 닉되지 않았습니다 10 같은 숫자를 하드 코딩. 대신 그는 초기화 말하고있다 0 x를라는 변수, 이 X보다 작은 경우 체크 화상의 폭. 그래서 더 적절한 것으로, 이미지가있다 변수는 점은 그것의 내부 이동 수단 그 폭을 얻고, 다음 열기 괄호 폐쇄 괄호는 프로그래머의 방법입니다 이 함수이다라고. 이것은 절차입니다. 이 기능입니다 다른 사람이 썼다. 를 사용하여 대답을 나에게 다시 제공합니다. 그리고 X ++는의 멋진 방법입니다 한 번 이런 짓을 한 후, 말, 1 X를 증가. 즉,이 프로그래머의 방법입니다 의 루프의 유도 반복 것 이미지의 모든 열. 이미지는 단지 눈금 점, 행과 점의 열입니다. 이것은 반복하는 하나의 방법입니다 그 모든 컬럼을 통해. 그리고 안쪽에, 한편, 우리는 반복하고 높이, 여기에 그리고 여기와 여기에. 그래서이 와가 단지 방법입니다, 거의 구식 타자기처럼, 단지를 통해 이동합니다 반복적으로 전체 이미지입니다. 그것도 아주 전적으로 아니다 분명, 지금에 대한 믿음을 가지고, 그 세 줄이 코드의 함께 있습니다 당신이 반복적으로 볼 수있는 것 모든 픽셀에서 모든 이미지에 도트. 픽셀은 무엇입니까? 우리가 보면 음, 명확하게하기 원래의 및 확대, 당신은 정말 눈을 넣을 경우 컴퓨터 화면에, 그건 점의 단지 전체 무리, 여러 천 점이 함께이 포장. 그래서 당신은 할에 대해 무엇입니까? 그 점 하나 하나, 최종 정의, 일반적 무슨의 결과 빨강, 녹색, 파랑이라는 RGB, 어떤 다시 결합 될 수있다 당신에게 색상의 수를 제공합니다. 사실, 당신은 기억한다면 , 몇 년 전 많은에서 이러한 것들과 같은 프로젝터 스크린 아니 하나의 렌즈하지만 세 가지를하는 데 사용됩니다. 그 중 하나는 하나, 붉은 빛을 뱉어 그들은 그들 중 하나, 녹색 빛을 뱉어 푸른 빛을 뱉어. 그리고 당신은 중학교에 있다면 그들은 결코 없었다 경우 같은 I이었다 제대로 정렬, 당신은했다 항상 역사 영화를보고 즉, 약간 왜곡했다 세 가지 색상은하지 않았기 때문에 제대로 결합. 그러나 각 밝혀 적색, 녹색 및 청색이 값 그와 연관된 숫자를 가질 수있다. 예를 들어, 빨간색 0은 아무 의미 빨간색, 녹색에 대한 0은 녹색 의미, 파란색 0은 파란색을 의미합니다. 그래서 더 빨강, 녹색이없는 경우, 파란색 아니, 당신은 무슨 색깔이 없다합니까? 청중 : [들리지] DAVID 마란 : 당신은 것 그래서, 그것은 흰색 희망. 불행하게도,이 미안 operates--? 청중 : [들리지] DAVID 마란 : 당신이 그래서 실제로 이 경우, 검은 색이 있습니다. 그래서 당신은이 전혀없는 경우 색상은 블랙이 켜져. 그러나이 경우의 많이 가정 해 봅시다 그 중, 빨간색의 많은처럼, 그것의 255, 녹색을 많이하고, 많은 파란색의, 즉 흰색입니다. 그래서이 두 극단이다. 나는 많이이 논리에 의해 그래서, 경우 빨간색과 녹색이없고 블루, 그게 무슨 색입니까? 청중 : [들리지] DAVID 마란 : 오른쪽, 분명히. 의 그리고 더 빨강, 많은 녹색, 아니 블루, 다음 당신이 잘 잔 마셔요, 우리는 완료됩니다 그것은 단지 때문에,하지만, 물론, 지금은 파란색입니다. 그리고 지금 당신은이 색상을 결합 할 수 있습니다. 지금 제쳐두고, 당신의가있는 경우 등 지금까지 몇 가지 실제 웹 사이트 디자인을 수행, 당신은 실제로 수도 이 같은 기호를 참조하십시오. FFF-- 실제로, 그것은이다 아마조차. 그것은 FFFFFF입니다. 누구도 F의 및 E 년대를 본 그리고 through-- 그것은 밝혀 있도록 우리는 소수에 대해 어제 이야기 오늘, 종류의 소수에 대한. 오늘 우리는 진에 대해 이야기했다. 알고 보니, 16 진수 매우이다 공통 기본 시스템은 컴퓨팅에 사용합니다. 이진 두 가지이며, 소수는 10, 진수는 16입니다. 그리고 그것은 어떻게 수행 밝혀 당신이 16 진수로 계산? 제로, 하나, 둘, 셋, 넷, 다섯, 여섯, 일곱, 여덟, 구, 당신은 구 이후에 무엇을 사용합니까? 다음 수는 얼마입니까? 우리는 이미 제로 사용. 나는이 16이 필요합니다. 제로, 하나, 둘, 셋, 넷, 다섯, 여섯, 일곱, 여덟, 아홉, 당신은 어떤 임의의 규칙이 필요합니다. 그리고 무엇 인류는 시간을 결정 전 구가 편지는 것을 제공 한 후 A와 B 그럼 다음 C. 방법 당신이 16 진수로 계산 제로, 하나, 둘, 셋, 넷, 다섯, 여섯, 일곱, 여덟, 아홉, A, B, C, D, E는, F는, 그 개수 것 당신이 모든 방법, 그것은 15, 밝혀졌습니다. 그래서 15 제로 제로 통해 F. 이제 그 이유는 중요하다? 글쎄, 당신은 두 개의 F의 때, 당신이 255을 표현하는 방법이입니다. 짧은 이야기에 너무 오래 포토샵의 세계, 그 그래픽 디자인 소프트웨어, 웹 개발의 세계에서, 당신은 색상을 많이 가질 경우, 물론, 함께 플레이하고, 종종 프로그래머는 것 16 진수 사람들을 표현 그냥 경향이 있기 때문에 좀 더 간단합니다. 심지어 첫눈에 불구하고 훨씬 더 복잡하다. 어떤 경우에 그래서,이 중요하다 스탠포드 닉 때문에 우리에게 기능의 여섯 조각을 부여하고있다 당신이, 신진 프로그래머, 현재 사용할 수있는 능력을 가질 것이다. 이 웹에 내장 페이지는 여섯 기능입니다, 닉 쓴 여섯 절차. 그 중 세 개는 당신에게 번호를 얻을 것이다, 빨간색, 녹색 또는 파랑의 값. 그 중 세 개는 그 값을 설정합니다. 그리고이 밑줄 그냥 자리는, 그래서 당신은 사람들이 무엇인지 알 필요가있다. 이 세 가지 기능을 가진 그래서, 이러한 것들의 첫 번째 가 x 좌표가 될 것입니다, 이러한 것들의 두 번째 A는 y 좌표가 될 것입니다. 도트 말해서,의 어느 픽셀이의 녹색을하고 싶지 않습니다, 의 파란색을 얻을의 빨간색을 찾으실 수 있습니다. 그리고 여기이 될 것입니다 X, 이것은 y 값이 될 것입니다, 이 숫자가 될 것입니다. 그럼 첫 번째하자 이 라인 함께 그리고, 나는 당신에게 그것을 떠날거야 나머지를 추론하려고합니다. 지침에 따라 그래서 이 페이지에, 우리는 필요 배 적색 증대 (10)는, 그리고 우리는 녹색을 제거해야 청색을 제거합니다. 의는 후자의 시나리오를 시작하자. 내가 원하는, 내가 갈거야, 그래서 만약 약간의 공간을 이용하여 들여, 내가 빨간색을 설정하려면, 녹색 또는 파랑의 값, 나는 다음을 수행하려고 해요. 이미지, im.setBlue 다음 여기 내 지시에 기초하여, 무엇 세 가지 내가해야 이제 내부 괄호 입력? 나는 x 값이 필요합니다 무슨 수를 y 값 및 내가 없애려면 여기에 넣어해야합니다 파란색으로, 여기에이 이야기를 기반으로? 그냥 제로. 난 더 블루를하지 않으려면, 그냥 해요 0으로 바꿀 것. 지금은 그냥이 무엇을하고 있는지 정리해 보자. 나는이 위에 여기에있다 두 번째 및 세 번째 라인 나는 두 개의 루프를 주장 중첩 루프, 당신이 경우 , 그 효과가가는 것 왼쪽에서 오른쪽으로 진행 중, 는 x의 모든 것을 위에서 아래로 값 및 Y 값을 모두. 다시 때문에 사진입니다 행과 열의 단순한 격자. 그래서이 얻을 것입니다 모든 파란색을 제거. 내가 당신에게 다음 줄에 남겨 두자. 어떻게 모든 녹색 제거합니까? 청중 : [들리지] DAVID 마란 : 니스. 청중 : [들리지] DAVID 마란 : 니스. 그리고 축소 것, 그냥 가지고 있어요 당신이 오타를하지했는지의 관심. 그리고 당신은 편안 인 경우 당신이 무슨 짓을했는지와, 가서 버튼을 클릭 / 실행 저장하고 당신이 무엇을 얻을 참조하십시오. 그리고 다시, 우리는했습니다 단지 세 변경됩니다. 우리는 먼저 삭제 주석과 대체 코드의 두 라인. 당신이 공격해야하는 경우는 괜찮습니다 실행 / 저장 버튼을 몇 번 뭔가를 해결합니다. 그리고 나 또한 확대 할 내 코드가 전사 할 수 있습니다. 좋은. 그래서 나는 앤드류가 무엇을 가지고 참조 실수가 될 것으로 보인다. 그는 단지 큰 검은 있어요 그의 화면에 사각형입니다. 다른 사람이 있습니까 큰 검은 사각형? 청중 : 네. DAVID 마란 : 큰 검은 사각형? OK, 그래서 생각하자 이것이 무엇을 의미하는지에 대해. 우리는 영 즉, 제로, 제로 말했다 그래서 아무 녹색, 아니 빨간색, 아니 파란색, 당신에게 검은 줄 것입니다. 그리고 그것은 밝혀 우리의 노트북의 가장 충분한 충실도가 없습니다. 당신은 확실히이 말할 수 없다 실제로이 무언가이다. 그리고 당신은 종류의 아마 의지하는 경우 앞뒤로 화면, 어쩌면 당신은 보이나요 이 작은 뭔가? 아마, 가지, 일종의? 그것은 완벽하게 검은 색이 아니다. 청중 : [들리지] DAVID 마란 : 스포일러! 일부 빨간색, 거기지만 사양에서 기억 문제의 닉은 그것을 아래로 톤. 그는 다소을 흐릿한 하지만 제로 모든 방법. 그래서 우리는 양을 확대 할 경우 빨간색의 날이 트릭을 제안 할 수 있습니다. 내 화면을 확대 할 수 있습니다. 그리고 내가 가서 가정 해 봅시다 양 im.getRed (X, Y)를 동일합니다. 코드 행은 저를주고있다 뭔가 변수를했다. 나는 틀림없이 임의로 가지고 있지만, 합리적 내 변수 무엇이라고, 분명히? 양. 그냥 양. 나는 그것을 호출 한 수 무엇이든 내가 원하는,하지만 난 이 다른 함수를 사용하여 나는 앞에서 설명한 것을 X 쉼표 y를 적색의 양을 얻을 수 있습니다. 내가 왜 그런 짓을 한거야? 당신은 여기에서 수행 할 수 있습니까? 당신은 add-- 필요 청중 : [들리지] DAVID 마란 : 네, 아마 10을 곱합니다. 당신이 모르는 경우에, 난 가서이 작업을 수행하는 것. 내가 가서거야 및 말하자면, 나는 빨간색의 양을 원하는 나는 무엇을 할 수 할 빨간색에있다, 10 배 와 스타에 별표 당신의 키보드 짓이야가 X를 사용하지 않는 것입니다. 별을 사용합니다. 즉, 당신이 일을 곱 방법 대부분의 프로그래밍 언어입니다. 그래서 카림의 직관에 따라, 양이라는 변수에 저장, 나는 위치 XY에서 원하는 얼마나 많은 빨간색입니다. 어떻게 지금, 나는 것을 확인 할 그 번호가 픽셀? 이미 전에이 일을했습니다. 당신은 녹색 및 설정 제로, 아니 값으로 블루. 청중 : [들리지] DAVID 마란 : 음, 그래 당신은 10로하지 않습니다. 이미 여기에서 수학했다. 그래서 우리는 빨간색의 가치를 점점 이는 아마도 낮은 숫자입니다. 우리는 (10)에 의해 곱 있습니다. 당신이 수행 할 작업 이제 변수 양? 청중 : [들리지] DAVID 마란 : 니스. 그래서 im.set--? 청중 : setRed. 데이비드 마란는 : 위치 XY에서 setRed. 네. 단지 양. 즉, 가변 임시 자리 표시 자입니다 것을 당신은 당신이 원하는 무엇이든 넣을 수 있습니다. 우리는 퍼팅 할 일이 순간에 그것의 수입니다. 우리가 그것을 곱했습니다 (10)은 큰 확인합니다. 그리고 지금은 그 변수를 대체하고 있습니다 그 세 번째 인수, 또는 입력으로 빨간색 설정합니다. 그래서 당신 한 번 그 마무리하고,주의 깊게 살펴 세미 콜론 및 괄호. 가서 클릭 / 실행 다시 저장하고 볼 수, 마술, 실제로 무엇 이었습니까 그곳에. [? 아르와,?]가 무엇입니까? 본격적인 에펠 탑 빨강, 매우 어두운 없습니다. 그것은 그래, 이제 더 분명해야 하는가? 승인. 그리고 앤드류, 더 이상 블랙 박스? 청중 : [들리지] DAVID 마란 : 좋습니다. 그래서 화면이 유지됩니다. 이 플레이하려면 나중에, 나는 당신을 위해 이것을 다시 것입니다. 하지만이 코드는 여기에 정확하게했다. 왜 우리는 다른 일을하지 않습니다. 내가 약간 아래로 스크롤 할 수 있습니다. 이 경우, 프로젝터 그래서 정말 그것을 정의하지 않습니다. 하지만 당신의 화면에, 당신 아마 아주 빨간색과 매우 블랙 박스가 있습니다. 이 역시 퍼즐입니다 유명한 뭔가를 보여줍니다. 그러나, 화상이 왜곡되어왔다. 진정한 이미지, 이때이며, 파란색과 녹색 값입니다. 그러나, 모든 분할 봤는데 (20) 그래서 값은 매우 작다. 빨간 값은 있습니다 임의의 숫자, 소음. 이러한 왜곡을 취소 진정한 이미지를 공개합니다. 그래서 닉은 무엇을 알려줍니다. 제로 빨간색 값을 설정하고, 다음이 무엇인지 망치고하지 않습니다. 그런 다음 파란색을 곱 20로 녹색 값. 그래서 거의이야 같은 프로그램 이전과, 하지만 그 과정을 반대로하고 있습니다. 그리고 난 내 코드를에서 둘 것이다 전 경우 화면에 당신은 그것을 다시 참조 할 또는 하나 더 재생할 수 있습니다. 내가 그 확대 할 수 있습니다. 그러나 동 화상을 해결 퍼즐, 두 번째. 청중 : [들리지] DAVID 마란 : OK, 그래서 난이 일 많은 힌트를 제공하지 않을. 그래서 아,하자 would-- 여기에 오타를 참조하십시오. 그래서 여기, 기억 실제로 거기에 갈 필요가있다. 당신이 원한다면 내가 제안 것이 무엇 이 일에 초점 답이있다. 당신은, 그 전사하려는 경우 첫 번째 작업을 얻어야한다. 그리고 당신은 그것을 사용할 수 있습니다 두 번째 영감. 좋은. 좋은. 그리고 호기심에 대한, 이것은 단순한 일례이다 과학 또는 예술의 스테 가노 그래피라고, 이미지 정보를 숨기고의 예술. 일반적으로 이미지가 될 수 있습니다 아주 노골적으로 워터 마크 하단의 로고와 함께 코너,하지만 분명히, 당신 훨씬 더 정교한 될 수 있습니다 그것에 대해 실제로 이미지에 다른 이미지를 숨기 어떻게 든이 기술. 또 다른 30 ​​초 가지고, 그리고, 우리는거야 적어도 당신이 볼 수 무엇을 발표합니다. 그리고 세 번째를 떠날거야 재택 운동 하나, 당신은 더 원하는 경우 이번 주말에 도전한다. 그리고 앤드류는 것 같아요 먼저 입수했습니다. 두 번째 이미지는 앤드류 무엇입니까? 대상 : 자유의 동상입니다. DAVID 마란 : 자유의 여신상 대답이 시간이 될 것입니다. 그래서 다시, 단지 몇 가지 간단한 예, 목표하는의 당신에게 방법의 감각을 제공하는 것입니다 우리는 화보 스크래치를 번역했습니다 더 성가신 등에 대한 블록 복잡한 코드,하지만 아이디어의 모든 정확히 여전히 동일 도입이기는하지만 이제 변수의 개념으로, 인 일시적 것을 저장할 수. , 이제 한 번 더 손에하자 지금 점을 연결하는 뭔가 좀 더 실제에. 준비가되면, 경우에 당신은 할 수 화면이 URL로 이동합니다. 즉, 사본도 있어요 슬라이드, developers.google.com/maps~~V. 의 실제로 뭔가를하자 실제, 그래서 웹에, 말하자면 Google지도 API를 사용하거나 응용 프로그래밍 인터페이스, 다음과 같은 방법이다. 구글, 많은 기업처럼, 자유 많은 기능을 제공한다 당신은 구축하는 데 사용할 수있는 당신의 자신의 흥미있는 응용 프로그램. 사실, 당신은 이제까지 사용한 경우 동네 짱 택시 또는 차를 얻기 위해, 당신은 아마 동네 짱이 있는지 알고 지도와 그것에서 차를 보여줍니다. 즉, 내가 할 수있는 최선으로 Google지도 API를 말한다. 그들은 실제로, 구글 맵을 사용하는 그러나 위버는 매핑 회사 아니다 도 그건이 될 것입니다 특히 흥미로운 문제 상단에 해결하기 위해 자신의 자동차 서비스 문제. 그래서 그들은 서있어, 다시, 어깨에 다른이 경우 구글. 그래서 그들은 구글의지도하지만 자신을 사용 자동차 서비스 및 기타 기능을 제공합니다. 그래서 우리는 이점을거야 이것 다음을 수행합니다. 그리고 나는, 너무 빨리 갔어요 경우 잠시 저를 통해 호출합니다. 이미지 물건의 일부를 정리해 드리겠습니다. 당신은 자신을 볼 수 이 같은 페이지에서. 그래서 구글의 좋은, 그리고 그들은 최고 중이야 뿐만 아니라 API를 제공, 하지만 무료 API를 당신 함께 재생하거나 상업적으로 사용할 수 있습니다. 그들은 당신의 사용 여부를 충전 시작합니까 높은, 그러나 나는 사전에 나서서 무료 계정에 우리를 가입 희망을 갖고, 10 컴퓨터, 그 갑자기 우리의 자격을 박탈하지 않습니다. 그래서 희망이 데모 작동합니다. 그리고 그들은을위한 API를 가지고 있음을 알 수 안드로이드, 아이폰 OS, 웹, 웹 서비스, 어떤 즉. 의 웹에 초점을 맞출 수 있습니다. 그래서 분홍색 상자, 웹을 클릭하고 페이지로, 희망, 당신을 이끌 것입니다 이리. 그리고 그들은 API를 왕창 가지고있다. 그리고 그것은 조금 될 수 있습니다 처음에는 압도적 인, 그러나 나는 우리가 원하는 것을 통하여 우리를 조종 할 수 있습니다. 왼쪽 상단에있는 Google지도를하다 자바 스크립트 API, 자바 스크립트 API. 그래서 가서 하나를 클릭합니다. 그리고 그것은 지금 당신을 이끌 것입니다 페이지, 데모 및 샘플 코드 다음과 같습니다. 내가 여기 축소 할 수 있습니다. 그리고 우리가 아래로 스크롤 이러시면 저하자 이 빠른 시작 단계라고 곳. 화면 내 같아야합니다. 그리고 두 단계 거기에 얻을 키는 개발 시작합니다. 난 이미위한 단계를했다 미국은 이른바 키를 받고. 그리고 이것은 일반적인 생각이다. API 키는 일반적으로 큰 임의의 숫자 또는 문자열 당신이 생각하는 것을 코드에 붙여 넣으려면 구글이 알 수 있도록 당신이 때 누구 당신은 자신의 API를 자신의 서비스를 사용하고 있습니다. 우리가있어 의미하지 않습니다 아무것도 충전. 그리고 지금, 클릭, 대신 하나, 개발을 시작을 클릭합니다. 당신은 저를 흔들 수 있다면 이상 우리가 어디하지 않도록 경우. 그래서 우리는 단지 흠집이 있습니다 면, 여기하지만 나는 강력한 될 것이라고 생각 실제로 우리 모두가하는 것입니다, 하나의 창에서 Cloud9를 사용하여 다른 창에서이 튜토리얼, 실제로 우리 자신을 얻을 수 있습니다 응용 프로그램 및 실행 즉, 사용자 정의 구글을 포함합니다 우리 자신의 웹 페이지에지도, 다음 하나 또는 두 개의 기능을 추가합니다. 그러나 우리는 단지 흠집이 있습니다 우리가 무엇을 할 수 있는지의 표면. 그래서 그냥 빨리 전성 검사. 모든 사람은이 페이지에 있습니다 Google지도 자바 스크립트 API? 시작 말해야한다. 우리는 통과하지 않을거야 어떤 방법으로 모든 일. OK, 다른 탭에서, 당신이하지 않으면 Cloud9에 가야합니까, 열어가 자신 단지를에 얻을 새 탭, 궁극적으로. 그래서 다시, 어제 c9.io, c9.io, 단지 새 파일을 만듭니다. 그리고 앞서와 통화 이동 당신은 무엇을하고 싶습니다. 난 내 map.html을했다. .html 중에서 끝나는 아무것도를 호출합니다. 그리고 당신은 대략해야한다 나는이 과정에서 나는 곳 빈 단지 깜박이는 메시지와 함께 탭 map.html 같은 것을했다. 또는 파일, 새 파일이 시간. 그리고 지금, 이상에 Google지도 자바 스크립트 API, 우리는 독서를 건너 뛸 수 있습니다 이 모든 텍스트를 통해. 하지만 안녕하세요 세계가 주목 실제로 모든 곳에서, 당신은 지금을 참조하십시오. 안녕하세요 세계는 화려한이 큰이 HTML의 전체 무리의 예. 가서 복사 만 붙여 넣기 HTML, 상단의 문서 형식에서 이렇게 닫기 HTML 태그에있는 모든 방법, 이동 앞서 및 다시 that-- 모두 복사, 즉 안녕하세요 세계에서의 example-- 그리고, 당신의 Cloud9 탭에 해당 붙여 넣기 그래서 지금 화면 대략 광산과 같아야합니다. 그리고 당신은 저장할 수 있지만, 아직로드하지 않습니다. 에하자 첫번째보기 코드를 볼 경우 우리 추론 또는 배울 수 그것은 구글이 무엇인지부터 우리가 맹목적으로 복사 및 붙여 넣기했다. 그들은 단지 도와주고 싶어, 문자 그대로, 우리는 시작, 하지만 그 정도가 아니다 실제로이 복잡. 질문 아직? 우리는 앞서 위조 안전 해요? 승인. 이렇게 빨리, 그냥하자 몇 가지 빠른 온 전성을 확인합니다. 의 선 하나 내가 , 당신을보고, 희망 즉, 문서 타입의 HTML을 무엇을 의미 하는가를 참조하십시오? 카림, 기억? 청중 : [들리지] DAVID 마란 : 예. 다음은 HTML 5 온다. 한편, 상기 두 개의 라인 화면이 여기에, 헤이 브라우저를 의미한다 여기에 실제 HTML 온다. 선 세 헤이 브라우저입니다, 여기에 머리가 제공됩니다. 행 사 헤이, 물론입니다 브라우저, 여기에 제목을 온다. 라인 다섯은 무엇입니까? 사실,이하지 않습니다 정말 우리를 위해 아무것도하지. 이 경우는 크기가 조절 기본에 대한 페이지입니다. 선 여섯, 우리는 이야기,하지만하지 않은 문자 인코딩을 지정합니다. 파일을 인코딩하는 다른 방법이있다, 특히 외국어합니다. UTF-8은 기본 경향이있다. 그래서 지금 우리는 줄을 볼 수 있습니다 (16)를 통해 일곱, 일부 CSS. 그리고 우리는 본 적이 없다하더라도 전에 이러한 모든 것들을, 우리는 가지 추론 할 수있다. 그래서 브라우저 이봐, 적용, 여덟 수단 라인 다음에이 모든 태그, 분명히? 되는 HTML 및 본문 텍스트입니다. 그래서 쉼표가 새로운 것입니다. 그리고 그것은 단지 방법 한 번에 여러 태그를 지정. 그 다음 우리는 중괄호를 가지고있다. 그래서 분명히,이 브라우저를 알려줍니다, 페이지 100 %의 높이를 확인합니다. 그래서 아주 작은이 경우에도 내용은 전체 페이지를 만들어, 것은 페이지를 작성합니다. 지도는 궁극적으로 페이지를 작성합니다. 여백, 그게 무슨 뜻 이죠? 즉, 임의 같은 보통이다 가장자리 주위에 공백 일부 브라우저 디자이너 단지 ,이 있어야 결정 그것 때문에 가지 일들이 청소기 볼 수 있습니다. 그러나 우리는 그것을 원하지 않는다. 우리는지도를 가고 싶어 가장자리에 모든 방법. 패딩, 마진 정신에는 변함이. 여백 외부, 패딩 수단을 의미 내부하지만 거래 같은 종류이다. 이 버퍼의 약간의 당신과 가장자리 사이. 그리고 라인 (13)은 좋은 빠른 검토를 위해 기회. 무엇 날카로운 기호지도 않습니다 의미, 또는 해시 태그지도 말은? 즉 원칙적으로, 무엇을 참조합니까? 청중 : [들리지] DAVID 마란 : 맞아요. 이 속성이 CSS 속성 한 가지에 적용, HTML 태그 즉, 인용을 끝내 "지도"를 인용의 ID가 있습니다. 그리고 지금하자 빨리 감기, 스크롤 파일의 맨 아래에 아래로있는 너무 멀리하지 않고, 줄에 통지 19 내가 그랬던 것처럼 당신이 정확하게 붙여 넣을 경우, 라인 19는이다, 그냥 사업부가 페이지, 어제 I의 분할 사각형 영역이라고합니다. 그것은 거기에 아무것도있다. 그것은 오픈 태그, 가까운 태그입니다. 그러나 고유 ID를 가지고있다. 그래서이 될 것으로 보인다 여기에서 일어나고있는 구글이다 에 우리의 웹 페이지를 준비하고 완전한 100 % 높이를 갖는, 없이 패딩, 여백, 때문에 우리가 내부에 넣을거야 누구의 고유 한 ID입니다이 사업부의 지도는 실제 삽입 된지도입니다. 그리고 우리는 그것을 채우려 페이지뿐 아니라 중간에 약간의 작은 사각형합니다. 따라서 라인 (14)은 유사하게는, 강조 100 %의 높이를 가져야 자체 매핑. 이제 선 (20) 사이에 알 28이 자바 스크립트 코드이다. 그리고 이것은 비록이며 조금 이상한 구문 모든 훨씬 여기가에 없을거야. 라인 (21)에서,이 선언된다 뭔가 변수를했다. 대신를 호출 우리가 전에했던 것처럼, 금액, 우리는 더 정확하게 말을하는지 다만 변수를 의미 VAR. 우리의 것을 사용할 수도 닉의 코드는,하지만 그는하지 않았다, 그래서 하나 그 일을 귀찮게하지 않았다. 그것은라는 변수이다 지도하고있다 의 함수 분명히 initMap을했다. 그래서 이것은 우리 자신의 정의처럼 스크래치에서 퍼즐 조각. 우리의 조각을 만든 initMap 호출 기능, 당신은 종류의 추론 할 수있다 무슨 일이 여기에 것입니다. 좌측, 우리는 변수를 가지고있어, 그래서 우리는 다음을 넣어거야 그 변수 안에 것, 오른쪽에서 왼쪽으로. 오른쪽은 헤이 말한다 브라우저는 나에게 새로운 Google지도를 제공합니다. 그리고 google.maps.map은 펑키 방법입니다 이 기능하도록 지정의 Google지도에 속한다. 괄호 후, 우리는 보았다 이 전에, 브라우저 헤이 얻을 나 페이지의 요소는 고유 ID 페이지에 태그 is-- 청중 : [들리지] DAVID 마란 : --map. 그리고 무슨 일이, 잘 진행되고 함께이 라인, 라인 (23) 본질적으로 말하고, 브라우저 이봐, 나 가서 페이지가 빈 사업부 누구의 고유 ID 맵, 나는 삽입 할 때문에 그건 ... 그것으로 주입으로, 당신은 내용의 전체 무리를 will-- 경우 즉 웹에서 오는 일이, 그후. 구글의 우리를 위해이 모든 일을. 그래서 다시 하루의 끝에서, 우리는 추상화의 예를 가지고있다. 지도가 무엇인지 나도 몰라 또는 어떻게지도 API를 구현합니다. 우리는 할 필요가 없습니다. 우리는지도를 알려줄 필요 위치 자체를 놓고, 떠나 그 기본이되는 구현 구글에 대한 세부 사항. 지금은 분명히있다 데이터의 두 조각 이 예제입니다 구글의 API를 제공한다. 명백하게 맵의 중심 줌 레벨은, 말하자면. 그리고 사람이 인식 않습니다 좌표, 위도 및 경도? 아마, 그러나 우리는 돌아갈 수 튜토리얼로, 말 그대로 참조하십시오. 그러나 우리는 단지 순간에 그것을 볼 수 있습니다. 줌 레벨 사이의 값 I는하지 그 추천에 하나 뭔가를 알고. 그것은 당신이있어 얼마나 함께 할 수있다 또는 밖으로 확대하고, 그게 다입니다. 그리고 지금의 끝에서 페이지 예고 라인 29-- 이 때문에 약간의 추한 이 코드 줄을 wraps-- 받는 사람 다운로드 무엇인가 브라우저 구글의 실제 API. 모든 코드 구글의 엔지니어는 구현 작성했습니다 임베디드 맵이 전체의 기능입니다. 이제 아무 것도 변경하지 말자. 당신이 따라 다음과 같은 경우, 가서 당신이 실제로있는 경우 그냥 그 파일을 저장 나는 무엇을. 그 URL로 이동합니다. 당신은 실행 버튼을 클릭 할 수 있습니다 맨 위로 그 말할 것이다 당신이 다시 웹 서버의 URL. 그리고 그것은 새로운 탭으로 당신을 이끌 것입니다. 당신은에 대한 열기를 클릭하면 map.html, 그리고 확률은 당신이있어입니다 경고를 얻을 것, 오류 메시지, 그래? 오류 메시지, 오류 메시지가? 그래서 불행하게도, 오류 메시지는 계몽되지 않습니다 실제로 열하지 않는 한 콘솔, 특별한 탭 우리 어제 개방 유지 및 조금 일찍 오늘. 하지만 우연히 발견 이 이전, 그래서 이미 솔루션이 무엇인지 알아 냈어. 오늘의 슬라이드에서, 또는 오히려, Cloud9에서 예고 우리는하지 않았다 의도적으로 뭔가. 공지 사항이이 스크립트 태그 라인 29, 당신은 그것을 통해 읽는다면, 그것은 maps.googleapis.com/처럼 뭔가, 뭔가, 뭔가, 다음 사람을 통지 개발자 중 하나 모든 자본에 쓴 문자, API 키. 우리는 거기에서 뭔가를 붙여 넣기 할 필요가있다. 그리고이 단계이었다 나는 전에 우리를 위해 한 다시 그들은 블랙리스트에 있습니다 우리 갑자기 경우, 12 우리의 이상 동일한 키를 사용하여 시작한 하지만 이제 어떻게되는지 보자. 오늘의에 들어갈 경우에 따라서 슬라이드는 하나의 슬라이드 후, 거기에 텍스트이 매우 펑키 보이는 문자열입니다. 가서 그냥 복사 그것은 당신의 API 키를 말합니다 곳에 붙여 넣습니다. 그게 내가 가입 한 사람입니다. 그리고 확실히하지 마세요 수동을 입력, 이 가득 찬 느낌 때문에 오타, 잠재적으로. 그래서 그냥 복사하고 붙여 넣습니다. 그리고 라인을 만들 것 이상,하지만 지금은, 그냥 명확하게하기 그것은 조금 더 보일 것입니다 키가없는 동일 곳, 같은 당신 고함을 대문자로. 페이지를 저장 돌아가 다른 탭으로, 다시로드, 그리고지도를 볼 수 있도록 노력하겠습니다? 청중 : 호주. DAVID 마란 : 호주. 그래서 분명히 사람들이있는 GPS는 호주의 좌표. 그리고 나를 그냥 잠시 산책하자 꽤가 아니라 사람을 도와, 그러나 구글을 통해 검색, 내가 제안하자 GPS를 자신의 고향의 좌표 또는 자신의 모국. 그리고 아마 구글은이를 설정할 수 있습니다 최대, 또는 위키 백과을 알 수 있습니다. 그러나 두 개의 다른 값을 선택 위도와 경도, 다시 가서 그들을 붙여 다음 저장 한 후 페이지를 다시로드 당신이있을 수 있습니다 경우 참조 자신의 고향에 대한지도. 그리고 당신이 함께 할 때 즉, 후속 challenge-- 나는, 좀 덜 방향을 제시합니다 의도적으로, 당신이 그렇게 의도적으로 몇 위해 투쟁해야 문서와 분, 하지이 될지도 변경 만화 같은 기본,하지만 위성지도. 그래서 당신은 실제로 위성 참조 대신 예쁜 색상의 이미지. 그리고 힌트는 내가 당신에게 줄 것이다 지도의 유형을 변경합니다. 그 점점로 돌아 가기 영감을 페이지를 시작했다. 당신이 수집 한 수있는 바와 같이, 당신이 찾고 있다면, 그래서 많은이있다 당신이 할 수있는 일. 여러분 중 일부는 이미 지도 유형을 변경했습니다. 하지만 당신은 나를 보자, 예를 들어 do-​​- 수 있습니다 우리는 코스했던 무언가로 이동 나는 maps.cs50.net을 teach--. 우리의 학부생 중 하나는 이런 짓을. 우리는 하버드 야드 이상 우리의지도를 중심으로 이 건물의 이름을 모두 오버레이 우리는 그를이를 추가했다. 내가 검색하고자한다면, 예를 들어, 매튜스 홀 우리는 작은 드롭 다운 메뉴가 있습니다. 그리고 나는 그가 부트 스트랩은을 사용하여 생각 라이브러리 우리는 이전에 이에 대한 논의했다. 그리고 당신은 매튜스를 클릭하면 홀, 그것은 바로 일정에지도를 이동 위치, 그리고 쇼 당신이 작은 팝업의 사진. 그러나 심지어이 작은 팝업, 우리는 구현하지 않았다. 나는 우리가 점점 아래로 스크롤하면 페이지를 시작하고 정보 창을 찾습니다 당신은 그 일부를 볼 수 있습니다 기능 당신 자신에게 추가와 임에도 불구하고 수 좀 더 복잡한, 정보 창이라는 것을입니다. 그리고 예를 클릭하면 여기에, 이것은 재미 것입니다, 당신은 다음과 같은 작업을 수행 할 수 있습니다 짜잔 다음 마커를 클릭하고, 정보가 나타납니다. 그래서 우리는 아주 도입하지 않은 자바 스크립트의 충분한 기능 당신에게 방법을 정확하게의 사진을 페인트 함께이 물건을 모두 연결할 수 있습니다, 그러나 우리는 종류의 표면을 긁어했습니다. 사실, 난 그냥 때 무엇을했다 나는 그 마커를 클릭 이벤트하는 트리거링했다 클릭 이벤트에 소위. 그리고 우리가 실제로보고 이벤트는 오늘 아침, 이벤트를 제출 소위, 때 우리가 방지했다 고양이에 대한 검색에서 사용자. 그래서 우리는 종류의 들었고, choosed 할 것 이러한 모든 다양한 기능 중에서 바라건대, 당신에게 감각을 제공하기 위해, 어떻게 당신은 실제로 수 좀 더 함께 할 프로그래밍 편안함, 완전 무료 자원. 질문? 아니? 이것은 당신의 마지막 기회입니다, 적어도 오늘에, 금요일에, 당신의 가슴 떨어져 아무것도 얻을 수 그래서 당신은 여기서 걸어 자신감과 편안한 느낌. 예. 청중 : 왜하지 당신은 한 가지 더 추가? DAVID 마란 : 선한 오. 내가 생각하기에, 이번 주말에 휴식을해야합니다. 다른 질문? 청중 : [들리지] 데이비드 마란 : 당신의 주는거 인터넷 익스플로러, 평화에서 휴식, 당신은 VB를 넣을 수 있도록 사용 스크립트, 가상 기본 스크립트, 하지만 그건 정말 유행하지 않았다. 그래서 짧은 대답은 자바 스크립트입니다. 다른 질문? 좋아, 잘, 내가 이렇게 할 수 있습니다. 나 외부 동료를 잡아 보자. 그들은 어떤 평가를 그들은 모두를 원하는 형태 작성 몇 분을 보내고있다. 그들은 그 양식을 수집 할 어떤 당신이 외부에있을 수 있습니다 면제. 또한 인증서를해야합니다. 나는 거기에 같은데요 외부 여전히 몇 가지 간식. 날이를 통과하자, 그리고 경우 , 그 동안 질문이 좀 더 개별적으로 걷는 것 우리는 당신이 시작할 수 있습니다. 네, 물론. 청중 : [들리지] DAVID 마란 : 그건 요즘 일반적으로 사실. 물론 웹과 소프트웨어, 당신은 기울고있다 다른 사람에 당신도있어 심미적으로 물건을 사용하여 부트 스트랩처럼, 그래서 당신은하지 않습니다 낮은 수준을 구현해야 메뉴의 세부 사항 및 버튼과 모든 것을. 당신은 누군가에 기대어있어 구글과 같은 그래서 그 동네 짱을 구축 할 필요가 없습니다 비즈니스 및 매핑 사업 유사한 임의의 개수 뿐만 아니라 응용 프로그램. 사실, 로그인도 인기 있습니다. 당신이 스포티 파이 또는 사용한 경우 웹 사이트의 수, 당신은 몇 가지에 로그인 할 수 있습니다 페이스 북을 사용하는 웹 사이트. 그렇다면, 좋은있다 로그인에 대한 API는있다 요즘, 당신은하지 않도록 자신의 사용자 테이블을 가지고 당신의 자신의 데이터베이스의 모든 반드시 동일한 정도. 당신은 페이스 북이 모든 작업을 수행하도록 할 수 있습니다 당신을 위해 그 복잡성. 그래서 흥미로운 시간이다, 정직하게, 프로그래밍, 많은 타사 있기 때문에 당신이 위에 구축 할 수있는 서비스. 그리고 또, 당신이 지불하는 가격입니다 금융 또는 다운 타임 중 하나. 구글이 다운되면, 그래서 동네 짱가하는, 틀림없이, 그러나 아마 그건 합리적인 절충. 그리고 또, 그 주제 중 하나였다, 희망, 일 지난 커플, 이러한 트레이드 오프입니다. 그리고 거의가 것입니다 권리 해답이 될 수 있습니다. 그것은 정말 좋다 두 개 이상의 답변. 주변이 합격. 그리고이 Cloud9 계정은 계속됩니다 영구적으로, 이론적으로 작동합니다. 며칠 기다리는 경우 찾을 수 있습니다 또는 주 이상, 그들에 다시 로그인합니다 그것은 하나 같이 걸릴 수 있습니다 5 분, 최대 다시 엽니 다 하지만 그들이 넣어해서입니다 그것은 자원을 절약하기 위해 잠을.