Javascript 정리하기

Sasha Park·2021년 8월 25일
0

core-javascript

목록 보기
1/1

기본 작동원리

  1. 브라우저의 내장 엔진이 스크립트를 읽는다. (parsing)
  2. 파싱 한 스크립트를 기계어로 전환한다. (compiling)
  3. 기계어로 전환된 코드가 실행.

엔진은 상기 프로세스 각 단계마다 최적화를 진행. 더나아가 컴파일이 끝나고 실행 중인 코드를 감시하면서, 이 코드로 흘러가는 데이터를 분석하고, 분석 결과를 토대로 기계어로 전환된 코드를 다시 최적화하는 작업도 진행. -> 실행 속도 증가.

Browser로 할 수 있는 것.

  • 페이지에 새로운 HTML을 추가, 기존 HTML, CSS 수정하기
  • 클릭, 포인터 움직임, 키보드 등 EVENT에 반응하기
  • 네트워크를 통해 원격 서버에 요청을 보내거나, 파일 다운로드/업로드 하기(AJAX, COMET)
  • 쿠키를 가져오거나 설정, 사용자와 인터렉션 추가
  • 클라이언트에 데이터 저장하기(쿠키, 세션)

Browser로 할 수 없는 것

  • 스크립트는 디스크 내 파일 CRUD가 제약됨.
  • 기본적으로 브라우저 내 탭과 창은 동일출처정책(SOP)에 의거하여 서로의 정보를 알 수 없음.
  • 기본적으로 타 사이트나 도메인에서 데이터를 받아오는 것은 불가.(CORS)

JS만의 강점

  • HTML, CSS 완전히 통합 가능
  • 모든 주요 브라우저에서 지원
  • 간단한 일은 간단하게 처리할 수 있게 해줌.

JS 기반 transpile 언어들

browser에서 실행되기 전에 JS로 트랜스파일 할 수 있는 새로운 언어들이 많이 등장.

  • CoffeeScript: 짧은 문법을 도입하여 명료하고 이해하기 쉬운 코드로 작성. 자바스크립트를 위한 'syntactic sugar’
  • TypeScript: 'strict data typing'에 집중해 만든 언어
  • Flow: TS와 마찬가지로 자료형 강제에 목적을 둔 언어
  • Dart: 모바일 앱과 같이 브라우저가 아닌 환경에서 동작하는 고유의 엔진을 가진 독자적 언어
profile
'어?' 에서 '아!'가 되는 순간을 즐기는 개발자입니다.

0개의 댓글