5. (스팀 송금 서비스 제작을 목표로) 서버 개념 정리
스팀 송금 및 연동 서비스를 목표로 작성하는 글이며
이 글은 여러가지 검색을 통해 얻은 정보를 정리한 글입니다
틀린 정보가 있다면 댓글로 지적 부탁드립니다 감사합니다.
------------------------------------------------
개발 방향을 일단 node.js로 하기 위해 관련 개념을 정리해보았다.
1.AP I (Application Programming lnterface)
: 프로그램을 쉽게 제작할 수 있게 미리 만들어 놓은 것들의 모음
2.클라이언트(Client)
:단말에 데이터를 달라고 요청하는 프로그램
3.Sever
:요청받은 명령을 처리해주는 프로그램
4.Web Server (웹서버)
:서버 중에서 웹브라우저에 접속하는 서버
5.Protocal
:데이터를 서로 어떤 형태로 주고 받을 것인지를 정한 것으로 간단하게 데이터의 형태라고 생각하면 이해하기 쉽습니다.
6.웹 에이잭스(AJax) 방식
: 웹서버가 아닌 단말 내부에 웹 문서를 저장해 두었다가 필효할 대 데이터를 요청하는 방식
7.웹서버 종류
- 채팅서버, 위치기반 서비스, 모바일 서버, JSON-RPC, WEB-server(익스프레스, 몽고디비, 뷰 템플릿, 패스포트)
8.서버 구조
1) 익스프레스(Express) : 웹 프레임워크
2) 몽고디비 (MongoDB)
3)뷰 템플릿(View Templete) 클라이언트에 응답을 보낼 때 사용하려 미리 웹문서의 원형(Template)를 만들어 놓은것
4)PassPort(패스포트) : 사용자의 로그인이나 회원가입을 위해 사용
9.채팅 서버
- 채팅서버에 접속해
10.JSON-RPC 서버
1)의미
JSON-RPC 서버는 서버 쪽에 함수를 만들어 놓고 클라이언트에서 함수를 호출 하듯이 데이터를 요청하며 응답하는 서버입니다.
주로 웹문서가 아닌 데이터만을 주고받을 때 JSON-RPC 서버를 사용합니다.
2)JSON
JSON 은 어떤 형식으로 데이터를 주고 받을지를 정해놓은 표준 데이터 포멧이며 RPC(Remote Procedure Call) 방식으로 데이터를 주고 받습니다.
* Remote (먼)
* Procedure (순서)
3)장점
- RPC는 서버 쪽에 함수를 만들어 두고 클라이언트에서 함수를 호출하듯이 데이터를 요청할 수 있도록 만들어 주는 표준이기 때문에 명확하게 구분되어 서버 유지 관리가 쉬워집니다.
11.위치기반서비스서버
- 위치정보를 저장하고 조회할 때 사용합니다.
- 내가 있는 위치에서 가장 가까운 커피숍을 찾고 싶다면 나의 위치 정보와 커피숍의 위치 정보를 조회하고 비교하는 과정이 필요합니다.
1) 필요한 이유
- 위도와 경도 두 가지 숫자 값을 데이터베이스에 그대로 저장하면 데이터 양이 늘어나게 됩니다 또 두개의 값을 한번에 비교하여 조회하면 검색 속도는 현저하게 덜어집니다
- 이러한 방법을 제공하는 것이 위치 기반 서비스 서버입니다.
2) 주요기능
- 위치 정보는 공간 데이터(Spatial Data)라고도 합니다.
- 가까운 커피숍을 찾아달라고 서버에 요청하면 가까운 커피숍의 위치를 데이터 베이스에서 검색합니다.
- 이때 검색 소도가 떨어지지 않도록 공간 인덱싱(Spatial Indexing)방법을 사용합니다. (일반 데이터는 데이터베이스에 B-Tree 인덱싱 방법을 이용)
- 느려지는 이유는 1차원 일반 B-tree로 저장하면 조회 속도가 현저히 떨어진다 때문에 2차원 데이터의 좌표 값을 데이터베이스에 저장할때는 공간 인덱싱을 사용한다 방법에는 R-tree, R+Tree등이 있다.