------이 카테고리는 'node.js교과서' 와 node.js공식홈페이지, 저의 경험을 바탕으로 정리한 카테고리입니다.-----
크롬 v8자바스크립트 엔진으로 빌드된 자바스크립트 런타임입니다. 이벤트기반, nonblocking I/O모델을 사용해 가볍습니다.
일반적으로 서버구현하는데 노드를 많이 사용하는데 사실 node.js는 서버구현 뿐만 아니라 웹의 전반적인 기술을 support해줍니다.
하지만 저도 서버로 node.js를 사용하기때문에 이에 대해 정리해 보겠습니다.
서버란?
네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램입니다.
클라이언트란 : 요청을 하는 주체이며 예로는 브라우저, 프로그램, 모바일 앱 등이 있습니다.
서버와 클라이언트가 통신하는 예를 들어보도록 하겠습니다.모바일 앱에서 플레이스토어나 앱스토에서 원하는 앱을 설치하면 내려받기가 시작된다. 앱 설치 파일은 이미 어딘가에 저장되어 있으므로 여러분이 그곳에서 데이터를 받아와 모바일에 설치할 수 있는것입니다. 여기에서 플레이스토어, 앱스토어는 클라이언트이며 데이터를 불러오는곳은 서버가 됩니다. 만약에 P2P통신을 하게된다면 서버에서 서버로 요청을 할 수도 있기 때문에 서버가 클라이언트가 될 수도 있습니다.
이벤트 기반
이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 의미합니다. 예를들어 웹에서 버튼을 클릭하거나 어떠한 input 값이 있을때 이런 이벤트가 발생되었을떄 어떤 함수를 작동시켜야하지? 라는 생각을 바탕으로 코드를 작성하면 됩니다.
이벤트 기반의 함수를 사용하기 위해서 event listener, callback function에 대한 이해가 필요할 것입니다. 이에대해서는 이 후의 포스팅에 올리도록 하겠습니다.
~
function first(){
second();
console.log('첫번째');
}
function second(){
third();
console.log('두번째');
}
function third(){
console.log('세번째');
}
first();
~
위의 코드를 실행했을때 어떤 로그가 찍히는지는 이해하고 node.js를 시작하셨으면 좋겠습니당. first()->second()->third()함수 순으로 호출되고 이 순서와는 반대로 로그가 찍히게 됩니다. 따라서 '세번째 두번째 첫번째' 순으로 찍힐 것입니다. 이를 좀더 간단하게 이해하기 위해서는 스택을그려보시는것을 추천드립니다.
'Node.js Backend' 카테고리의 다른 글
[Node.js] URL 이해하기 (0) | 2019.09.17 |
---|---|
[Node.js] Template Literal (0) | 2019.09.15 |
[Node.js] Javascript 문법 - Data type (0) | 2019.09.05 |
[Node.js] Rest API 에 관하여 (0) | 2019.09.04 |
Node.js(express)연동하여 웹서버 만들기 (0) | 2019.08.05 |