본문 바로가기
혼공학습단 11기(完)

[혼공스] 01 - 1 정리

by jaeheon0520 2024. 1. 3.

 

친구의 추천으로 시작하게된 혼공학습단, 이번 포스팅이 혼공학습단 첫번째 포스팅이다.

 

01 -1 의 제목은 '자바스크립트의 활용'으로, 자바스크립트로 할 수 있는 것들에 대해 설명하고 있다.

 

01 -1 장을 시작하기에 앞서 자바스크립트의 역사에 관해서 짤막하게 나오는데 흥미로워서 간단하게 정리하고 넘어가겠다.

 

자바스크립트?  자바?

 

자바스크립트는 본래 넷스케이프브레던 아이크(Brendan Eich)에 의해 모카(Mocha)라는 이름으로 만들어졌다.

 

모카는 곧 라이브스크립트(LiveScript)라는 이름으로 개발됐고,

 

이후 넷스케이프썬 마이크로시스템즈(!)와 함께 자바스크립트라는 이름을 붙이고 본격적으로 발전하기 시작한다.

 

이때 썬 마이크로시스템즈에서 개발한 프로그래밍 언어인 '자바'와 비슷한 이름을 사용하는 마케팅조약을 체결했다. 자바와 자바스크립트는 이름은 비슷하지만 근본이 다른 완전히 다른 프로그래밍 언어이다.

 

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

 

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

 

초기에 웹은 변하지 않는 글자들로만 이루어졌다.  웹은 하이퍼링크라는 매개체로 웹 문서가 연결된 하나의 거대한 책에 불과했다.(정적 웹) 하지만 자바스크립트가 나오면서 웹 문서의 내용을 동적으로 바꾸거나 사용자의 마우스 클릭과 같은 이벤트 처리가 가능해졌다.(동적 웹)

 

웹 어플리케이션?

기존의 웹 페이지보다 다양한 기능을 가진 웹 페이지. 웹 애플리케이션도 웹 페이지에 지나지 않지만 다양한 기능을 가지고 있다는 것을 구분하기 위해서 웹 어플리케이션이라고 부름.

 

ex) 웹 문서 작성 도구(구글 문서, 마이크로소프트 오피스 온라인)

설치해야만 동작했던 과거의 애플리케이션과 달리 웹 애플리케이션은 웹 브라우저만 있으면 언제 어디서나 사용할 수 있다.

 

2. 웹 서버 애플리케이션 개발

 

2009년 Node.js가 등장하면서 자바스크립트로도 웹 서버 애플리케이션을 개발 할 수 있게 되었다.

 

즉, 자바스크립트 프로그래밍만으로 모든 웹 개발을 할 수 있게 된 것이다.

 

(기존 웹 서버 애플케이션 프로그래밍 언어: C#, 자바, 루비, 파이썬, 등)

(과거에는 웹 클라이언트 어플리케이션을 자바스크립트로 개발한다고 했을때, 최소 2가지의 프로그래밍 언어가 필요했다.)

 

Node.js는 웹 서버 애플리케이션을 개발할 때 꼭 필요한 간단한 모듈만을 제공한다. 그렇기 때문에 다른 스크립트 언어와 프레임워크(루비와 루비 온 레일즈, 파이썬과 장고)를 사용할때 보다 데이터 처리와 예외 처리 등이 조금 복잡하다는 단점이 있다.

 

하지만 Node.js는 빠르다. 다른 스크립트 언어와 프레임워크로 개발한 서버 애플리케이션이 10대의 컴퓨터가 있어야 접속자를 감당할 수 있다면 Node.js로 개발한 서버 애플리케이션은 1대로도 충분하다. 이는 기업으로서는 굉장한 이득이다.

 

3. 모바일 애플리케이션 개발

 

모든 스마트폰에는 내부에서 기본으로 인식할 수 있는 공통된 프로그래밍 언어가 있는데 자바스크립트가 대표적인 예이다. 안드로이드폰과 아이폰은 각각 '자바/코틀린(Kotlin)'과 '스위프트(Swift)'라는 프로그래밍 언어로 개발한다. 이는 각 스마트폰에서 인식해서 실행할 수 있는 프로그래밍 언어가 다르기 때문이다. 하지만 자바스크립트를 사용하면 하나의 애플리케이션만 만들어도 모든 스마트폰에서 작동하기 때문에 기업 입장에서는 제작 비용을 절반으로 줄일 수 있어 굉장히 매력적이다.

페이스북에서는 자바스크립트로 네이티브 애플리케이션을 개발할 수 있는 리액트 네이비브를 만들어 공개했다. 이를 이용하면 자바스크립트만으로 모든 운영체제에서 빠르게 작동하는 네이티브 애플리케이션을 만들 수 있다.

ex) 페이스북, 인스타그램, 핀터레스트, 우버, 등

 

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

 

모바일 애플리케이션을 자바스크립트로 만드는 일이 일반화 되자, 데스크톱 애플리케이션도 자바스크립트로 만들자! 라는 의견도 나왔다. 깃허브에서 NW.js(노드웹킷 제이에스) 개발자들을 흡수하고, 자바스크립트 개발 전용 텍스트 에디터인 '아톰(Atom)'을 만들어 배포했다. 아톰을 만들때 활용한 아톰 셸(atom shell)을 '일렉트론(Electron)'이라는 이름으로 공개하면서 다른 개발자들도 자바스크립트로 데스크톱 애플리케이션을 개발할 수 있게 되었다.

마이크로소프트의 비주얼 스튜디오 코드(VScode), 디스코드 클라이언트(Discord), 깃허브 데스크톱 클라이언트, 몽고디비(MongoDB), 데이터 관리 도구 컴파스(Compass) 등이 모두 일렉트론으로 개발되었다.

 

5. 데이터 베이스 관리

Not-Only-SQL이라고 불리며 등장한 NoSQL은 2010년 이후 페이스북, 트위터 등으로 폭발적으로 증가한 빅데이터를 처리하기 위한 기술이며, 그중 MongoDB가 데이터베이스를 관리할 때 자바스크립트를 활용하는 대표적인 NoSQL 데이터베이스이다.

 

자바스크립트의 종류

수업시간에 '에크마'라는 것을 얼핏 들은 기억이 있는데 이번 기회에 짚고 넘어갈 수 있을 것 같다.

 

1990년대 중반부터 자바스크립트가 많은 곳에서 사용되자 유럽컴퓨터제조협회(ECMA)는 자바스크립트를 ECMAScript라는 이름으로 표준화했다. 따라서 자바스크립트의 표준 명칭은 ECMAScript이지만 오래 사용해왔던 자바스크립트라는 용어를 더 많이 사용한다.

 

2000년대 중반부터 자바스크립트가 많은 곳에서 널리 사용되자 자바스크립트도 시대의 흐름을 맞춰 나아가야 하는 것이 아닐까라는 의견이 나오게 되고 자바스크립트의 문법이 급속도로 발전하게 된다.

 

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월

 

이렇게 01 -1 장이 마무리된다.

 

다음은 01 - 2 장을 정리해보자!

 

오늘 하루도 쌓였다!

'혼공학습단 11기(完)' 카테고리의 다른 글

[혼공스] 02 - 2 정리  (1) 2024.01.08
[혼공스] 02 - 1 정리  (1) 2024.01.07
[혼공스] 1주차 미션  (0) 2024.01.06
[혼공스] 01 - 3 정리  (1) 2024.01.05
[혼공스] 01 - 2 정리  (1) 2024.01.04