Doit! - 노드로 만들 수 있는 대표적인 서버와 용도
Last updated
Last updated
PC에서 사용하는 프로그램은 애플리케이션(Application), 스마트폰에서는 **앱(App)**이라 부른다.
프로그램을 쉽게 제작할 수 있게 미리 만들어 놓은 것들의 모음.
다른 곳에 있는 단말에 데이터를 달라고 요청하는 프로그램을 클라이언트, 다른 곳에서 요청받은 명령을 처리해 주는 프로그램을 서버라 한다.
우리가 만든 프로그램을 인터넷에 연결하기 위해서는 단말에 네트워크 카드(Network Card or Ethernet Card)가 있어야한다. 이때 서버는 포트(단말에 접속하기 위한 '논리적인 접속 위치')를 지정해 그 포트로 요청을 받을 수 있는데 보통 0~65535 중 하나를 지정해서 사용한다.
포트번호 | 설명 |
---|---|
0~1023 | 잘 알려진 포트 |
1024~49151 | 등록된 포트 |
49152~65535 | 동적 포트 |
윈도우나 안드로이드 같은 OS가 시작될 때는 이미 잘알려진포트(0~1023)에서 대부분 사용하므로 보통 1024이상의 포트 번호를 사용한다.
웹 브라우저에 접속하는 서버를 웹 서버라 하며, HTTP 프로토콜을 사용한다. 프로토콜이란 데이터를 서로 어떤 형태로 주고받을 것인지를 정한 것으로, 간단하게 데이터의 형태라고 생각하면 좋다. 즉, HTTP는 인터넷상에서 데이터를 어떻게 주고받으면 되는지를 정의해둔 것이다.
모바일 단말에서는 Ajax(Asynchronous Javascript And XML)방식으로 데이터만 받아오는 경우도 있다.
서버 |
---|
웹 서버(익스프레스, 몽고디비, 뷰템플릿, 패스포트) |
채팅서버 |
위치 기반 서비스 서버 |
모바일 서버 |
JSON-RPC 서버 |
웹 서버는 모든 서버의 기본이다.
우리는 웹 프레임워크인 **Express(익스프레스)**를 기본 구조를 만들고 **MongoDB(몽고디비)**를 이용해 데이터를 저장하거나 조회한다. **View Template(뷰 템플릿)**은 클라이언트에 응답을 보낼 때 사용하려고 미리 웹 문서의 원형을 만들어 놓은 것이며 **Passport(패스포트)**는 사용자 로그인이나 회원가입을 위해 사용한다.
**localhost(로컬 호스트)**는 PC자신을 나타내는 인터라넷 주소이다.
MongoDB뿐만 아니라 MySQL을 사용할 수 있다.
채팅 서버는 웹 서버에 기능을 추가한 형태로 구성되며, 일대일 채팅, 그룹 채팅 기능을 제공한다. 채팅 메시지를 채팅 서버에 보내면 일대일 채팅의 경우 상대방을 찾아서 보내며, 그룹채팅인 경우 대화방에 있는 모든사람에게 보낸다.
JSON-RPC서버는 서버 쪽에 함수를 만들어 두고 클라이언트에서 함수를 호출하듯이 데이터를 요청하면 응답하는 서버이다. 주로 웹 문서가 아닌 데이터만을 주고받을 때 사용한다. JSON은 표준 데이터 포맷이며, **RPC(Remote Procedure Call)**방식으로 데이터를 주고 받는다. JSON과 RPC표준을 함께 사용하면 서버 쪽에 구축해야 하는 기능을 함수별로 명확하게 구분하여 만들 수 있다. 이때문에 서버 유지관리가 쉽다.
위치 정보를 저장하고 조회할 때 사용한다. 위치 정보는 위도,경도 좌표를 사용하는데 이 값을 그대로 저장하면 데이터의 양이 늘게되고, 두 개를 한번에 비교하면 검색속도는 현저히 떨어진다. 따라서 이러한 방법을 제공하는 것이 위치 기반 서비스 서버이다.
공간 데이터(Spatial Datat) : 지구상에 있는 집, 도로 등을 점이나 선 등의 형태로 나타낸 위치데이터를 말한다.
사용자가 어떤 모바일 단말을 사용하는지 알고 싶거나 모바일 단말로 푸시 메시지를 보내고 싶은 경우에 모바일 전용 기능을 사용할 수 있도록 모바일 서버 기능을 만든다. 여기서 모바일 서버는 모바일 단말 전용으로 사용하는 부분만을 말한다.