JavaScript 의 현대적 활용 분야 (2019)
Source
Evernote/Inbox/What You Can Do with JavaScript Today Nils Mehlhorn.md
Summary
이 문서는 2019 년 기준 JavaScript 가 웹 개발을 넘어 데스크톱, 모바일, 서버 등 다양한 분야에서 어떻게 활용되는지 설명합니다. 주요 내용은 다음과 같습니다:
- 웹 개발: React, Angular, Vue.js 등의 프레임워크를 통한 SPA 구축이 일반화되었으며, Gatsby, Next.js 등을 이용한 정적 사이트 생성도 활발합니다. 웹 컴포넌트 기반의 프레임워크 없는 개발도 가능합니다.
- 데스크톱 앱: Electron 을 사용하여 VS Code 와 같은 리치한 데스크톱 앱을 만들 수 있으나 번들 크기가 큰 단점이 있습니다. 대안으로 PWA(Progressive Web Apps) 나 가벼운 프레임워크를 언급합니다.
- 모바일 앱: React Native 와 NativeScript 를 통해 JavaScript 로 네이티브 모바일 앱을 개발할 수 있으며, 웹과 코드 공유가 가능합니다.
- 서버 및 API: Node.js 런타임을 기반으로 Express, Koa, hapi, Nest.js 등의 프레임워크로 서버 및 REST/GraphQL API 를 구축할 수 있습니다.
Key Points
- JavaScript 는 웹, 데스크톱, 모바일, 서버 등 전 플랫폼에서 활용 가능합니다.
- 웹 개발에서는 React/Angular/Vue 기반 SPA 와 정적 사이트 생성기(Gatsby 등) 가 주류입니다.
- 데스크톱 앱은 Electron 이 널리 쓰이지만, PWA 도 중요한 대안으로 부상하고 있습니다.
- 모바일 개발은 React Native 와 NativeScript 를 통해 네이티브 성능과 코드 공유를 실현합니다.
- 서버 측 개발은 Node.js 와 Express, Nest.js 등의 프레임워크로 확장 가능한 백엔드를 구축합니다.
-
JavaScript 기반 분산 컴퓨팅 고려사항
-
자바스크립트 아키텍처 v0.4
-
웹의 병목 현상: JavaScript
-
Node.js 란? (IBM developerWorks)
-
Play Framework 개요
-
자바스크립트 동작 원리: 엔진, 런타임, 호출 스택
-
Cycle.js
-
반응형 프로그래밍(Reactive Programming)에 대한 조사
-
ML 기반 번들링: JavaScript 툴링의 미래
-
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
-
비동기적 JavaScript
-
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
-
Web Workers: JavaScript 멀티스레딩
-
JavaScript this 키워드 동작 원리
-
JavaScript Promises: 개념, 용어 및 표준화
-
Distributed Electronic Rights in JavaScript
-
JavaScript 성능 향상을 위한 Thread-level Speculation (TLS)
-
HTML에서 Javascript와 CSS 기반으로 애니메이션을 구현하는 방법
-
JavaScript 엔진의 동작 원리 (V8 기준)
-
Design Patterns in JavaScript (tcorral)
-
2017 년 JavaScript 테스트 개요 (Powtoon Engineering)
-
JavaScript 과잉 조직화 (Over-Organizing) 의 적절성
-
웹의 불안전한 JavaScript 사용 관행에 대한 측정 연구
-
CSRF)
-
자바스크립트에서의 Continuation-passing style (CPS) 소개
-
더글라스 크록포드의 작업 철학 및 JavaScript 관점
-
JSWhiz: JavaScript 메모리 누수 정적 분석 도구
-
requestAnimationFrame 사용법
-
JavaScript 패키지 매니저의 간략한 역사 (npm, Yarn, pnpm)
-
HTTP Archive: jQuery 호스팅 및 버전 분산 분석 (2013)
-
Web Workers API 개요 및 기본 사용법
-
대규모 JavaScript 애플리케이션 설계 및 엔지니어 성장
-
북마클릿(Bookmarklet) 정의
-
Prototype용 선택 상자 플러그인
-
ECMAScript 6 Generator 개요 및 Node.js 활용
-
CSS :scope 가상 클래스의 용도 및 동작 방식
-
웹 기반 연산 오프로딩 및 상태 시리얼라이제이션 연구 동향
-
Web Framework Benchmark Inspired
-
실시간 투표 애플리케이션 구축 (Node.js, Express, AngularJS, MongoDB)
-
Requirify: 브라우저 콘솔에서 동적 라이브러리 로딩
-
종성 분리 알고리즘
-
Thinking in React (리액트스럽게 생각하기)
-
jQuery 이벤트 핸들링: .on() 사용 권장
-
CSS를 이용한 클라이언트 측 전체 텍스트 검색
-
8bit.js: Web Audio API 기반 8비트 사운드 라이브러리
-
자바스크립트 객체 더하기 연산의 타입 변환 규칙
-
Freemarker 템플릿 상속을 통한 레이아웃 관리
-
jQuery 애플리케이션 아키텍처 도구 (Addy Osmani)
-
Node.js Cluster 모듈 개요 및 활용
-
Distributed Web Worker 개발 중 Promise 및 이벤트 처리 이슈
-
Progressive React
-
자바스크립트 프로토타입(Prototype) 개념 정리
-
페이스북 스파르탄 프로젝트의 비밀병기 Bolt.JS
-
자바스크립트 메모리 관리 및 4가지 흔한 메모리 누수 대처법
-
Three.js 시작 가이드 (Aerotwist)
-
Simple Ajax 예제
-
AngularJS 와 RequireJS 를 활용한 대규모 웹 어플리케이션 개발
-
자바스크립트 디자인 패턴 - 프록시(Proxy)
-
Web Animations API: element.animate() (Chrome 36)
-
Java 기반 웹 채팅 서버의 동시성 문제 및 아키텍처 검토
-
Meteor.js 시작하기 및 아키텍처 개요
-
React vs Vue 비교 (2019 Edition, React Hooks 기준)
-
AJAX 기본 원리 및 XMLHttpRequest 구현
-
GPU 동작 원리 및 아키텍처 개요
-
VueJS 프로젝트에 Prettier + ES6 Lint 적용
-
WebAssembly (WASM) 개요 및 설계 목표
-
리액트(React) 및 리액트 네이티브 개요 (2015)
-
2013년 자바스크립트 프레임워크 인기 동향 (Caliper Blog)
-
PayPal 의 Node.js 전환 사례 요약
-
GitHub의 jQuery 제거 사례
-
Didact: 리액트 원리 학습을 위한 DIY 가이드 시리즈 소개
-
React vs AngularJS 비교 (Quora)
-
Objective-C 함수 포인터와 코드 블럭
-
Angular.js 의 핵심 개념 및 장점 요약
-
2017년 주목할 만한 Java 라이브러리 목록
-
텍스트 교체하기: 5가지 방법 (Swapping Out Text, Five Different Ways)
-
harp.js: 전처리 기능을 갖춘 정적 웹서버
-
자바스크립트 배열 메소드 5가지 (indexOf, filter, forEach, map, reduce)
-
PayPal의 Kraken.js 프레임워크 리뷰 및 평가
-
브라우저 앙상블을 활용한 분산 컴퓨팅 (WeevilScout)
-
eBay 의 WebAssembly 활용 사례: 모바일 웹 바코드 스캐너
-
JavaScript 학습 자료 (2013)
-
grunt-usemin을 사용한 프론트엔드 자산 패키징
-
곽철용 짤 생성기 개발 후기 (Vue + HTML Canvas)
-
Node.js 세션 관리 (Session Management)
-
Angular 2 대신 Vue.js 선택 및 React 배제 이유
-
proxyquire: Node.js require 의존성 오버라이드 라이브러리