SlideShare a Scribd company logo
간략하게 보는
자바스크립트의 변천사
송헌용
1995년 - 표준화되기 이전
• 화면 인터랙션을 위해 탄생
• 넷스케이프 - 라이브스크립트
• 익스플로러 - 제이스크립트
• 서로 다른 회사에서 개발하다보니 파편화
2
1996년 - 표준화 시도
• 넷스케이프에서 표준화 기구인 Ecma International에
요청
• 1996년 11월, ECMA-262라 불리는 명세서에 대한 작
업을 시작했고 그 버전은 1997년 7월에 완성
• 당시 Sun사가 ‘JAVA‘라는 단어를 상표 등록을 해놨기에
‘JavaScript’라고 부를 수 없었음
• 표준 언어의 이름은 ECMAScript이고, 대외적으로 알
리기 위해서 자바스크립트
• 현재 ECMAScript의 최신 버전은 7이고, 이것은
ECMA-262, edition 7과 같은 의미
3
1997년 - 동적인 HTML
• HTML 문서를 DOM으로 표현
• 자바스크립트로 DOM에 접근 가능
• 동적인 웹 컨텐츠 개발 가능
• 스타일이 변하고, 요소를 숨기거나 보이게 가능
• Internet Explorer4에서 등장
4
1999년 - XMLHttpRequest
• HTTP 혹은 HTTPS를 이용해 서버와 통신
• 페이지 새로고침 없이 데이터 갱신
• 텍스트 형식으로 데이터를 전송 받음
• Internet Explorer5에서 등장
5
1999년 - JSON
• JavaScript Object Notation
• 비동기 서버 통신을 위해 사용
• XML을 대체하는 주요 데이터 포맷
• key - value의 쌍으로 이루어진 구조
6
2005년 - Ajax의 대중화
• 1999년에 탄생했지만, 관심이 많지 않았음
• 구글에서 Ajax를 활용해서 지도, 메일을 개발
• 기존에는 대부분의 로직을 백엔드에서 담당했지만, 프
론트엔드에서도 로직을 일부 담당하게 됨
• 싱글 페이지 어플리케이션 개발의 인기
7
2006년 - jQuery
• Javascript + Query(원래는 jSelect를 하려고 했음)
• DOM 트리에서 원하는 것을 질의한다는 의미로 Query
• 이 당시, 웹 브라우저마다 서로 다른 API를 제공
• 네이티브 자바스크립트로 개발하면 크로스브라우징 이
슈
• DOM 탐색, 선택, 수정
• 인터랙션
• 유틸리티 메소드
8
2008년 - V8 엔진
• 구글에서 개발된 오픈소스, 자바스크립트 엔진
• JIT = 인터프리터의 장점 + 컴파일러의 장점
• Just-In-Time compilation
• 크롬 브라우저와 안드로이드 브라우저에 탑재
• ECMA Script 3rd Edition 규격의 C++로 개발
• 독립적으로 실행이 가능
9
2009년 - Node.js
• 단일 스레드 + 이벤트 루프를 통한 높은 처리 성능
• 내장 HTTP 서버 라이브러리를 포함
• 확장성 있는 네트워크 어플리케이션 개발에 사용되는
소프트웨어 플랫폼
• 패키지 매니저인 NPM은 2011년에 등장
10
Node.js의 주요 활용 예
• NPM: 외부 의존성 관리
• Babel: 코드 변환(transpiler)
• Browerify / Webpack: 모듈 번들러
• Grunt / Gulp / NPM script: 빌드 자동화
• Express + etc: API 웹 서버 구축
11
2015년 - ES2015
• let / const에 의한 블록 스코프
• Map / Set / WeakMap / WeakSet에 의한 컬랙션
• 형을 정의하는 class
• generator / for … of
• CommonJS 방식의 모듈
• context 자동 제어를 위한 화살표 함수
• 비동기 프로그래밍을 위한 Promise
12
2016년 - ES2016
• ES2015의 마이너 패치
• Array.prototype.includes
• 거듭제곱 연산자 **
13
2017년 - ES2017
• Object.values
• Object.entries
• Object.getOwnPropertyDescriptors
• String.prototype.padStart
• String.prototype.padEnd
• async / await
14

More Related Content

What's hot

[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the Web[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the WebHyunSeob Lee
 
어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1bingoori
 
킴스큐Rb 설치
킴스큐Rb 설치킴스큐Rb 설치
킴스큐Rb 설치Gitaek kwon
 
크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET CoreSangHoon Han
 
Blazor와 안면 트기!
Blazor와 안면 트기!Blazor와 안면 트기!
Blazor와 안면 트기!SangHoon Han
 
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션미래웹기술연구소 (MIRAE WEB)
 
모듈시스템과 webpack
모듈시스템과 webpack모듈시스템과 webpack
모듈시스템과 webpackDataUs
 
2017년 javascript의 현재주소
2017년 javascript의 현재주소2017년 javascript의 현재주소
2017년 javascript의 현재주소윤학 권
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)jeongseokoh
 
Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01SangHun Lee
 
nodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOnodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOMungyu Choi
 
The LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language BasicThe LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language Basicjeong seok yang
 
Vue.js와 Firebase를 활용한 웹 서비스 개발
Vue.js와 Firebase를 활용한 웹 서비스 개발Vue.js와 Firebase를 활용한 웹 서비스 개발
Vue.js와 Firebase를 활용한 웹 서비스 개발Aria (In Suk) Kim
 
Weblockly 소개자료
Weblockly 소개자료Weblockly 소개자료
Weblockly 소개자료Kay Sung Hyuk
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기복연 이
 
vuetiful korea 발표자료
vuetiful korea 발표자료vuetiful korea 발표자료
vuetiful korea 발표자료치웅 이
 

What's hot (20)

[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the Web[I/O Extended 2019 Incheon] What's new in the Web
[I/O Extended 2019 Incheon] What's new in the Web
 
Mean stack Start
Mean stack StartMean stack Start
Mean stack Start
 
어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1
 
킴스큐Rb 설치
킴스큐Rb 설치킴스큐Rb 설치
킴스큐Rb 설치
 
크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core크로스플랫폼으로 다시 태어난 ASP.NET Core
크로스플랫폼으로 다시 태어난 ASP.NET Core
 
Blazor와 안면 트기!
Blazor와 안면 트기!Blazor와 안면 트기!
Blazor와 안면 트기!
 
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
Kaazing - 웹소켓 기술의 유일한 엔터프라이즈 솔루션
 
모듈시스템과 webpack
모듈시스템과 webpack모듈시스템과 webpack
모듈시스템과 webpack
 
2017년 javascript의 현재주소
2017년 javascript의 현재주소2017년 javascript의 현재주소
2017년 javascript의 현재주소
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)
 
Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01Basic of web ref.웹을지탱하는기술_01
Basic of web ref.웹을지탱하는기술_01
 
Umbraco Introduction
Umbraco IntroductionUmbraco Introduction
Umbraco Introduction
 
nodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOnodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IO
 
The LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language BasicThe LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language Basic
 
Vue.js와 Firebase를 활용한 웹 서비스 개발
Vue.js와 Firebase를 활용한 웹 서비스 개발Vue.js와 Firebase를 활용한 웹 서비스 개발
Vue.js와 Firebase를 활용한 웹 서비스 개발
 
Weblockly 소개자료
Weblockly 소개자료Weblockly 소개자료
Weblockly 소개자료
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
 
vuetiful korea 발표자료
vuetiful korea 발표자료vuetiful korea 발표자료
vuetiful korea 발표자료
 
About Django
About DjangoAbout Django
About Django
 

Similar to 자바스크립트의 변천사

인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍Chris Ohk
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교Junyoung Lee
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS LambdaSeungho Kim
 
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례Jeongsang Baek
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서draghome
 
Node.js 살펴보기
Node.js 살펴보기Node.js 살펴보기
Node.js 살펴보기명신 김
 
이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼Kenu, GwangNam Heo
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdfOpen Source Consulting
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER Engineering
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Amazon Web Services Korea
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER Engineering
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 

Similar to 자바스크립트의 변천사 (20)

인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교
 
Crawling with AWS Lambda
Crawling with AWS LambdaCrawling with AWS Lambda
Crawling with AWS Lambda
 
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
 
Node.js 살펴보기
Node.js 살펴보기Node.js 살펴보기
Node.js 살펴보기
 
이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
 
Datasnap web client
Datasnap web clientDatasnap web client
Datasnap web client
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 

Recently uploaded

INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintahghwo99
 
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라Jay Park
 
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPTpcupcu20831004
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외Jay Park
 
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEETSoftwide Security
 
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개jsilabai
 

Recently uploaded (6)

INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
 
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
 
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
 
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
 

자바스크립트의 변천사

  • 2. 1995년 - 표준화되기 이전 • 화면 인터랙션을 위해 탄생 • 넷스케이프 - 라이브스크립트 • 익스플로러 - 제이스크립트 • 서로 다른 회사에서 개발하다보니 파편화 2
  • 3. 1996년 - 표준화 시도 • 넷스케이프에서 표준화 기구인 Ecma International에 요청 • 1996년 11월, ECMA-262라 불리는 명세서에 대한 작 업을 시작했고 그 버전은 1997년 7월에 완성 • 당시 Sun사가 ‘JAVA‘라는 단어를 상표 등록을 해놨기에 ‘JavaScript’라고 부를 수 없었음 • 표준 언어의 이름은 ECMAScript이고, 대외적으로 알 리기 위해서 자바스크립트 • 현재 ECMAScript의 최신 버전은 7이고, 이것은 ECMA-262, edition 7과 같은 의미 3
  • 4. 1997년 - 동적인 HTML • HTML 문서를 DOM으로 표현 • 자바스크립트로 DOM에 접근 가능 • 동적인 웹 컨텐츠 개발 가능 • 스타일이 변하고, 요소를 숨기거나 보이게 가능 • Internet Explorer4에서 등장 4
  • 5. 1999년 - XMLHttpRequest • HTTP 혹은 HTTPS를 이용해 서버와 통신 • 페이지 새로고침 없이 데이터 갱신 • 텍스트 형식으로 데이터를 전송 받음 • Internet Explorer5에서 등장 5
  • 6. 1999년 - JSON • JavaScript Object Notation • 비동기 서버 통신을 위해 사용 • XML을 대체하는 주요 데이터 포맷 • key - value의 쌍으로 이루어진 구조 6
  • 7. 2005년 - Ajax의 대중화 • 1999년에 탄생했지만, 관심이 많지 않았음 • 구글에서 Ajax를 활용해서 지도, 메일을 개발 • 기존에는 대부분의 로직을 백엔드에서 담당했지만, 프 론트엔드에서도 로직을 일부 담당하게 됨 • 싱글 페이지 어플리케이션 개발의 인기 7
  • 8. 2006년 - jQuery • Javascript + Query(원래는 jSelect를 하려고 했음) • DOM 트리에서 원하는 것을 질의한다는 의미로 Query • 이 당시, 웹 브라우저마다 서로 다른 API를 제공 • 네이티브 자바스크립트로 개발하면 크로스브라우징 이 슈 • DOM 탐색, 선택, 수정 • 인터랙션 • 유틸리티 메소드 8
  • 9. 2008년 - V8 엔진 • 구글에서 개발된 오픈소스, 자바스크립트 엔진 • JIT = 인터프리터의 장점 + 컴파일러의 장점 • Just-In-Time compilation • 크롬 브라우저와 안드로이드 브라우저에 탑재 • ECMA Script 3rd Edition 규격의 C++로 개발 • 독립적으로 실행이 가능 9
  • 10. 2009년 - Node.js • 단일 스레드 + 이벤트 루프를 통한 높은 처리 성능 • 내장 HTTP 서버 라이브러리를 포함 • 확장성 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼 • 패키지 매니저인 NPM은 2011년에 등장 10
  • 11. Node.js의 주요 활용 예 • NPM: 외부 의존성 관리 • Babel: 코드 변환(transpiler) • Browerify / Webpack: 모듈 번들러 • Grunt / Gulp / NPM script: 빌드 자동화 • Express + etc: API 웹 서버 구축 11
  • 12. 2015년 - ES2015 • let / const에 의한 블록 스코프 • Map / Set / WeakMap / WeakSet에 의한 컬랙션 • 형을 정의하는 class • generator / for … of • CommonJS 방식의 모듈 • context 자동 제어를 위한 화살표 함수 • 비동기 프로그래밍을 위한 Promise 12
  • 13. 2016년 - ES2016 • ES2015의 마이너 패치 • Array.prototype.includes • 거듭제곱 연산자 ** 13
  • 14. 2017년 - ES2017 • Object.values • Object.entries • Object.getOwnPropertyDescriptors • String.prototype.padStart • String.prototype.padEnd • async / await 14