자바스크립트란?
- ‘웹페이지에 생동감을 불어넣기 위해’ 만들어진 프로그래밍 언어
- 자바스크립트로 작성한 프로그램을 스크립트(script)라고 부름
- 스크립트는 웬페이지의 HTML 안에 작성할 수 있는데, 웹페이지를 불러올 때 스크립트가 자동으로 실행됨
- 특별한 준비나 컴파일 없이 보통의 문자 형태로 작성, 실행 가능함
- 브라우저뿐만 아니라 서버에서도 실행 가능
- 브라우저엔 '자바스크립트 가상 머신’이라 불리는 엔진이 내장(V8, SpiderMonkey, Trident …)
브라우저에서 할 수 있는 일
- 브라우저 환경에선 웹페이지 조작, 클라이언트와 서버의 상호작용에 관한 모든 일 가능
- 브라우저에서 자바스크립트로 할 수 있는 일은 다음과 같음
브라우저에서 할 수 없는 일
- 브라우저는 악성 웹페이지가 개인 정보에 접근하거나 사용자의 데이터를 손상하는 것을 막기 위해 자바스크립트의 기능에 제약을 걸어놓음
- 제약사항은 다음과 같음
- 웹페이지 내 스크립트는 디스크에 저장된 임의의 파일을 읽거나 쓰고, 복사하거나 실행할 때 제약을 받을 수 있음. 운영체제가 지원하는 기능을 브라우저가 직접 쓰지 못하게 막혀있기 때문카메라나 마이크 같은 디바이스와 상호 작용하려면 사용자의 명시적인 허가가 있어야 함. 자바스크립트가 활성화된 페이지라도 사용자 몰래 웹 카메라를 작동 시켜 수집한 정보를 국가안보국(NSA)과 같은 곳에 몰래 전송할 수 없음
- 모던 브라우저를 사용하면 파일을 다룰 순 있음. 하지만 접근은 제한됨. 사용자가 브라우저 창에 파일을 ‘끌어다 두거나’ <input> 태그를 통해 파일을 선택할 때와 같이 특정 상황에서만 파일 접근을 허용
- 브라우저 내 탭과 창은 대개 서로의 정보를 알 수 없음. 그런데 자바스크립트를 사용해 한 창에서 다른 창을 열 때는 예외가 적용됨. 하지만 이 경우에도 도메인이나 프로토콜, 포트가 다르다면 페이지에 접근할 수 없음
- 이런 제약사항을 '동일 출처 정책(Same Origin Policy)'이라 부름. 이 정책을 피하려면 두 페이지는 데이터 교환에 동의해야 하고, 동의와 관련된 특수한 자바스크립트 코드를 포함하고 있어야 함
- 자바스크립트를 이용하면 페이지를 생성한 서버와 쉽게 정보를 주고받을 수 있음. 하지만 타 사이트나 도메인에서 데이터를 받아오는 건 불가능함. 가능하다 할지라도 원격 서버에서 명확히 승인을 해줘야 함(HTTP 헤더 등을 이용).
자바스크립트만의 강점
- HTML/CSS와 완전히 통합할 수 있음
- 간단한 일은 간단하게 처리할 수 있게 해줌
- 모든 주요 브라우저에서 지원하고, 기본 언어로 사용됨
'프로그래밍 > JavaScript' 카테고리의 다른 글
엄격 모드 (0) | 2022.08.13 |
---|