JS 스터디 1장~2장

황상진·2022년 6월 15일
0

JavaScript

목록 보기
2/27
post-thumbnail

JS 스터디 1장

프로그래밍

프로그래밍이란 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환 후, 그 흐름을 제어하는 것

JS 스터디 2장

JavaScript

ES1 - 1997

  • 초판

ES2 - 1998

  • ISO/IEC 16262 국제 표준과 동일한 규격을 적용

ES3 - 1999

  • 정규 표현식, try...catch

ES5 - 2009

  • HTML5와 함께 출현한 표준안,JSON, strict mode, 접근자 프로퍼티, 프로퍼티 어트리뷰트 제어, 향상된 배열 조작 기능(forEach, map, filter, reduce, some, every)

ES6 - 2015

  • let, const, 클래스, 화살표 함수, 템플릿 리터럴, 디스트럭처링 할당, 스프레드 문법, rest 파라미터, symbol, promise, Map, Set, 이터러블, for...of, 제너레이터, Proxy, 모듈 import/export

ES7 - 2016

  • 지수 연산자(**), Array.prototype.includes, String.prototype.includes

ES8 - 2017

  • async/awit, Object 정적 메서드(Object.values, Boject.entries, Object.getOwnPropertyDescriptors)

ES9 - 2018

  • Object rest/spread 프로퍼티, Promise.prototype.finally, async generator, for await...of

ES10 - 2019

  • Object.fromEntries, Array.prototype.flat, Array.prototype.flatMap, optional catch binding

ES11 - 2020

  • String.prototype.matchAll, BigInt, globalThis, Promise.allSettled, null병합 연산자, 옵셔널 체이닝 연산자, for...in enumeration order

ES12 - 2021

  • String.prototype.replaceAll(), Promise.any(), WeakRefs, Logical assignment operators, Numeric separators

Ajax

1999년, JS를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능

jQuery

2006년, DOM(Document Object Model)을 더욱 쉽게 제어할 수 있게 되었고 크로스 브라우징 이슈도 어느 정도 해결

V8 JS Engine

2008년, 구글의 V8 JS Engine은 JS 동작을 더욱 빠르게 웹 어플리케이션에서 구축 가능
과거 웹 서버에서 수행되던 로직들이 대거 클라이언트 사이드로 이동하면서 FE 개발이 주목

Node JS

2009년, V8 JS Engine으로 빌드된 JS런타임 환경
웹 브라우저 이외의 환경에서도 JS가 동작하게 함
서버 사이드 어플리케이션 개발에 주로 사용, 모듈, 파일 시스템, HTTP등 API 제공
비동기 I/O를 지원하며 단일 스레드 이벤트 루프 기반으로 동작 -> 요청 처리 선능이 좋다
따라서, 데이터를 실시간으로 처리하기 위해 I/O가 빈번하게 발생하는 SPA에 적합하다.

JS는 웹, 모바일 하이브리드 앱, 서버사이드(Node.js), 데스크톱(Electron), 머신러닝(TensorFlow.js), 로보틱스(Johnny-Five) 환경을 위한 프로그래밍 언어로 발전

SPA framework

UX 중요성의 상승으로 개발 규모와 복잡도가 상승
이에 필요한 많은 패턴과 라이브러리 출현, 아키텍처 구축을 위해 프레임워크 등장
CBD(Component Based Development) 방법론 기반으로 SPA 대중화

JS와 ECMAScript

ECMAScript는 JS의 표준 사양 - 각 브라우저 제조사는 ECMAScript 사양을 준수하여 브라우저에 내장되는 JS Engine을 구현
JS는 ECMAScript와 브라우저에서 별도로 지원하는 클라이언트 사이드 Web API, DOM, BOM, Canvas, XMLHttpRequest, fetch, requstAnimationFrame, SVG, Web Storage, Web Component, Web Worker등을 어우르는 개념

JS의 특징

  • JS는 웹 브라우저에서 동작하는 유일한 프로그래밍 언어.
  • JS는 인터프리터 언어(개발자가 별도로 컴파일 작업을 수행하지 않음) JS Engine을 이용
  • 멀티 패러다임 프로그래밍 언어 - 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍 지원

출처 https://chanyeong.com/blog/post/29

profile
Web FrontEnd Developer

0개의 댓글