목표: JS의 역사와 JS의 장점을 간단히 이해하고, JS종류와 JS로 할 수 있는 것들이 뭐가 있는지 파악하고 넘어간다.
JS의 역사 요약
- Javascript란? 웹 브라우저에서 사용하는 프로그래밍 언어(programing language)
넷스케이프의 브렌던 아이크에 의해 모카(macha)라는 이름으로 만들어짐 곧 라이브스크립트라는 이름으로 개발됨 > 이후 넷스케이프와 썬 마이크로시스템즈와 자바스크립트라는 이름을 붙여서 본격적으로 개발하기 시작 |
PS. JAVA와 Javascript는 완전히 다른 프로그래밍 언어이다.
JS로 할 수 있는 것들
1. 웹 클라이언트 애플리케이션 개발
- 초기 웹: 하이퍼링크로 웹 문서가 연결된 하나의 거대한 책 (정적 웹)
- 현재: JS의 등장으로 웹 문서의 내용을 동적으로 바꾸거나 이벤트 처리가 가능해짐(동적 웹)
<기존의 웹에 다양한 기능들이 더해져서 웹 애플리케이션이라 칭함>
<웹 문서 작성 도구를 다운로드 없이 브라우저에서도 사용이 가능하게 되었다>
2. 웹 서버 애플리케이션 개발
기존 웹 클라이언트는 JS로 개발(프론트), 웹 서버는 JAVA, C#, Ruby, Python 등의 언어로 개발(백엔드)
2009년 Node.js의 등장으로 JS로도 웹 서버를 개발 할 수 있게 되었다.
Node.js란? Chrome V8 JavaScript 엔진으로 빌드 된 Javascript 런타임이다.
쉡게 말해 Node.js의 등장으로 다른 환경에서도 JS가 작동할 수 있게 되었다.
즉, Node를 통해 다양한 JS 애플리케이션을 실행할 수 있으며, 서버를 실행하는 데 제일 많이 사용된다.
Node.js는 서버사이트 스크립트 언어가 아니다. 프로그램(환경)이다.
Node.js의 장단점
- Node.js는 웹 서버 애플리케이션을 개발할 때 꼭 필요한 간단한 모듈만 제공한다.
때문에 데이터 처리와 예외 처리 등이 조금 복잡하다.
- 하지만 Node.js는 빠르다.
서버 구매 비용과 유지 비용을 약 1/10로 줄일 수 있다.
다른 언어로 개발한 서버 10대의 컴퓨터에 비해 Node.js로 개발한 서버는 컴퓨터 1대면 충분하다.
3. 모바일 애플리케이션
자바/코틀린과 스위프트 언어로 안드로이드용과 아이폰용을 각각에 인식하는 프로그래밍 언어를 통해 개발해야되는데
2가지로 만들기 때문에 인력/시간/비용이 2배로 든다.
때문에 페이스북에서 JS로 네이티브 애플리케이션을 개발할 수 있는 리액트 네이티브를 만들어 공개함
모든 스마트폰에는 내부적으로 JS를 인식할 수 있다. 인력/시간/비용이 절감
more> 초기에는 네이티브 애플리케이션과 웹을 합친 "하이브리드" 형태로 인기가 있었음. But! 스마트폰에 최적화된 언어로 만든 앱보다는 느려 점차 개발을 꺼림 |
4. 데스크톱 애플리케이션 개발
모바일도 JS로 만드는 일이 일반화 되자. "데스크톱 앱도 JS로 만들자!" 라는 의견이 나왔다.
NW.js(노드웹킷.js) 모듈 등으로 데스크톱 애플리케이션 개발에 조금씩 JS를 활용하다가 "일렉트론"이라는 것이 나옴
이를 통해 JS로 데스크톱 애플리케이션 개발이 가능해짐
5. 데이터 베이스 관리
데이터 베이스는 간단하게 데이터를 저장할 때 사용하는 프로그램
애플리케이션은 대부분 데이터를 저장해야 되므로 데이터 베이스를 활용해야 한다.
데이터 베이스 보통 SQL 이라는 프로그래밍 언어를 사용해 관리하는데, 일반적으로 Oracle, MySQL 등의
관계형 데이터베이스 관리 시스템(RDBMS)은 모두 SQL 프로그래밍 언어를 사용한다.
Not-Only-SQL(NoSQL)은 폭팔적으로 증가한 빅데이터를 처리하기 위한 기술이며, MongoDB가 대표적이다.
MongoDB가 데이터베이스를 관리할 때 JS를 활용하는 대표적인 NoSQL 데이터베이스 이다.
Javascript의 종류
1990년대 중반 JS가 많은 곳에서 사용되자 유럽컴퓨터제조협회(ECMA)는 JS를 ECMAScript라는 이름으로 표준화함.
표준 명칭은 ECMAScript이지만 오래 사용해왔던 Javascript라는 용어를 더 많이 사용한다.
ECMAScript는 version 1 ~ 6까지 발전해왔다. (ES1 ~ ES5, ES6, ES2022...)
[요약] 1. Javascript란? 웹 브라우저에서 사용하는 프로그래밍 언어(programing language) 2. ECMAScript는 유럽컴퓨터제조협회(ECMA)에서 표준화한 Javascript의 공식 명칭이다. 3. 웹 애플리케이션이란? 기존의 웹 페이지보다 많은 기능을 구현한 웹 페이지(동적 웹) |
[좀 더 알아보기...]
보다보니 ES6에 관한 이야기와 정보가 많이 나오는데, ES5에서 ES6로 넘어오면서 생긴 새로운 기능들 때문인듯 하다.
ES6는 아래의 새로운 기능들을 포함.
- const and let
- Arrow functions(화살표 함수)
- Template Literals(템플릿 리터럴)
- Default parameters(기본 매개 변수)
- Array and object destructing(배열 및 객체 비구조화)
- Import and export(가져오기 및 내보내기)
- Promises(프로미스)
- Rest parameter and Spread operator(나머지 매개 변수 및 확산 연산자)
- Classes(클래스)
[나에 대한 칭찬] 1. 학습 중에 nodeJS란 정확히 무엇인가를 이해하기 위해 구글링을 통해 알아봄 2. ECMAScript version에서 ES5에서 ES6로 넘어가며 크게 무언이 새롭게 추가 되었는지 알게됨 [아쉬운점] 1. 조금 더 디테일하게 파고들지 못하고 "이런 것이 있구나" 정도에서 넘어감 2. nodeJS 장단점에서 장점만 보고 넘어가 아쉬움 [내일의 목표] 1. 자료와 변수에 대해 학습하며 사용법을 익히고, ES5 이전과 ES6를 비교하기 |
'javascript' 카테고리의 다른 글
[#02-2] [Pre-OnBoarding] 상수와 변수 (0) | 2022.11.09 |
---|---|
[#02-1] [Pre-OnBoarding] 자료형 (1) | 2022.11.09 |
2-2. 문자열 기본(따옴표, 백틱, typeof) (0) | 2021.12.18 |
1-3. 프로그래밍 사고력의 중요성 (0) | 2021.12.18 |
1-2. VS Code, Node, git(macOS) 설치 (0) | 2021.12.18 |