모던 JavaScript 튜토리얼 Part 1. 코어 자바스크립트

ne_ol·2022년 2월 2일
0
post-thumbnail

1.1 자바스크립트란?

1. 정의

  • '웹페이지에 생동감을 불어넣는' 프로그래밍 언어
  • 프로그램 written by JS: 'script' -> 웹페이지 로딩 때 자동 실행
  • Java와는 아무런 상관 없는 언어!
    • JavaScript가 처음 만들어졌을 때 이름이 LiveScript였는데 당시 Java의 인기가 아주 높은 상황이어서, Java의 '동생' 격인 언어로 홍보하다가 이름이 JavaScript로 바뀌었다.
  • JavaScript engine이라는 프로그램이 있는 모든 디바이스에서 동작 (브라우저엔 '자바스크립트 가상 머신' 엔진 내장)
    • Chrome & Opera: V8
    • Firefox: SpiderMonkey
    • IE: Trident or Chakra
    • Edge: ChakraCore
    • Safari: SquirrelFish
  • JS engine Procedure
    • 파싱 (스크립트 읽기)
    • 컴파일 (기계어로 전환)
    • 코드 실행 (기계어 실행)

2. 브라우저에서 할 수 있는 일

  • 모던 자바스크립트 -> '안전한' 프로그래밍 언어 (메모리, CPU 조작 허용 X)
  • 웹페이지 조작, 클라이언트와 서버의 상호작용 관한 모든 일 가능
    • 새로운 HTML 추가 or HTML, CSS 수정
    • 사용자 행동 (ex.마우스 클릭, 포인터 움직임, 키보드 키 눌림, etc.) 에 반응
    • 원격 서버에 요청, 파일 다운로드, 업로드 (w/AJAX or COMET)
    • 쿠키 가져오거나 설정, 사용자에게 질문/메시지 보여주기
    • 클라이언트 측에 데이터 저장 (로컬 스토리지)

3. 브라우저에서 할 수 없는 일

  • 디스크에 저장된 임의의 파일 읽기/쓰기/복사/실행 제약
  • 모던 브라우저도 접근은 제한
  • 타 사이트 or 도메인에서 데이터 받기 불가

4. 자바스크립트만의 강점

  • HTML/CSS와 완전히 통합 가능
  • 간단한 일 -> 간단하게 처리
  • 모든 주요 브라우저에 지원, 기본 언어로 사용

5. 자바스크립트 '너머의' 언어들

  • CoffeeScript: JS를 위한 'syntactic sugar', 짧은 문법 + 이해하기 쉬운 코드!
  • TypeScript: 자료형의 명시화 (strict data typing) 에 집중해서 만든 언어 made by Microsoft
  • Flow: 자료형 강제 (TypeScript와는 다른 방식) made by Facebook
  • Dart: 브라우저가 아닌 환경 (ex. 모바일 앱) 에서 동작하는 고유 엔진을 가진 독자적 언어 made by Google

6. 요약

  • JavaScript는 브라우저 외에도 다양한 환경에서 쓰이고 있다.
  • JavaScript는 HTML/CSS 와의 완전한 통합 가능!
  • JavaScript는 transpile 할 수 있는 언어가 많다! (각 언어마다 고유 기능 제공)
profile
개발되는 중입니다.

0개의 댓글