자바스크립트의 활용

자바스크립트는 웹 브라우저에서 사용하는 프로그래밍 언어이며, Brendan Eich는10일만에 현대 자바스크립트의 기반이 되는 특징을 가진 Mocha 라는 언어를 만들어냈다. Mocha는 LiveScript라는 이름으로 불렸다가 다시 JavaScript라는 이름으로 불리게 되었다. 그당시 가장 있기있는 언어는 Java였고 마케팅 적인 이유로 자바스크립트에 개발자들이 관심을 갖게 하기 위해서 이러한 이름을 붙였다. 실제로는 자바와 자바스크립트는 전혀 다른 언어이다.
초기의 웹은 정적인 글자들로만 이루어져 하이퍼링크로 이루어진 거대한 책에 불과했다. 하지만 자바스크립트가 나오면서 웹 문서의 내용을 동적으로 바꾸거나 마우스 클릭과 같은 이벤트 처리가 가능해졌다. 웹은 점점 발전하여 다양한 기능을 가진 웹 애플리케이션이라 부르지만, 웹 애플리케이션도 웹 페이지이다.
웹 애플리케이션
웹 애플리케이션의 대표적인 예로 웹 문서 작성 도구(마이크로 소프트 오피스), 음성채팅(디스코드), 동영상 시청(유투브) 등이 있다. 별도의 설치없이 웹페이지에 방문하는것만으로 다양한 기능을 사용할 수 있다.
기존에는 웹 클라이언트는 자바스크립트로 개발하고, 웹 서버는 자바, C#, 루비, 파이썬등의 언어로 개발했기때문에 두가지 이상의 언어가 필요했다. 하지만 2009년 Node.js의 등장으로 자바스크립트로도 웹 서버 개발이 가능해졌다.
Node.js의 특징

- Node.js는 웹 서버를 개발할 때 꼭 필요한 간단한 모듈만 제공하기에 다른 언어, 프레임워크를 사용할 때보다 데이터 및 예외 처리등이 조금 복잡하다.
- 다른 언어, 프레임워크으로 개발한 서버가 10대의 컴퓨터가 필요하다면, Node.js는 1대로도 충분할만큼 굉장히 빠르다.
실제 링크드인에서 기존에 루비로 개발한 서버를 Node.js로 다시 개발한 결과, 서버는 1/10으로 줄었고 속도는 20배 더 빨라졌다.
모바일 애플리케이션
대부분 사람들이 사용하는 안드로이드폰과 아이폰은 각각 자바/코틀린(Kotlin)과 스위프트(Swift)라는 언어로 개발한다. 이는 각 스마트폰에서 인식할 수 있는 언어가 다르기 때문이다. 그래서 애플리케이션을 개발할려면 각각 개발하여야하기때문에 인력, 비용 등도 2배가 필요하기에 이는 기업으로서 큰 손해라고 볼 수 있다.
모든 스마트폰은 내부에서 기본으로 인식할 수 있는 공통된 언어가 있는데 대표적인 예가 자바스크립트이다. 자바스크립트를 사용하면 하나의 애플리케이션만 만들어도 모든 스마트폰에서 동작이 되기 때문에 기업입장에서는 매우 매력적이다. 그래서 페이스북에서 자바스크립트로 네이티브(모바일) 애플리케이션을 개발할 수 있는 리액트 네이티브를 만들었다. 초반에는 네이티브와 웹을 합친 하이브리드 형태의 애플리케이션도 등장해 인기가 많았지만, 느리다는 이유로 점차 개발을 꺼리고 있다.
2010년 전후로 나온 아이폰과 스마트폰은 제조사 추천 언어인 각각 오브젝티브와 자바를 사용하였고, 제조사가 추천하는 언어를 사용해서 개발한 앱을 네이티브 앱이라 부른다. 초기엔 스마트폰의 기능을 모두 활용하기위해 네이티브 앱으로 만들어야했지만, 아이폰, 안드로이드개발자를 모두 고용해야한다는 초기 스마트업에겐 큰 부담으로 다가왔기에 웹사이트 화면을 애플리케이션으로 감싸기만 해서 보여주는 모바일 웹 앱이 등장했다.
그러나 모바일 웹 앱은 성능도 별로이며 스마트폰의 기능 또한 제대로 사용하지 못 하기에 이를 보완하고자 스마트폰의 기능과 웹 페이지를 연결할 수 있는 층을 설치해 기능을 활용할 수 있게 했으며 이를 하이브리드 앱이라고 부른다.
여기서 좀 더 발전되어 이때 네이티브 앱처럼 만들어주는 엔진 또는 프레임워크가 등장하였고, 그 중 대표적인 예로 리액트 네이티브가 있다.
데스크톱 애플리케이션
모바일 애플리케이션을 자바스크립트로 만드는 일이 일반화되자 "데스크톱 애플리케이션도 자바스크립트로 만들자!"는 의견이 나왔다.
NW.js 모듈등으로 데스크톱 애플리케이션 개발에 조금씩 자바스크립트를 활용하가 Git Hub에서 NW.js 개발자를 흡수하여, 자바스크립트 개발 전용 텍스터 에디터인 아톰(Atom)을 만들었다. 또한 아톰을 만들 때 활용한 아톰 쉘을 일렉트론이라는 이름으로 공개하며 다른 개발자들도 자바스크립트로 데스크톱 애플리케이션 개발이 가능해졌다.
데이터베이스의 관리
데이터베이스는 데이터를 저장할 때 사용하는 프로그램이며, SQL언어를 사용하는 관계형 데이터베이스와 빅데이처를 처리하기위해 Not-Only-SQL이라고 불리는 NoSQL 데이터베이스로 나뉜다. 대표적인 예로 SQL은 오라클, MySQL 등이 있으며, NoSQL은 몽고 디비가 있다.
기본 용어
표현식 : 값을 만들어내는 간단한 코드
문장 : 표현식이 하나 이상 모인 것
프로그램 : 문장이 모인 것
키워드 : 자바스크립트가 처음 만들어질 때 정해놓은 특별한 의미가 있는 단어
식별자 : 언어에서 이름을 붙일 때 사용하는 단어이며, 주로 변수명, 함수명에 사용되며 규칙이 있다.
- 키워드를 사용하면 안된다.
- 숫자로 시작하면 안된다.
- 특수 문자는 $와 _만 사용가능하며 _, $이면 한글자도 가능하다.
- 공백 문자를 포함할 수 없다.
- 알파벳을 사용하는것이 관례이며, 의미가 있는 단어를 사용해야 좋다.
- 여러 단어로 이루어진 경우 첫 단어의 첫글자는 소문자, 다음 단어들의 첫글자는 대문자를 사용한다.
주석 : 코드를 설명할 때 사용하며, 프로그램 진행에는 영향을 주지않는다. 커맨드 + / 을 누르면 주석처리가 된다.
- HTML에선 <!-- 주석 -->, JS에선 // 또는 /* 주석 */을 사용한다.
'TIL' 카테고리의 다른 글
| 2일차 JavaScript 챕터 3 (1) | 2022.11.08 |
|---|---|
| 1일차 JavaScript 챕터 2 (0) | 2022.11.07 |
| 67일차 성능테스트 (0) | 2022.07.20 |
| 66일차 서비스 모니터링, 성능 테스트 (0) | 2022.07.19 |
| 65일차 서비스 모니터링 (0) | 2022.07.18 |