Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

차근차근

[Node.js] 노드로 만들 수 있는 서버와 용도 본문

대학교/BE

[Node.js] 노드로 만들 수 있는 서버와 용도

SWKo 2020. 2. 12. 16:17

0. 서버 동작 방식

  • 프로토콜이란 데이터를 서로 어떤 형태로 주고받을 것인지를 정한 것으로, 간단한 데이터의 형태이다.
  • 웹브라우저에서 HTTP로 요청한 데이터를 받은 웹 서버는 필요한 작업을 수행한 후 HTTP로 응답을 보낸다.
  • 웹 브라우저에서 볼 수 있는 웹 문서는 보통 HTML, CSS, JS를 이용해 만든 것이다.
  • 스마트폰과 같은 모바일 단말에서는 웹 문서를 웹 서버가 아닌 단말 내부에 저장해 두었다가 화면에 띄운 후 웹 서버로 필요한 데이터만 요청하는 방식을 사용하기도 한다.
  • 이때 에이잭스(Ajax)방식으로 데이터만 받아오는 경우가 많다. 이렇게 하면 매번 웹 문서를 가져오지 않고 필요한 데이터만 가져온 후 화면을 부분적으로 갱신할 수 있기 때문에 화면 처리 속도가 빨라지는 장점이 생긴다.
  • 에이잭스(Ajax)는 비동기식 자바스크립트 XML(Asynchronous Javascript And XML)의 약자로 웹 서버에서 웹 문서를 받아오는 것이 아니라 데이터만 받아오기 위한 방법과 기술을 말한다.

1. 대표적인 서버 유형

  • 카카오톡이나 라인처럼 실시간 채팅 앱을 만들고 싶다면 실시간 채팅 기능을 지원하는 채팅 서버가 있어야 한다.
  • 다양한 센서로부터 값을 전달받아 동작하는 사물인터넷(IOT) 기능을 만들고 싶다면 여러 센서들과 데이터를 주고받을 수 있는 서버가 있어야 한다.
  • 요즘에는 모바일 앱을 많이 만들기 때문에 스마트폰같은 모바일 단말에 필요한 기능을 제공하는 모바일 서버가 필요하다.
  • 웹 서버는 모든 서버의 기본이다. HTTP 프로토콜로 데이터를 주고받을 수 있는 웹 서버를 만들고 나면 그 위에 채팅 서버나 위치 기반 서비스 서버 등을 위한 기능을 추가해서 새로운 서버를 만들 수 있다. 

2. 웹 서버의 기능

  • 노드를 사용해서 서버를 만들어 보자. 
  • 먼저 노드에서 제공하는 다양한 모듈(Module)을 사용하여 웹 서버를 만들어보자.
  • 만들 웹 서버는 웹 프레임워크인 익스프레스(Express)로 기본 구조를 만들고 MongoDB를 이용한다. 
  • 뷰 템플릿(View Template)은 클라이언트에 응답을 보낼 때 사용하려고 미리 웹문서의 원형(Template)을 만들어 놓은 것이다.
  • 패스포트(Passport)는 사용자 로그인이나 회원가입을 위해 사용한다.
  • localhost(로컬호스트)는 PC자신을 나타내는 인터넷 주소라고 할 수 있다.
  • 내가 하고자 하는 것을 정리해보면 익스프레스가 웹 서버에 필요한 파일들을 자동으로 마들어 줌으로써 좀 더 쉽게 웹 서버를 제작할 수 있도록 도와준다.
  • 데이터를 저장하고 조회할 때는 몽고디비를 사용하고, 클라이언트에 응답을 보낼 때는 '뷰 템플릿'을 미리 마들어 두었다가 사용한다. 그리고 웹 브라우저에서 로그인이나 회원 가입 기능을 쉽게 만들 수 있도록 도와주는 것이 패스포트이다.

3. 채팅 서버의 기능

  • 채팅 서버는 일대일채팅이나 그룹 채팅처럼 실시간 채팅 기능을 클라이언트에서 사용하고 싶을 때 만든다.
  • 웹 브라우저나 모바일 단말 같은 클라이언트에서 채팅 메시지를 채팅 서버에 보내면 채팅 서버는 이 메시지를 누구에게 전달할 것인지를 결정한 후 응답을 보낸다.
  • 웹 브라우저나 모바일 앱에서 실시간 채팅기능을 사용하고 싶다면 먼저 채팅 서버에 접속한다.
  • 채팅 서버는 웹 서버에 기능을 추가한 형태로 구성되며, 채팅 기능을 제공한다. 
  • 클라이언트는 채팅을 위해 채팅 서버에 접속한 후 로그인하고 친구 목록을 가져올 수 있다.

4. JSON-RPC 서버의 기능

  • JSON-RPC서버는 서버 쪽에 함수를 만들어 두고 클라이언트에서 함수를 호출하듯이 데이터를 요청하면 응답하는 서버이다.
  • 주로 웹 문서가 아닌 데이터만을 주고받을 때 JSON-RPC서버를 사용한다.
  • JSON은 어떤 형식으로 데이터를 주고받을지를 정해 놓은 표준 데이터 포맷이다.
  • RPC(Remote Procedure Call)방식으로 데이터를 주고받는다. RPC는 서버 쪽에 함수를 만들어 두고 클라이언트에서 함수를 호출하듯이 데이터를 요청할 수 있도록 만들어 주는 표준이다.
  • JSON과 RPC표준을 함께 사용하면 서버 쪽에 구출해야 하는 기능을 함수별로 명확하게 구분하여 만들 수 있다. 이 떄문에 서버의 유지 관리가 쉬워진다.
  • 서버에 등록된 함수를 보통 핸들러라고 부른다. 

5. 위치 기반 서비스 서버의 기능

  • 위치 기반 서비스 서버는 위치 정보를 저장하고 조회할 때 사용한다.
  • 내가 있는 위치에서 가장 가까운 커피숍을 찾고 싶다면 나의 위치 정보와 커피숍의 위치 정보를 조회하고 비교하는 과정이 필요한데, 위치 기반 서비스 서버가 이러한 역할을 수행한다.
  • 위치 정보는 공간 데이터(Spatial Data)라고도 한다. 

6. 모바일 서버의 기능

  • 모바일 서버는 모바일 단말을 사용할 때 필요한 기능을 제공하는 서버이다.
  • 웹 서버의 기능만으로도 앱에서 서버에 데이터를 보내 저장하거나 조회하는 기능을 충분히 만들 수 있다.
  • 그러나 사용자가 어떤 모바일 단말을 사용하는지 알고 싶거나 모바일 단말로 푸시 메시지를 보내고 싶은 경우에는 모바일 전용 기능을 사용할 수 있도록 모바일 서버라는 이름으로 서버 기능을 만든다.

7. 노드란?

  • 노드(Node.js)는 자바스크립트를 이용해서 서버를 만들 수 있는 개발 도구이다.

'대학교 > BE' 카테고리의 다른 글

[Node.js] 노드의 기본 기능  (0) 2020.02.12
[Node.js] 노드 & 자바스크립트  (0) 2020.02.12
[Flask] 기본 애플리케이션 구조  (0) 2020.02.11
[Flask] CGI  (0) 2020.02.10
[Ruby on Rails] Ruby on Rails  (0) 2020.02.05
Comments