*이 게시글은 인프런-처음 만난 리액트 강좌를 보고 정리한 글입니다.


목차

1. 리액트란?

2. 리액트의 장점1-빠른  업데이트와 렌더링 속도

3. 리액트의 장점2-컴포넌트 기반 구조

4. 리액트의 단점


1. 리액트란?

UI를 만들기위한 자바스크립트 라이브러리

사용자와 웹사이트의 상호작용을 돕는 인터페이스를 만들기 위한 자바스크립트 기능 모음집

SPA를 쉽고 빠르게 만들 수 있게 해주는 도구

 

라이브러리 : 자주 사용되는 기능들을 정리해 모아 놓은 것

출처 : 인프런-처음 만난 리액트 강좌

 

★프레임워크와 라이브러리

프레임워크는 뼈대나 기반구조를 뜻하는데 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느 정도 뼈대(구조)를 제공하며 이러한 뼈대 위에서 사용자는 코드를 작성하여 애플리케이션을 개발한다.

앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래스, 메서드등을 구현한다.

출처 : 코딩 공부 일지 티스토리

라이브러리는 소프트웨어를 개발할 때 컴퓨터 프로그램에 필요한 특정 기능을 모아둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미한다. 

 

출처 : 코딩 공부 일지 티스토리

프레임워크와 라이브러리의 차이점은 제어 흐름의 권한이 어디에 있는가인데

라이브러리의 경우 사용자가 개발 시 필요한 기능이 있을경우 능동적으로 라이브러리를 호출하여 사용하거나 기존에 구성된 함수나 코드를 가져다 쓰는 식으로 직접 코드의 흐름을 제어해야하지만

 

프레임워크는 애플리케이션의 코드가 있는데 프레임워크가 짜 놓은 틀에서 수동적으로 동작하기 때문에 제어의 흐름은 프레임워크가 가지고 있고 사용자가 그안에 필요한 코드를 작성하게 된다. 

 

즉, 프레임워크는 양식이 있는 글 작성, 라이브러리는 자유양식 글 작성 이렇게 생각하면 될 듯하다.


2. 리액트의 장점1- 빠른 업데이트와 렌더링 속도

렌더링은 사용자 화면에 뷰를 보여 주는 것을 말하는데 이런 렌더링 과정을 리액트에서는 render라는 함수가 담당한다.

render 함수는 뷰가 어떻게 생겼고 작동하는지에 대한 정보를 지닌 객체를 반환한다.

따라서 초기렌더링은 렌더링을 하고 렌더링 작업을 통해 얻은 정보들을 이용하여 HTML 마크업(<div>..</div> 같은거)을 만들고 그것을 실제 페이지 DOM 요소 안에 주입한다.

 

여기서 말하는 업데이트는 웹사이트에서 화면에 나타나는 내용이 바뀌는 것이라고 생각하면 되는데

업데이트 될 때는 변화에 따라 뷰가 변형되는 것이 아니라 새로운 요소로 갈아끼우는 것이며

새로운 데이터를 가지고 redner 함수가 또 다시 호출돼서 그 데이터를 지닌 뷰가 생성되게 된다.

 

render 함수가 반환하는 결과를 곧바로 DOM에 반영하지 않고, 이전에 render 함수가 만들었던 정보와 현재  render함수가 만든 정보를 비교한다.

자바스크립트를 사용하여 두 가지 뷰를 최소한의 연산으로 비교한 후, 둘의 차이를 알아내 최소한의 연산으로 DOM 트리를 업데이트 하는 것이다.

출처 : 개발자 시니 티스토리 블로그

이 것이 뒤에 나오는 Virtual Dom에 대한 기본 개념이다.

 

Dom부터 차근차근 다시 알아보자.

 

★Virtual DOM

1> DOM(Document Object Model)이란?

웹페이지를 정의하는 하나의 객체

하나의 웹사이트에 대한 정보를 담고 있는 큰 그릇

웹페이지를 이루는 태그들을 자바스크립트가 이용할 수 있게 끔 브라우저가 트리 구조로 만든 객체 모델

DOM은 트리 형태라서 특정 노드를 찾거나 수정하거나 제거하거나 원하는 곳에 삽입할 수 있다.

Dom의 단점은 잦은 DOM 업데이트는 오류와 UI에 악영향을 미친다

ex) 광고창 하나가 바뀌었다고해도 전체 페이지를 계속 업데이트를 해야한다.

 

 

*문서 객체란 html, head, body 같은 태그들을 javacsript가 이용할 수 있는 (메모리에 보관할 수 있는) 객체를 의미한다.

*자바스크립트가 html 태그를 조작 할수 있는 이유는 Document라는 전역 객체를 통해 접근하기 때문이다.(window는 document 객체의 상위에 위치)

출처 : 개발자 시니 티스토리 블로그

1-1>웹페이지가 빌드 되는 과정

브라우저가 HTML 파일을 읽어와서 화면에 띄워주는 과정을 'critical rendering path'라고 하는데

이 과정을 2가지로 나누면

(1) 브라우저가 HTML과 CSS를 파싱하여, 화면에 어떤 것이 보여지게 되는지 결정하는 과정

(2) 브라우저가 렌더링하는 과정

으로 나뉜다.

 

(1)번 과정을 거치면 렌더트리가 만들어지며 렌더트리는 HTML element와 그에 대응하는 스타일을 표현한 것이다.

출처 : yejinee.log

1-2> DOM은 어떻게 만들어지는가?

DOM은 HTML문서를 객체 기반으로 표현한 것이며

객체기반인 이유는 HTML의 구조와 내용을 바꿔서 다양한 프로그램에서 쉽게 사용할 수 있게 하기 위함이다.

DOM의 객체 구조는 노드 트리라고도 불리는데 DOM을 루트에서부터 여러 노드들이 가지치며 나오는 트리로 생각할 수 있기 때문이다.

 

1-3>DOM의 특징

①DOM은 원본 HTML이 아니다

DOM은 유효한 HTML문서에 대한 인터페이스이며

HTML을 파싱하며 DOM을 생성하는 과정에서, 브라우저는 HTML에서 문제가 있는 것들을 고칠 수 있다. 

출처 : yejinee.log

②DOM은 브라우저에서 보여지는 것이 아니다

브라우저 화면에서 보여지는 것은 렌더트리이며 렌더트리는 DOM과 CSSOM을 합쳐져서 구성하게 된다.

 

1-4> DOM Node와 Element의 차이

DOM은 Node의 계층 구조로 이루어져 있으며 HTML에서 그냥 텍스트도 하나의 노드가 된다.

노드 타입은 여러가지가 있는데 그 타입중 Node.ELEMENT_NODE가 Element를 의미한다.

ELement는 HTML에서 태그로 적은 노드들을 지칭한다.

예를 들어 <html>, <div>, <title>과 같은 태그들은 전부 element이다.

출처 : yejinee.log

 

DOM에 대해 더 알고싶으면 아래링크를 참고하기 바란다.

DOM은 무엇인가? DOM Node와 Element의 차이 (velog.io)

 

1-3> DOM은 느린가?

요즘 흔히 접하는 큰 규모의 웹 애플리케이션(트위터, 페이스북)은 스크롤을 내릴수록 수많은 데이터가 로딩되는데 이런 규모가 큰 웹 애플리케이션에서 DOM에 직접 접근하여 변화를 주다 보면 느려지게 되는데

이를 두고 요즘 자바스크립트 엔진은 매우 빠른 반면, DOM은 느리다고 하는데 정확한 말은 아니다

 

DOM 자체는 빠르고 자바스크립트 객체를 처리할 때의 성능과 비교하여 다르지 않지만

웹 브라우저에서 DOM에 변화가 일어나면 웹 브라우저가 CSS를 다시 연산하고 레이아웃을 구성하고 페이지를 리페인트하는 렌더링 과정에서 시간이 허비되는 것이다. 

 

이렇게 느려지는 것에 대한 해결책으로 Virtual Dom 방식이 등장하게 되었다.

 

2>Virtual DOM

Virtual DOM을 사용하면 실제 DOM에 접근하여 조작하는 대신, 이를 추상화한 자바스크립트 객체를 구성하여 사용한다.

기존 DOM의 복사본을 만들어서 비교후 업데이트 된 부분만 실제 DOM에 적용하는 것이다.

출처 : 개발자 시니 티스토리 블로그

Virtual DOM을 사용한다고 해서 무조건 빠른 것이 아니다.

리액트를 사용하지 않아도 코드 최적화를 열심히 하면 DOM 작업이 느려지는 문제를 개선할 수 있고 또 작업이 매우 간단할 때는 리액트를 사용하지 않는 편이 더 나은 성능을 보이기도 한다.

 

리액트와 Virtual Dom이 언제나 제공할 수 있는 것은 업데이트 처리 간결성이다.

업데이트하는 과정에서 생기는 복잡함을 해소하고 쉽게 업데이트에 접근할 수 있다

 

3> Dom과 Virtaul DOM의 차이

Real DOM은 페이지에 업데이트할 사항이 있으면 전체 문서가 업데이트되지만 

Virtual DOM은 기존의 Virtual DOM과 비교하여 변경된 사항만 Real Dom에 업데이트 된다.

 


3. 리액트의 장점2-컴포넌트 기반 구조

Component는 구성요소라는 뜻을 가지는데 리액트는 모든 페이지가 컴포넌트로 구성돼있고 한 컴포넌트는 또 여러개의 다른 컴포넌트로 이루어져 있다.

마치 레고 블록 조립하듯 컴포넌트들을 모아서 개발하는 것과 같다.

 

아래는 에어비앤비 사이트를 스크린샷한 것인데 이 웹사이트도 리액트로 만들어져 있다.

아래 사진과 같이 A는 여행할 지역을 나타내는 컴포넌트이고 B라는 컴포넌트는 체험할 지역을 나타낸다.

 

리액트로 만든 웹사이트는 수많은 컴포넌트의 조합으로 이루어져있다.

 

출처 : 인프런-처음 만난 리액트 강좌

★ 컴포넌트 구조의 장점

1) 재사용성(Reusuability)

재사용성은 말그대로 다시 사용가능한 성질을 의미하는데 재활용과는 사뭇 다르다.

재활용은 다시 활용 가능한 자원을 가공하여 새로운 제품을 만드는 것이고 재사용은 계속해서 재사용이 가능한 성질을 의미한다.

물리적인 물질은 쓰면 쓸수록 닳기 때문에 기본적으로 재사용이 불가능해서 주로 소프트웨어 분야에서만 쓰인다.

 

모든 소프트웨어가 재사용되는 것은 아닌데 그 이유는 의존성이나 다양한 호환성문제가 발생할 수 있기 때문이다.

그래서 소프트웨어 개발을 할 때 재사용성이 높게 개발해야한다고 하는데 이 말의 의미는 해당 소프트웨어의 모듈이 다른 소프트웨어에서도 쉽게 사용할 수 있어야 함을 의미한다.

 

*재사용성의 장점

  • 재사용성이 높아지면 개발 기간이 단축된다. (기존에 개발한 모듈을 재사용하기 때문이다)
  • 유지 보수가 용이하다(원인인 모듈만 수정하면 되기 때문이다)

출처 : 인프런-처음 만난 리액트 강좌

 


4. 리액트의 단점

1) 방대한 학습량

모든 라이브러리 언어가 그렇지만 특히 리액트의 경우 기존과는 다른 방식의 UI 라이브러리라서 배워야할 것이 많다.

출처 : 인프런-처음 만난 리액트 강좌

2) 높은 상태관리 복잡도

state는 쉽게 말해 리액트 Component의 상태를 의미하는데 웹사이트의 규모가 커져 Component의 개수가 많아지면 상태 관리 복잡도가 증가된다.

앞에서 Virtual Dom이 바뀐 부분만 업데이트 한다고 했는데 여기서 바뀐 부분은 state가 바뀐 Component를 의미한다

 

그래서 큰 규모의 프로젝트의 경우 상태관리를 위해 외부 상태관리 라이브러리를 사용하는 경우가 많다.


참고문헌

1. [무료] 처음 만난 리액트(React) - 인프런 | 강의 (inflearn.com)

2. [개발상식] 프레임워크(Framework) 와 라이브러리(Library)의 차이 :: 코딩 공부 일지 (tistory.com)

3. [React] DOM이란? 가상 돔 (Virtual DOM )이 나오게 된 이유 (tistory.com)

4. 리액트를 다루는 기술-김민준

5. Virtual dom과 Real dom의 차이 (velog.io)

6. DOM은 무엇인가? DOM Node와 Element의 차이 (velog.io)

 

*이 게시글은 인프런-처음 만난 리액트 강좌를 보고 정리한 글입니다.


목차

1. Node. js와 npm 설치하기

2. VS Code 설치하기


1. Node. js와 npm 설치하기

 

Node.js는 자바스크립트로 네트워크 Application을 만들 수 있게 도와주는 개발환경이라고 생각하면 되고

npm은 node package mangaer의 약자로 node.js를 위한 패키지 매니저이다.

 

패키지 매니저의 역할은 프로젝트에 필요한 다양한 외부 패키지들의 버전과 의존성을 관리하고 편하게 설치 및 삭제를 할 수 있도록 도와준다.

 

npm은 node.js를 설치하면 자동으로 함께 설치된다

1) 아래 링크를 통해 node.js를 설치한다

Node.js (nodejs.org)

 

2) 왼쪽은 안정화된 버전이고 오른쪽은 최신버전인데 안정화된 버전을 다운로드 한다

3) 설치가 다 되면 cmd나 powershell에 node -v, npm -v를 쳐서 node.js와 npm이 잘 설치 됐는지 확인한다.


2. VS Code 설치하기

메모장으로 코딩을 할 수 도 있지만 부가적인 기능을 가진 프로그램을 사용하면 좀 더 효율적이게 프로그램을 개발할 수 있기 때문이다.

이렇게 부가적인 기능을 제공하여 프로그램을 작성하는데 도움을 주는 프로그램을 IDE라고 한다(통합 개발 환경)

출처 : 인프런-처음 만난 리액트 강좌

1) 아래 링크에서 설치

Visual Studio Code - Code Editing. Redefined


*이 게시글은 인프런-처음 만난 리액트 강좌를 보고 정리한 글입니다.

 

목차

1. 자료형(Data Type)

2. 연산자(Operator)

3. 함수(function)

4. 백틱(`)


1. 자료형(Data Type)

일반적인 프로그래밍 언어에서는 변수를 선언하는 시점에 해당 변수의 자료형이 결정되는 반면 

자바스크립트는 변수에 데이터가 대입되는 시점에 해당 변수의 자료형이 결정된다.

이처럼 동적으로 자료형이 결정되는 것을 동적 타이핑이라고 한다.

출처 : 인프런-처음 만난 리액트 강좌

var은 변수를 의미하는 variable을 뜻한다.

var 외에도 let, const등도 있다.

var은 재선언, 재할당 모두 가능

let은 재할당만 가능

const는 재할당, 재할당 모두 불가능

 

let은 값이 바뀌면 안되는 변수를 쓸 때

const는 변수이름을 똑같은 이름으로 또 선언하려고 할 때 실수 방지 기능

 

 

★자료형의 종류

출처 : 인프런-처음 만난 리액트 강좌

1) Number type

숫자 자료형

 

2) String type

문자열 자료형

 

3) Bollean type

참/거짓 판단 자료형

 

4) Null type

값이 Null임을 의미하는 자료형

 

5) Undefined type

값이 정의돼있지 않음을 의미하는 자료형

아래 17번 라인처럼 선언만하고 할당을 하지 않은 경우 undefined 자료형이 된다.

 

6) Array type

배열 자료형

다른 프로그래밍 언어와 다르게 자바스크립트의 배열에서는 다른 자료형도 함께 들어갈 수 있다

출처 : 인프런-처음 만난 리액트 강좌

 

7) Obejct type

객체를 다루기 위한 자료형(다른 객체지향 프로그래밍에서의 객체와 의미가 다르다)

자바스크립트에서 객체는 key와 value로 이루어진 쌍의 집합을 의미한다

 

key는 문자열이여야 하며

value는 어떤 값이든 들어갈 수 있다

출처 : 인프런-처음 만난 리액트 강좌


2. 연산자(Operator)

1) 대입 연산자(=)

2) 산술 연산자

출처 : 인프런-처음 만난 리액트 강좌

3) 증가 연산자(++), 감소 연산자(--)

출처 : 인프런-처음 만난 리액트 강좌

4) 관계 연산자 또는 비교 연산자

 

출처 : 인프런-처음 만난 리액트 강좌

5) 동등 연산자와 일치 연산자

4번째, 7번째 줄이 동등 연산자

10번째, 13번째 줄이 일치 연산자

 

동등 연산자는 1과 '1' 구별 불가

일치 연산자는 1과 '1' 구별 가능

 

즉, 일치 연산자는 변수의 값 뿐아니라 자료형이 같은지, 다른지 까지 판별

출처 : 인프런-처음 만난 리액트 강좌

 

6) 이진 논리 연산자

&&는 둘 다 true여야 true

||는 둘 중 하나면 true면 true

출처 : 인프런-처음 만난 리액트 강좌

 

7) 조건부 연산자 또는 삼항 연산자

출처 : 인프런-처음 만난 리액트 강좌
출처 : 인프런-처음 만난 리액트 강좌


3. 함수(function)

출처 : 인프런-처음 만난 리액트 강좌

함수를 만드는 방법은 크게 2가지이다.

function 함수이름 형태를 쓰거나 화살표 함수 형태를 쓴다.


4. 백틱

키보드에 ESC키 아래에 ~(물결) 모양 버튼 아래 있는 `이게 백틱이다.

백틱을 사용하면 ${}를 사용해서 문자열과 변수를 적절히 같이 사용할 수 있다.

 

출처 : 리본 티스토리
출처 : 리본 티스토리


참고문헌

1. [무료] 처음 만난 리액트(React) - 인프런 | 강의 (inflearn.com)

2. [JavaScript] ES2015 백틱(`)과 템플릿 문자열 :: 리본 (tistory.com)

*이 게시글은 인프런-처음 만난 리액트 강좌를 보고 정리한 글입니다.

 

목차

1. 프론트엔드

2. API

3. HTML과 SPA

4. CSS

5. Javascript, ES6, 바벨


1. 프론트엔드(Front-End)

프론트엔드는 사용자가 볼 수 있는 화면, 즉 사용자 인터페이스(User Interface, UI)를 말한다.

 

대비되는 용어로 백엔드가 있는데 백엔드는 웹 애플리케이션의 사용자가 보지 못하는 영역인 서버나 데이터베이스를 관리하는 기술이다.

 

쉽게 말해 프론트엔드는 사용자가 보는 화면과 그 안에 있는 요소들을 만들고 백엔드는 사용자가 볼 수 없는 데이터베이스나 서버를 관리한다.

 

리액트는 프론트엔드 언어이다.


2. API

API는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.

 

UI가 사용자와 프로그램을 연결해주는거라면 API는 프로그램과 프로그램을 연결해주는 것이라고 생각하면 된다.

 

스마트폰 화면에서는 사람이 이용하기 편하도록 버튼이 있다.

만약 버튼이 없다면 사용자는 스마트폰을 사용하기가 어려울 것이다.

이런 경우 사용자를 도와주는 것이 바로 UI이다.

API도 마찬가지이다.

지도를 이용한 맛집 찾기 프로그램을 만들고자 하는데 일반인들은 이런 지도 기능들을 제공할만한 기반이 되는 데이터도 없고 관련 프로그램도 없다.

그리고 일반인들 입장에서는 그런 지도 데이터를 공개해도 여러 문제점 때문에 그 지도 데이터를 사용하기 어려울 것이다.

그래서 이 지도 데이터를 일종에 스마트폰의 버튼처럼 그 지도 데이터를 접근하기 쉽게 만들어 사용자들에게 공개한 것이 바로 지도 API이다.


3. HTML과 SPA

HTML은 웹 브라우저를 통해서 사용자에게 보이는 웹 문서를 작성하는 언어로 웹 문서의 내용 작성에 집중을 한다.

 

마크업종류의 한 종류로서 기존에서는 웹에서만 사용되었지만 최근에는 웹브라우저를 이용해서 데스크탑 용 앱을 만들 수 도 있기 때문에 그런 곳에서도 사용된다.

*마크업 : 문서나 데이터를 처리하기 위해 추가되는 정보
*마크업 언어: 마크업 정보를 표현하는 언어
HTML은 웹사이트의 뼈대를 구성하기 위해 사용하는 마크업 언어

출처 : 인프런-처음 만난 리액트 강좌

HTML에서는 태그라고 부르는 것으로 웹사이트의 구조를 만들고 웹사이트에 들어갈 내용을 채워넣는다.

 

태그는 아래와 같이 홑화살괄호를 사용하며 홑화살괄호안에 태그 이름을 넣어서 사용하며 <태그이름>으로 태그를 시작하며 </태그이름>으로 태그를 끝내는 형태를 가진다.

 

 

출처 : 인프런-처음 만난 리액트 강좌

 

 

웹사이트의 뼈대를 구성하는 태그에는 html 태그, head태그, body 태그가 있다.

 

  • html 태그 : html의 시작과 끝을 알리는 태그
  • head 태그 : 웹사이트의 속성
  • body 태그 : 실제로 웹사이트에서 보이는 내용

출처 : 인프런-처음 만난 리액트 강좌

우리가 사람의 머리를 보면 그사람이 누구인지 알 수 있는 것 처럼 head 태그를 보면 제목, 속성등이 나와있어 이 웹사이트가 어떤 사이트인지 알 수 있다.

이러한 속성들을 메타 데이터라고 한다.

 

출처 : 인프런-처음 만난 리액트 강좌

 

우리가 웹사이트를 둘러보다보면 웹사이트에 보이는 화면이 계속 바뀌는 것을 볼 수 있다.

웹사이트에서 보이는 내용이 Html에서 body태그라고 했으니까 그렇다면 body태그안이 계속 바뀐다는 얘기일까?

그렇다. 페이지가 바뀔 때마다 아래 그림과 같이 새로운 html파일을 불러와서 사용자에게 보여준다.

그렇다면 복잡한 웹페이지의 경우 이런 페이지들이 수십~수백개 이상일텐데 이렇게 많은 페이지를 어떻게 관리할까?

출처 : 인프런-처음 만난 리액트 강좌

이런 문제를 해결하기 위해 나온 것이 바로 SPA이다.

SPA는 말그대로 하나의 페이지만 존재하는 웹페이지 혹은 웹 애플리케이션이다.

 

출처 : 인프런-처음 만난 리액트 강좌

아래의 왼쪽 그림은 전통적인 웹 애플리케이션을 나타낸 것이고 아래의 오른쪽 그림은 SPA를 나타낸 것이다.

전통적인 방식인 Html페이지가 수십~수백개가 있는 것이 아니라 HTML이 1개, 즉 단 하나의 페이지만 존재한다.

 

SPA에서 유일한 HTML파일에 body태그의 내부가 텅 비어있다가 사용자가 해당 페이지에 접속할 때 그 페이지의 컨텐츠를 가져와서 동적으로 body태그 내부를 채워넣는 형태이다.

이렇게 동적으로 body 태그 내부를 채워넣는 역할을 하는 것이 리액트라고 생각하면 된다.

출처 : 인프런-처음 만난 리액트 강좌


4. CSS

CSS는 웹사이트의 레이아웃과 글꼴, 색상등의 디자인을 입히는 언어이다.

HTML로 웹사이트의 구조를 만들었다면 그 위에 CSS로 디자인을 입혀야 아름다운 웹사이트가 완성된다.

출처 : 인프런-처음 만난 리액트 강좌


5. JavaScript

만약 웹사이트가 HTML만으로 구성되어있다면 사용자가 버튼을 누르거나 정보를 입력하는 등의 동적인 작업을 처리할 수 없다. 이러한 동적인 작업을 하기위해 JavaScript를 사용한다. (Java와 관련이 없다)

자바의 정식명칭은 ECMAScript로 버전을 매길때도 맨 앞글자 EC를 따서 EC5, EC6 이런식으로 나타낸다.

출처 : 인프런-처음 만난 리액트 강좌

JavaScript는 이름에서도 알 수 있다시피 Script언어인데 다른언어와 가장 큰 차이점은 프로그램이 실행되는 runtime에 코드가 해석된다.

C언어나 Java같은 컴파일언어는 컴파일이라는 과정을 통해 소스코드가 해석되고 실행가능한 형태로 변환되는데 javascript같은 script언어는 runtime(실행시간)에 코드가 해석된다.

 

Javascript는 오랫동안 웹개발에만 사용되었는데 단순히 웹페이지에서만 국한되지 않고

Node.js 런타임을 통하여 서버쪽

NW.js, Electron 등의 도구를 사용하여 데스크탑 앱을 만들 수도 있고

react-native, NativeScript 등의 도구를 사용하여 모바일 앱도 만들 수 있다.

그리고 하드웨어에서도 Node.js를 통하여 JavaScript를 사용할 수 있기 때문에 Iot진영에서도 사용될 수 있다.


5-1 ES6

ES6은 ECMAScript6을 의미하며, 자바스크립트의 버전을 가리킨다.
ES6은 2015년에 도입되었고 2015년 이후에도 계속해서 새로운 자바스크립트 버전이 나오고 있는데
ES6에서 새로운 문법이 많이 추가가 되었다.


5-2 바벨(Babel)

최신 Javascript 문법으로 작성된 코드를 이전 Javascript 문법으로 변환시켜주는 도구이다.

Javascript는 표준이 존재하는데, 이 표준에 따라 Javascript를 개발하고 매년 새로운 버전을 만드는데 그 중 ES5에서 ES6이 되면서 새로운 기능들이 많이 추가가 되었다. 그래서 예전 브라우저를 쓰는 사람도 최신형 문법을 사용할 수 있게 해주는 도구가 필요해지게 된 것이다.


 

참고문헌

1. 스파르타코딩클럽 (spartacodingclub.kr)

2. HTML,CSS,JS의 관계 (velog.io)

3. [무료] 처음 만난 리액트(React) - 인프런 | 강의 (inflearn.com)

4. 1장. 자바스크립트 입문 · GitBook (vlpt.us)

5. 맨날 한귀로 듣고 흘리는 바벨(Babel)이 뭘까? (velog.io)

6. API 란?. 저도 API가 무엇인지 자세히 알지 못하였기 때문에 검색을 하며 스스로… | by 초보개발자 | Medium

+ Recent posts