1. Node.js의 정의

비동기 이벤트 처리 서버사이드 (네트워크 애플리케이션) 개발에 사용되는 소프트웨어 플랫폼.

개발 언어로는 자바스크립트를 사용한다.

내장 HTTP 서버 라이브러리를 가지고 있으므로, 아파치와 같은 웹 서버 어플리케이션이 없이도 동작한다.

비동기 방식이므로 다수의 연결을 동시에 처리 가능하다.

2. Node.js의 논 블로킹 방식


이는 오늘날 OS 스레드가 일반적으로 사용하는 동시성 모델과는 대조적입니다. 스레드 기반의 네트워크는 상대적으로 비효율적이고 사용하기가 몹시 어렵습니다. 게다가 잠금이 없으므로 Node의 사용자는 프로세스의 교착상태에 대해서 걱정할 필요가 없습니다. Node에서 I/O를 직접 수행하는 함수는 거의 없으므로 프로세스는 결과 블로킹 되지 않습니다. 아무것도 블로킹 되지 않으므로 Node에서는 확장성 있는 시스템을 개발하는 게 아주 자연스럽습니다. 


블로킹, 논 블로킹 참조 : http://ozt88.tistory.com/20

3. Node.js의 장점

비동기 I/O 처리 / 이벤트 위주 : Node.js 라이브러리의 모든 API는 비동기식입니다, 멈추지 않는다는거죠 (Non-blocking). Node.js 기반 서버는 API가 실행되었을때, 데이터를 반환할때까지 기다리지 않고 다음 API 를 실행합니다. 그리고 이전에 실행했던 API가 결과값을 반환할 시, Node.JS의 이벤트 알림 메커니즘을 통해 결과값을 받아옵니다.

빠른 속도 : 구글 크롬의 V8 자바스크립트 엔진을 사용하여 빠른 코드 실행을 제공합니다.

단일 쓰레드 / 뛰어난 확장성 :  Node.js는 이벤트 루프와 함께 단일 쓰레드 모델을 사용합니다. 이벤트 메커니즘은 서버가 멈추지않고 반응하도록 해주어 서버의 확장성을 키워줍니다.  반면,  일반적인 웹서버는 (Apache) 요청을 처리하기 위하여 제한된 쓰레드를 생성합니다. Node.js 는 쓰레드를 한개만 사용하고  Apache 같은 웹서버보다 훨씬 많은 요청을 처리할 수 있습니다.

노  버퍼링 : Node.js 어플리케이션엔 데이터 버퍼링이 없고, 데이터를 chunk로 출력합니다.

라이센스 :  Node.js 는 MIT License가 적용되어있습니다.

4. Node.js를 사용하면 좋은 분야

다음과 같은 분야에 Node.js 가 사용된다면 뛰어난 효율성을 달성 할 수 있습니다.


  • 입출력이 잦은 어플리케이션
  • 데이터 스트리밍 어플리케이션
  • 데이터를 실시간으로 다루는 어플리케이션
  • JSON API 기반 어플리케이션
  • 싱글페이지 어플리케이션

https://velopert.com/133 참조

http://book.naver.com/bookdb/book_detail.nhn?bid=10338797




자바스크립트 언어에 대해 설명해 놓은 책이다.


저자는 MIT 컴퓨터 과학 학위, 공학 학위를 받았다고 한다. 



책 내용이 아주 많고 자세하게 설명되어 있는것 같아서 구매했다.


신판은 6판이지만 먼저 5판을 중고로 구했다. 혹시 필요하게 되면 새로 사야 할 것 같다.



'프로그래밍 > JavaScript' 카테고리의 다른 글

[Node.js] Node.js 는 무엇인가?  (0) 2018.08.13
JavaScript 기초 문법 정리 (3)  (0) 2018.06.26
JavaScript 기초 문법 정리 (2)  (0) 2018.06.26
JavaScript 기초 문법 정리 (1)  (0) 2018.06.25



연산자


모든 프로그래밍 언어에는 연산자가 포함되어 있다.


자바스크립트의 연산자에는 산술, 문자결합, 대입, 증감, 비교, 논리, 삼항 연산자가 있다.



산술 연산자


연산자 

사용법 

의미 

 +

a+b 

a와 b를 더한다 

 -

a-b

 a에서 b를 뺀다

*

a*b 

 a와 b를 곱한다

 /

 a/b

 a를 b로 나눈다

 %

a%b 

a를 b로 나눈 나머지를 구한다



문자결합 연산자


문자 + 문자 = 문자문자


1
2
3
4
5
6
7
8
9
<head>
    <meta charset="UTF-8">
    <title>변수선언</title>
    <script>
        var x = "안녕";
        let y = "하세요";
        document.write(x+y);
    </script>
</head>
cs




대입 연산자

데이터를 변수에 저장할 때 사용하는 연산자다.

연산자 

의미 

a=b 

a에 b를 대입한다 

a+=b 

a+b를 a에 대입한다 

a*=b 

 a*b를 a에 대입한다

 a/=b

 a/b를 a에 대입한다

 a%=b

a%b를 a에 대입한다 



증감 연산자

숫자형 데이터의 값을 1씩 변화 시키는 연산자이다.

++ --가 있는데 앞에 붙으면 증가나 감소가 먼저 실행되고 나머지 계산이 이루어지고, 뒤에 붙으면 다른 계산 이후에 증감이 이루어진다.


비교 연산자

 연산자

의미 

a>b 

a가 b보다 크다 

a<b 

a가 b보다 작다 

 a>=b

a가 b보다 크거나 같다

 a<=b

a가 b보다 작거나 같다 

 a==b

a와 b는 같다 (숫자,문자형 구분하지 않음)

 a != b

a와 b는 다르다 (숫자,문자형 구분하지 않음)

 a===b

a와b는 같다 (숫자,문자형 구분) 

a!==b 

a와 b는 다르다 (숫자,문자형 구분) 


논리 연산자

|| : or , 결과값 둘 중 하나가 true면 true를 반환한다. 

&& : and , 결과값 둘 모두 true여야 true를 반환한다.

! : not, true는 false로 false는 true를 반환한다.



연산자의 우선순위

() > 단항 연산자 > 산술 연산자 > 비교 연산자 > 논리 연산자 > 대입 연산자

우측에 있는 것일수록 우선순위가 높다.


삼항 연산자

?를 포함하여 피연산자가 3개인것을 뜻하는데, if문으로 대체가 가능하다.

ex) a>b?"no":"yes";

true일 경우 no가 false일경우 yes가 출력된다.





자바스크립트의 변수


변수는 변하는 데이터를 저장하는 공간이다. 한 개의 변수에는 한 개의 값만이 저장될 수 있다.


변수의 종류에는 문자형, 숫자형, 논리형, Null형이 있다.




변수 선언


다음은 변수를 선언하는 방법이다.


1
2
3
4
5
6
7
8
9
10
11
<head>
    <meta charset="UTF-8">
    <title>변수선언</title>
    <script>
        var x;
        let y;
        x = 100;
        y = 30;
        document.write(x+y);
    </script>
</head>
cs


선언하고자 하는 변수명 앞에 var이나 let을 붙여주면 되는데,


var은 한번 선언하면 페이지 전체에서 사용할 수 있는 변수이고, let은 특정 메소드 안에서 사용할 수 있는 변수가 된다.



typeof는 변수 앞에 붙었을 경우에 변수의 데이터 타입을 알려준다.




자바스크립트의 선언


자바스크립트는 선언문을 기준으로 시작한다.


1
2
3
<script>
    자바스크립트 코드
</script>
cs


head나 body태그 안에 선언이 가능하다. 하지만 대부분 head태그 안에 선언한다.


1
2
3
4
5
6
7
<head>
    <meta charset="EUC-KR">
    <title>선언문</title>
    <script>
        document.write("환영합니다");
    </script>
</head>
cs


자바스크립트의 주석은 한 줄 주석의 경우 '//'를 사용하고, 두 줄 이상의 주석은 '/* */'를 사용한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<head>
    <meta charset="EUC-KR">
    <title>선언문</title>
    <script>
        //한 줄 주석 입니다.
        /* 
            여러줄
            주석
            입니다
        */
        document.write("환영합니다");
    </script>
</head>
 
cs

자바스크립트는 html페이지 내에서 파일을 따로 분리하여 외부로부터 불러오는 형태가 가능하다.

1
2
3
4
5
6
<head>
    <meta charset="UTF-8">
    <title> 외부 자바스크립트 연동 </title>
    <script src="js/example.js"></script>
</head>
 
cs



+ Recent posts