JavaScript란?
- 자바스크립트는 객체(object)기반의 스크립트 언어이다.
- html은 웹 내용을 작성하고, css로는 웹을 디자인하고, javascript로 웹의 동작을 구현한다고 보면 된다.
- 자바스크립트는 주로 웹 브라우저에서 사용되나, Node.js같은 프레임워크를 사용한다면 서버 측에서도 사용이 가능하다.
JavaScript의 특징
- 자바스크립트는 객체 기반의 언어이지만, 상속과 클래스의 개념을 사용하지 않습니다.
- 자바스크립트는 인터프린터 언어로서 클라이언트의 웹 브라우저에 의해 해석되고 실행됩니다. (컴파일 x)
- 자바스크립트는 html문서 내에 기술되고 html문서와 함께 수행됩니다.
- 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다.
JavaScript를 사용하는 이유
- 자바스크립트는 사용자에 요구에 따라서 문서 전체를 불러올 필요없이 일부 필요한 데이터만 서버로 부터 가져오는 ajax 통신을 할 수 있다.
- ajax통신의 기반 기술이 자바스크립트이다.
Java 와 JavaScript의 차이점
자바 (Java) | 자바 스크립트 (JavaScript) |
컴파일언어 | 인터프린터 언어 |
타입 검사가 매우 엄격함 | 타입을 명시하지 않음 |
클래스(class)기반의 객체지향언어 | 프로토타입(prototype)기반의 객체지향 언어 |
JavaScript 작성 방식
- 인라인 자바스크립트:태그 내에 직접 자바스크립트 명령을 작성, 고전적인 방법 / 기본적으로 html문서와 분리하는것이 원칙이라 잘 사용하지 않음
- 내부 자바스크립트: html문서내 별도 영역에 자바스크립트 영역을 표시하여 작성하는 방식
- 외부 자바스크립트: 외부 자바스크립트 파일(확장자.js)로 작성
- <script>태그 안에 src속성에 자바스크립트 파일경로/파일명 지정
주요 라이브러리
- jQuery: DOM Manipulating 라이브러리. 사실상 자바스크립트 개발에 필수였던 라이브러리였으나 리액트, 앵귤러 등의 프레임워크의 생산성이 워낙 높다 보니 2010년대 후반부터는 사실상 레거시가 되었으며 아주 간단한 웹사이트에서만 쓰이고 안 쓰는 추세다. 기본적으로 document.querySelectorAll('oooo')를 $('oooo')로 쓸 수 있는 등의 기능이 있다.
- AngularJS: 구글에서 제작한 프론트엔드용 클라이언트 사이드 JavaScript 프레임워크. Angular 1으로도 불린다. 백엔드, 프런트엔드를 동시에 작업할 수 있다. MongoDB, Express, AngularJS, Node.js를 함께 사용하여 MEAN Stack으로 많이 사용한다. Angular 2 이후로는 이건 TypeScript를 이용한다. 기본적으로 많은 기능들이 내재되어 있다.
- React: Facebook에서 만든 프론트엔드용 오픈소스 라이브러리다. 단방향 데이터 흐름과, Virtual DOM 개념을 도입한 UI 컴포넌트 라이브러리. 생산성이 높고, DOM 업데이트에 있어서 성능이 매우 빨라 동적인 웹 애플리케이션 구성에 유리하다. 그리고 이러한 동적 웹이 모던 웹 애플리케이션의 필수 요소가 되어버린 만큼 출시 이후 꾸준히 점유율을 늘려가며 업계 표준 라이브러리 중 하나로 자리 잡았다. 최근에는 React Hooks이라 불리는 메서드가 지원되면서 생산성이 더 좋아졌다. html로 뷰를 작성해야 하는 Angular와는 다르게 JSX라는 문법을 지원하면서 JavaScript만으로 애플리케이션을 작성하는 게 가능하다. 기존 문서에는 MVC의 V(View)를 담당하는 라이브러리라고 되어 있었으나 리액트는 MVC framework가 아니며 View뿐만 아니라 Controller 부분까지도 리액트 컴포넌트 내에서 작성이 가능하므로 정확한 설명이 아니다.
- Vue.js: 중국계 미국인 에반 유가 만든 사용자 인터페이스를 만들기 위한 프론트엔드용 프레임워크이다. 굉장히 자유롭고 유연하게 추가 기능들을 불러올 수 있다는 특징이 있으나 추가 기능들을 무분별하게 사용하는 경우 안정성을 떨어뜨릴 수 있다.
- Node.js: 브라우저 안에서만 작동하던 JavaScript를 브라우저 외의 환경에서 작동할 수 있게 만들어 준 런타임 환경이다.
- Express.js: Node.js를 위한 웹 애플리케이션 프레임워크. 주로 Node로 백엔드 개발할 때 사용된다.
- Deno: Node.js의 개발자 Ryan Dahl이 Node.js의 아쉬운점을 개선한 JavaScript 엔진이다.
'javascript > javascript' 카테고리의 다른 글
javascript 문자열 총 정리 (0) | 2021.12.10 |
---|---|
javascript 변수 (0) | 2021.12.09 |