[TIL] 211126
배운것
- 웹의 역사: 세계대전 냉전이 한창일 때, '어떻게 하면 적의 핵공격에서도 군통신망을 유지할 수 있을까' 가 핵심 논쟁이었다. 왜냐면 당시에는 중앙집중회선교환방식 이었기 때문에 중앙이 터지면 통신망은 모두 끊기고 마는 것이다. 그래서 허브를 만들고자 했다. 이것이 인터넷의 시초이다.
- internet의 뜻은 net을 연결한다는 의미이다. 도로와 항만 같은 통신 방식이다.
- 1991년 팀버너스리가 월드와이드웹을 설계, 이는 대륙간 연구 자료 교환을 위함이었다. 우리나라는 이 인터넷이 두번째로 뚫린 나라였다! 그는 Http, html, url을 만들었다. 그리고 1994년에 w3c를 만들었다.
- 1차 브라우저 전쟁에서 ie가 점유율 80퍼센트를 차지 한 이유는 당시 다른 웹 브라우저들과 다르게 무료였기 때문이다. 그러나 ie는 웹표준을 지키지 않고 자신들만의 정책을 고집했으며, 이는 지금 window.navigator를 콘솔창에 찍으면 appname이 다른것들과 다름으로 알 수 있다.
- 프로그래밍을 한다는 것은 논리를 짜는 것이다. 이 과정은 우리가 프로그램을 만들면 컴파일러가 프로그램을 컴파일하여 cpu가 이해할 수 있을 기계어로 컴파일링 하고 프로그램을 램에 보내서 프로세스 상태로 만들고 프로세스를 cpu가 해석하고 실행한다.
- 컴파일 언어: 소스코드 -> 컴파일러 -> 기계어 -> cpu/메모리
- 스크립트 언어: 소스코드 -> 인터프리터 - 바로 번역 및 싦행 -> cpu/메모리
- 인터프리터는 실행을 해봐야 아는 단점이 있다. 컴파일 언어는 컴파일러가 알려줘서 컴파일 에러를 내는데 스크립트언어는 그렇지 못하다.
- 실행되는 속도는 컴파일 언어가 기계어랑 더 가깝게 컴파일 시켜주기 때문에 cpu가 알아듣는 속도가 빠르다. 반면에 인터프리터는 중간에 통역가가 없기 때문에 느리다.
- 인터프리터 언어의 시초는 lisp 언어인데 컴파일 시간을 기다리다 골든타임을 놓치는 경우가 많았던 옛날에 컴퓨터에서 직접 돌아가는 언어를 만들자! 해서 만든게 lisp 언어이다.
- 자바스크립트는 bom과 dom을 조작할 수 있으며 이벤트 핸들링을 할 수 있다.
- NaN는 NaN !== NaN이다.