Rubberduck-Debugging

node js 강의 본문

개발자/20181127 교육과정

node js 강의

P缶 2019. 1. 4. 10:56
1. Node.js 는 Chome V8 JavaScript 엔진으로 빌드된 runtime

2. 싱글 쓰레드 

3. 비동기 I/O 
  -하드 디스크 접근
  -데이터베이스 서버
  -네트워크 이용한 다른 서비스 접근 
    비동기 I/O를 사용한다.
단점도 있죠 
- 운영 및 장애 디버깅에 대응하는 면에서는 기존의 서버 사이드 언어에 비해 많이 존재
- 하나뿐인 스레드가 에러로 인해 멈추지 않도록 잘 관리( 에러발생 시 서버전체가 멈출 수 있음 )
- CPU부하가 큰 작업에는 적합하지 않다 (코드가 CPU연산을 많이 요구하면 블로킹이 발생 스레드 하나가 처리)

4. 이벤트 기반(event driven) 

5. 간단한 구조의 경량 프레임워크와 풍부한 라이브러리를 가지고 있다

6. 서버와 클라이언트 에서 사용하는 언어가 같다

Node.js 사용분야
-실시간 소셜 네트워크 서비스
-데이터 중심의 처리 (비동기 I/O)
-IOT 기반의 기기 제어

7. Node 다운로드 (nodejs.org)
  LTS 버전(Long Term Support)

8. node 프로그램 모델
  -동기식(Synchronous)  
   일반적인 Web 에서 submit 처리
   A요청 -> A의 결과
   B요청 -> B의 결과
  -비동기식(Aysnchornous)
   Jquery Ajax 함수의 Callback함수 사용
   


9. 실습
  >nodeproject 폴더생성
  >node FileSync.js

   FileSync.js (동기식)
   var fs = require('fs');
   var content = fs.readFileSync("read.txt","utf8");
   console.log(content);
   console.log("read file ....")


   FileAysync.js
   var fs = require('fs');
   fs.readFile("read.txt","utf8",function(err,content){
       console.log(content)
   });
   console.log("read file ....")

10. 동기식 함수
    function add(i,j){
     return i+j;
   }
  var result = add(1,2);
  console.log("result:" , result);
   

11. 비동기식 함수
function add(i.j,callback){
   var result = i + j;
   callback(result);
}

add(1,2,function(result){
   console.log("Result :" ,result);
});
 <script type="text/javascript">
    function sum(a , b ,callback){
           var result = a + b;
            callback();
       console.log("callback");
       return result;
    }        
   var r = sum(1,2,function(){
        alert('a+b를 더했습니다');
        });    
   console.log(r);
        </script>


콜백 함수 사용시
callbackFunc(arg1, arg2, function(error,result){
if(error){
//error 처리
return;
}
//정상처리
})