WEB/NodeJS

140402 NodeJS

계발꿈나무 2014. 4. 2. 17:28
반응형

 * 개발 팁

 - Nodejs는 한달씩 걸리는 다른 언어들에 비해서 학습곡선이 적음. 2주면 됨

 - IT 3개월 차이 -> 3년 차이

 - 다른 언어를 공부하면 내가 잘하는 언어의 단점이 보임 !! 꾸준히 고웁해야한다.

 - 기획자의 생각/디자이너와의 협업/클라이언트의 니즈 파악

   -> 주변지식을 늘리면

   ↓ 내 지식/경험이 늘어남



 * NodeJS

 - V8엔진 향상될수록 NodeJS 엔진도 빨라짐

 - 싱글쓰레드 : 이벤트가 발생할 때마다 처리

 - Blocking("하나만" 처리, 다른게 읽고 있으면 다른게 와도 중지를 못함), 

   비동기 Non-Blocking I/O : java.io(io: input output) : Block이 일어나지 않고 "동시"에 읽고 쓸 수 있음

 - TCP : Transfer Control Protocol 전송을 컨트롤 하는 프로토콜

 - 장점 : 사용자 1명 당 "콜백"을 등록 -> 싱글쓰레드/이벤트 방식으로 처리 -> 속도 빨라짐

          객체(자바스크립트의 프로토타입)보다는 함수 위주 

          객체 위주로 묶으면 편하지만, 상속/다형성 등은 그렇게 많이 쓰지 않음

   단점 : 하나 잘못되면 다 같이 다운 됨

 - 


 . JS / JAVA

 . JS

 - function divide(a,b){

return a/b;

}

 . JAVA

 - public double divide(int a, int b){

double c = (double)a/(double)b;

return c;


  * Javascript


 var 안붙이면 전역변수됨.



 * AJAX

<script>

var xhr;

// 객체를 얻어옴

function getXMLHttpRequest(){

// 지원하면

if(window.getXMLHttpRequest){ // IE7 이상, 모든 브라우저

return new XMLHttpRequest();

} else {

return new ActiveXObject("Microsoft.XMLHTTP"); // 옛날 브라우저들


}

}

function sendProcess(){

debug.value="";

xhr = getXMLHttpRequest(); //상태가 변할 때마다 콜백 함수를 등록

xhr.onreadystatechange = viewData; // 콜백함수 이름

xhr.open("GET", "http://localhost:1337", true); // get, 비동기 방식

xhr.send(null);

}

function viewData(){ // 4번 호출 됨

// console.log("viewData 호출됨");

var debug = document.getElementById("debug");

switch(xhr.readyState) {

case 1:

debug.value += "1. Loading\n";

break;

case 2:

debug.value += "2. Loaded\n";

break;

case 3:

debug.value += "3. Interactive\n";

break;

case 4:

debug.value += "4. Completed\n";

if( xhr.status == 200 ){

debug.value += "서버 응답 성공!!!";

}else{

debug.value += shr.status + ":" + xhr.statusText;

}

break;

}

}

</script>

 ------------------------------- server.js

var http = require('http');

http.createServer(function(req, res){

res.writeHead(200, {'Content-Type': 'text/plain'});

res.end('Hello World\n');

}).listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');



Nodejs -> http 서버 띄움 


0. 크롬의 크로스도메인 문제 해결해야 됨 : 크롬 속성 -> 대상 -> ...chrome.exe" --disable-web-security 추가

1. cmd 창에서 node server.js 실행

2. ajax01.html 실행시키면 ajax 실행 됨

3. 

아래 처럼 뜸.

1. Loading

2. Loaded

3. Interactive

4. Completed

서버 응답 성공!!!


반응형