JavaScript
: 1995년 넷스케이프에서 HTML을 동적으로 표현할 목적으로 만든 모카(Mocha)라는 이름의 스크립트 언어로 탄생
: 과거에는 브라우저에서만 실행되는 언어로 취급되었으나, NodeJS와 같은 런타임 환경이 출현하면서 백엔드에서도 사용할 수 있게됨
- 현 시점에서의 JavaScript
: 프론트엔드, 백엔드, 인프라, 서버리스, 앱 개발 등 대부분의 곳에서 사용
: 탄탄하고 풍성한 생태계를 가짐
패키지 매니저
: JavaScript 개발에 필요한 패키지를 관리하는 도구
- npm
: NodeJS에 포함된 기본 패키지 매니저
: 용량, 다운로드 속도, 보안 문제가 존재
- yarn
: npm의 문제를 개선한 대표적인 JS 패키지 매니저
- pnpm
: 심볼릭 링크를 사용해 npm의 문제를 개선한 패키지 매니저
빌드 도구
: JavaScript로 작성한 코드를 실행하기 좋은 형태로 컴파일하는 도구
: 예전에는 자바스크립트의 라이브러리를 import 할 때 <script> 태그를 사용했으나, 최근에는 빌드 도구를 사용해 하나의 파일로 합쳐진 (번들링 된) 스크립트를 import 하여 사용
: 빌드 도구는 아직 표준화가 되지 않아 많은 소프트웨어가 경쟁중
- webpack
: 다양한 모듈 시스템을 지원하나 느리다는 단점이 존재
- ESBuild
: 웹팩에 비해 빠른 빌드속도와 편리한 기능이 추가된 빌드 도구
: ESM 형식의 JS만 지원
- Vite
: 웹팩에 비해 빠른 빌드속도와 편리한 기능이 추가된 빌드 도구
: ESM 형식의 JS만 지원
개발 도구
: 코드 작성을 위한 에디터
- VSCode
: 일렉트론 (자바스크립트 크로스 플랫폼 데스크톱 앱을 만드는 프레임워크)로 만들어져 자바스크립트 뿐만 아니라 타입스크립트 코드가 많이 포함되어 있어 자바스크립트에 특화된 기능을 대거 지원
- WebStorm
: 자바스크립트 디버깅, 단위 테스팅 등 자바스크립트에 특화된 기능을 대거 지원
웹 프레임워크
: 웹 서버를 구현하기 위한 기능들을 지원하는 프레임워크
- 프론트엔드
: React / Vue.js
- 백엔드
: Express / NestJS
: 빠르게 서비스를 만들때는 Express, 팀으로 협업하면서 규모 있는 서비스를 만들때는 NestJS를 주로 사용
- 애플리케이션
: React Native / 일렉트론
백엔드 개발 환경
: 백엔드 프로그램을 개발하기 위한 런타임
- Node.js
: 가장 유명한 자바스크립트 백엔드 런타임
- Deno
: Node.js에서 개선하지 못한 부분들을 개선하여 만든 백엔드 런타임
: Node.js 개발자인 라이언 달이 만듦
: 아직 호환성 등의 문제가 있으나 일관성 있는 개발 경험을 제공
인프라
: 자바스크립트로 인프라를 관리하기 위한 도구
- pulumi
: 자바스크립트 코드로 클라우드 환경 기반에서 인프라를 관리하는 도구
: 개인 용도로 사용하면 무료, 기업용은 유료
Reference
'Programming > JavaScript' 카테고리의 다른 글
Javascript function* (0) | 2023.08.11 |
---|---|
편리한 자바스크립트 ORM - Prisma (0) | 2023.07.07 |
코루틴 (CoRoutine)과 서브루틴 (SubRoutine)의 차이 (1) | 2023.06.05 |
undefined / null / NaN / 0 / '' 의차이 (0) | 2023.05.19 |
JavaScript 패키징 도구 (번들링 도구) (0) | 2023.04.24 |