본문 바로가기

DEVELOPMENT/클라이언트사이드

첫 강의, node.js 아톰 소개


node.js 설명 : https://velopert.com/
로드맵 : https://www.thinkwise.co.kr/

Node.js 설치 : https://nodejs.org/en/
아톰 에디터 : https://atom.io/


Node.js
구글 크롬의 자바스크립트 엔진(V8 Engine) 기반의 서버 사이드 플랫폼


2009년 (Ryan Dahi) 개발

Node.js [Chrome V8 JavaScript 기반으로 빌드된 JavaScript 런타임]
이벤트 기반-논 블로킹(I/O모델) = 가볍고 효율적
Node.js 패키지의 '생태계' NPM -> 대규모 오픈 소스 라이브러리

Node 웹서버 X Node.Js는 그저 코드를 실행할 수 있는 하나의 방법에 불과한 JavaScript 런타임


특징


1. 비동기 I/O처리/이벤트 위주
Node 모든 API 비동기식 (None-blocking)
Node기반 서버의 API가 실행되었을 때 데이터를 반환할때까지 기다리지 않고 다음 API 실행
이전의 API 결과 값을 반환할 시, Node.JS의 이벤트 알림 메커니즘을 통해 결과값을 받음


2. 빠른 속도
구글 크롬 V8 자바스크립트 엔진을 사용 -> 빠른 코드 실행 제공


3. 단일 쓰레드 / 뛰어난 확장성
Node.Js는 이벤트 루프와 함께 단일 쓰레드 모델 사용, 이벤트 메커니즘은 서버가 멈추지않고 반응을 하여 확장성을 키워줌
일반적 아파치 서버의 경우는 요청을 처리하기 위해 제한된 쓰레드 생성
결론, Node는 쓰레드를 한 개만 사용하고 아파치보다 훨씬 많은 사용을 할수 있음


4. 노 버퍼링

Node.js 어플리케이션 데이터 버퍼링 X 데이터 => chunk 출력


5. 라이센스

MIT License 적용


Node.JS 쓰이는 곳?
입/출력이 많은 APP
데이터 스트리밍 APP
실시간 데이터 APP
JSON API 기반 APP
싱글페이지 APP



- CPU 사용률이 많은 어플리케이션 사용은 좋지못함

왜? https://isme2n.github.io/devlog/2017/06/27/node-js/ 참고




Node.JS 설치 후 node js command prompt 실행 후 (Ctrl + D Node 종료)
node 입력 -> 앞이 바뀜 - > var j = 4 -> j -> 4출력


- 소스파일 작성하지않는 경우는?

node.js Repl 사용
REPL (Read-Eval-Print Loop)
한줄씩 입력할 때마다 바로 실행 후 결과 확인
간단한 JavaScript 코드 연습에 유용


- 소스파일 작성경우

JS 소스만 포함경우
node.js 사용

HTML + JS 포함
크롬 등의 웹브라우저를 이용


기본 용어


표현식(expression) 값을 만들어 내는 간단한 코드


문장(sentence) 표현식이 하나 이상 모여 문장이 됨 (문장의 끝에는 세미콜론(;)을 찍음)
JS는 세미콜론(;) 안찍어도 됨? ㅇㅇ C언어처럼 문장끝에 꼭 찍지 않아도 됨
Source code zipping할 때, 꼭 있어야 하므로 찍어주자 ㅇㅋ


키워드(keyword) C와 비슷함


식별자 변수나 함수에 이름을 붙이기 위해 사용 (일종의 작명같은 느낌)

* 식별자를 정할 때 지켜야 할 규칙
숫자 ㄴㄴ, 뛰어쓰기 ㄴㄴ, 키워드 식별자 ㄴㄴ(break)(const),특수문자는 _(underscore) $만 ㅇㅋ, 숫자 ㄴㄴ,공백ㄴㄴ,
* JS 개발자가 식별자를 만들 때 지키는 관례
변수(속성), 함수(메소드) 이름은 항상 소문자 시작
생성자 함수 이름은 항상 대문자로 함
여러 단어로 된 식별자는 각 단어의 첫글자를 대문자로 함 (willOut)(makeBook)


주석(comment)

출력
console.log("문자열")
REPL (node.js)




참고 한 블로그 : https://velopert.com/133