본문 바로가기

IT Study./혼공JS

1장. 자바스크립트 개요와 개발환경 설정 - 1

 

 

 

혼공JS 1장 - 1

 

 

 


01-1 자바스크립트의 활용

  • 자바스크립트(JavaScript)는 웹 브라우저에서 사용하는 프로그래밍 언어(programming language)이다.
  • 참고로 썬 마이크로시스템즈에서 개발한 프로그래밍 언어인 자바(Java)와 비슷한 이름을 사용하는 마케팅 조약을 체결했다.
  • 자바와 자바스크립트는 이름은 비슷하지만 인도와 인도네시아, 코끼리와 바다코끼리처럼 완전히 다른 프로그래밍 언어이다.

 

 

<자바스크립트로 할 수 있는 것들>

웹 클라이언트 애플리케이션 개발

  • 웹은 하이퍼링크(hyperlink)라는 매개체로 웹 문서가 연결된 하나의 거대한 책에 불과했다.
  • 하지만 자바스크립트가 나오면서 웹 문서의 내용을 동적으로 바꾸거나 사용자의 마우스 클릭과 같은 이벤트 처리가 가능해졌다.
  • 웹은 점점 발전하여 애플리케이션 모습에 가까워졌다. 이처럼 기존의 웹 페이지보다 다양한 기능을 가진 웹 페이지를 웹 애플리케이션(web application)이라 부른다.

 


 

웹 서버 애플리케이션 개발

  • 기존에는 웹 클라이언트 애플리케이션자바스크립트로 개발하고, 웹 서버 애플리케이션C#, 자바(Java), 루비(Ruby), 파이썬(Python)등의 프로그래밍 언어로 개발했다.
  • 그래서 웹 개발을 하려면 2가지 이상의 프로그래밍 언어가 필요했다.
  • 하지만 2009년에 Node.js가 등장하면서 자바스크립트로도 웹 서버 애플리케이션을 개발할 수 있게 되었다.

 

  • Node.js의 장단점
    1. Node.js는 웹 서버  애플리케이션을 개발할 때 꼭 필요한 간단한 모듈만 제공한다.
    2. Node.js는 빠르다.

 


 

모바일 애플리케이션 개발

  • 안드로이드폰과 아이폰은 각각 자바/코틀린(Kotlin)스위프트(Swift)라는 프로그래밍 언어로 개발한다.
  • 페이스북에서는 자바스크립트로 네이티브 애플리케이션(native application)을 개발할 수 있는 리액트 네이티브(React Native)를 만들어 공개했다.
  • 이를 활용하면 자바스크립트만으로 모든 운영체제에서 빠르게 작동하는 네이티브 애플리케이션을 만들 수 있다.
 

React Native · Learn once, write anywhere

A framework for building native apps using React

reactnative.dev

 


 

데스크톱 애플리케이션 개발

  • 모바일 애플리케이션을 자바스크립트로 만드는 일이 일반화되자 "데스크톱 애플리케이션도 자바스크립트로 만들자!"는 의견도 나왔다.
  • NW.js(노드웹킷 제이에스) 모듈 등으로 데스크톱 애플리케이션 개발에 조금씩 자바스크립트를 활용하기 시작했다.
  • 자바스크립트 개발 전용 텍스트 에디터인 아톰(Atom)을 만들어 배포했고, 아톰을 만들 때 사용하던 아톰 셀(Atom Shell)을 일렉트론(Electron)이라는 이름으로 공개하면서 다른 개발자들도 자바스크립트로 데스크톱 애플리케이션을 개발할 수 있게 되었다.
 

Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS.

Build cross-platform desktop apps with JavaScript, HTML, and CSS.

www.electronjs.org

  • 마이크로소프트의 비주얼 스튜디오 코드(Visual Studio Code, vscode)디스코드(Discord) 클라이언트, 깃허브 데스크톱 클라이언트, 워드프레스(Wordpress) 데스크톱 클라이언트, 몽고디비(MongoDB), 데이터 관리 도구 컴파스(Compass) 등이 모두 일렉트론으로 개발된 애플리케이션이다.
 

Electron Apps | Electron

Apps Built on Electron

www.electronjs.org

 


 

데이터베이스 관리

  • 데이터베이스(database)는 데이터를 저장할 때 사용하는 프로그램이라고 간단하게 표현할 수 있다.
  • 데이터베이스는 보통 SQL이라는 프로그래밍 언어를 사용해 관리한다.
  • 일반적으로 알려진 Oracle, MySQL 등의 관계형 데이터베이스 관리 시스템(RDBMS)은 모두 SQL 프로그래밍 언어를 사용한다.
  • Not-Only-SQL이라고 불리며 등장한 NoSQL은 2010년 이후 페이스북, 트위터 등으로 인해 폭발적으로 증가한 빅데이터를 처리하기 위한 기술이며, 그중 MongoDB가 데이터베이스를 관리할 때 자바스크립트를 활용하는 대표적인 NoSQL 데이터베이스이다.
 

MongoDB: The Application Data Platform

Get your ideas to market faster with an application data platform built on the leading modern database. MongoDB makes working with data easy.

www.mongodb.com

 

 


 

 

<자바스크립트의 종류>

  • 1990년대 중반부터 자바스크립트가 많은 곳에서 사용되자 유럽컴퓨터제조협회(ECMA)는 자바스크립트를 ECMAScript라는 이름으로 표준화했다.
  • 자바스크립트가 많은 곳에서 널리 사용되자 자바스크립트도 시대의 흐름에 맞춰 문법이 급속도로 발전하게 되었다.
ECMAScript 버전 표준 발표 시기
ECMAScript 1 1997년 6월
ECMAScript 2 1998년 6월
ECMAScript 3 1999년 12월
ECMAScript 4 2008년 10월
ECMAScript 5 2009년 12월
ECMAScript 2015 2015년 6월
... ...
ECMAScript 2020 2020년 6월
  • 인터넷 익스플로러를 제외한 최신 브라우저(마이크로소프트 엣지, 구글 크롬, 모질라 파이어폭스, 애플 사파리 등)는 모두 최신 버전의 ECMAScript 기능까지 지원한다.

 

 


 

 

모바일 애플리케이션의 종류

  • 네이티브 앱(Native App)
    • 2010년 전후로 나온 아이폰과 안드로이드폰은 각각 오브젝티브-C(Objective-C)와 자바(Java) 프로그래밍 언어를 사용해서 애플리케이션을 개발했다. 이렇게 제조사가 추천하는 프로그래밍 언어를 사용해서 만들어진 애플리케이션을 네이티브 앱이라고 부른다.
    • 초기에는 스마트폰이 가진 성능과 고유의 기능을 모두 활용하기 위해서는 네이티브 앱으로 만들어야 했다.
  • 모바일 웹 앱
    • 스마트폰이 처음 나왔을 때 웹사이트 화면을 애플리케이션으로 감싸기만 해서 보여주는 방식이다.
  • 하이브리드 앱(Hybrid App)
    • 모바일 웹 앱은 성능도 좋지 않고 스마트폰이 가진 기능을 제대로 활용할 수 없어서 이를 보완하고자 중간에 스마트폰의 기능과 웹 페이지를 연결할 수 있는 층을 설치해서 웹사이트가 스마트폰의 기능을 활용할 수 있게 한 것을 말한다.
  • 여기에서 조금 더 발전되어 웹 앱처럼 개발했는데, 이때 네이티브 앱처럼 만들어주는 엔진 또는 프레임워크들이 등장한다.
  • 하나의 프로그램을 만들어서 여러 프로그램으로 만들어주는 리액트 네이티브(React Native)등이 대표적인 예이다.
  • 페이스북, 인스타그램, 핀터레스트, 디스코드, 스카이프 등이 여기에 해당한다.

 

 

 

 


해당 글은 [혼자 공부하는 자바스크립트] 책을 토대로 공부한 내용을 기록하기 위하여 작성됨.