브라우저내에 액티비티를 하고싶어서 넣은 스크립트 랭귀지.
브라우저 내부 엔진에서는 js엔진 =
Node 이벤트 베이스 - > 비동기
플랫폼
on / emit
on -> 받을때
emit -> 발생할때
nodejs는 기본적으로 루프를 돌림(기본적으로 비동기. 비동기처리)
Java->기본적으로 동기. (but Spring 5v react(함수형방식)지원)
readFile이란 메서드가 있다면
String str = f.readFile(파일명)
이런식.
but 비동기는 언제 끝날지 모름
f.readFile(파일이름, callback(읽는거 다됐니? 다 됐으면 { 이거해줘 })
※
ajax의 가장 큰 단점이 뭐냐? - ajax가 브라우저에서 서버를 비동기로 호출. 그러나 서버에서 브라우저를 호출 할 수 없다.
ex. 네이버 실시간 검색어
> 내가 5분에 한번씩 네이버의 실시간 검색어를 호출해서 뿌려줄수 있다.
> but 서버에서 실시간검색어 1위가 튀어나왔을때 이걸 브라우저한테 알려줄 방법이 없음.
해결법
1) -> 최신상태를 반영할 수 있게 1분에 한번씩 계속 호출 -> but 서버가 못견딤
2) ->
(웹서버는 기본적으로 stateless. 브라우저에서 리퀘스트를 보내고 서버에서 리스판스를 보내면 연결을 끝냄. so 다른사람들을 얼마든지 받아들일 수 있음.
그러나 게임서버같은 경우 a와의 연결상태를 유지한 상태에서 b유저와의 연결상태또한 유지해야함 -> 게임회사는 서버를 여러대 운영한다.)
ajax의 보안으로 나온 기술 -> 롱플링 : 오랫동안 연결을 맺자. 그리고 잠깐 끊고 다시 연결을 맺자.
[ 웹소켓 -> HTTP5의 표준기술 그러나 socket.io는 표준기술이 아님. 그러나 잘되어있으니까 많이 쓰임 ]
io- > all
socket -> 개인
보낼땐 emit
받을떈 ON
정적코딩 : compile에 모든것이 결정됨 동적코딩을 할 시 reflection이용해서해줘야함
express -> MVC구조로 만들어주는애임 (install한애)
nodejs로 callback함수 쓸때의 룰
callback함수의 맨 앞은 error!!! (callback시 첫번째 파라미터는 error - First Error)
nodejs 단점
코드가 복잡해지면 타입이 없다보니까 헷갈림 =>
코딩할때는 타입을 주고 컴파일할땐 타입코드가 지워지게 하는 기술이 있다~!!
---
jquery의 장점
1. 위임(이것도 그닥..)
2. 기존의 순수한 javascript보다 ajax호출이 편함(근데 js도 최근에 패치어쩌고가 나와서..)
3.
.
.
.
---------------------------- module
node.js에서 외부랑 연결(외부 api호출)하거나 내부 api ajax에서의 호출(like Spring의 resttemplate)
=> NODE REQUEST MODULE! =>(npm install request하고 package.json 확인 )
=> (클라이언트 사이가 아닌) 서버사이드에서 다른애들을 호출할떄 이용
ex. 채팅창에서 날씨 라고 치면
웹페이지를 크롤링해서 날씨정보를 내 db에 입력시키고
그 db의 데이터를 가져옴.
https://devnauts.tistory.com/96
[Node.js] HTTP 요청하기 (request 모듈 사용)
request 모듈 사용시, 추가적인 request 모듈 설치를 필요로 한다. npm install request HTTP 요청하기 var request = require('request'); request({ url: 'http://httpbin.org/ip', }, function(err, res, html)..
devnauts.tistory.com
Node.js에서 Request.js 사용하기
네트워크 더 간결하게 작성하자!
medium.com
이 있음(자바스크립트 인터프린터)
댓글