서버는 왜 필요할까?
- 클라이언트 : 다른 곳에 있는 단말에 데이터를 요청하는 프로그램
- 서버 : 다른 곳에서 요청받은 명령을 처리해주는 프로그램
인터넷을 연결하기 위해서는 단말에 네트워크 카드(Network Card Ethernet Card)가 존재해야 한다.
또한, 서버는 포트(Port)를 지정하여 해당 포트를 통해 요청을 받을 수 있다. (0 ~ 65535)
포트 번호 | 설명 |
---|---|
0 ~ 1023 | 잘 알려진 포트 |
1024 ~ 49151 | 등록된 포트 |
49152 ~ 65535 | 동적 포트 |
※ OS가 시작될 때, 잘 알려진 포트(1 ~ 1023)는 대부분 사용하기 때문에 직접 만드는 서버 프로그램은 1024번 이상의 포트 번호를 사용한다.
-
웹 브라우저에서 접속하는 서버를
웹 서버
라고 한다. (HTTP 프로토콜을 사용) -
데이터를 서로 어떤 형태로 주고받을 것인지를 정한 것(통신 규약)을
프로토콜
이라 한다.
대표적인 서버 유형은 어떤 것이 있을까?
- 웹 서버 : 다양한 모듈을 사용하여 웹 서버 제공
- 익스프레스, 기본 구조 만듬
- 몽고디비, 데이터를 저장 및 조회
- 뷰 템플릿, 웹 문서의 원형
- 패스포트, 사용자 로그인이나 회원가입
-
채팅 서버 : 일대일 이나 그룹 채팅처럼 실시간 채팅 기능 제공
- JSON-RPC 서버 : 서버쪽에 함수룰 만들어 두고 클라이언트에게 함수를 호출하듯이 데이터를 요청/응답하는 서버 제공
- JSON이라는 표준 데이터 포맷 이용
- RPC(Remote Procedure Call)방식으로 데이터를 주고 받음
- 위치 기반 서비스 서버 : 위치 정보를 저장하고 조회 제공
- 위치정보는 공간 데이터라고도 한다.
- 공간 인덱싱을 사용한다.
- why?) 좌표값을 B-Tree 인덱싱하면 조회 속도가 느려짐
※ 공간 데이터와 공간 인덱싱?
공간 데이터 : 좌표, 2차원 데이터
공간 인덱싱 : R-Tree, R*Tree
- 모바일 서버 : 모바일 단말을 사용할 때 필요한 기능을 제공하는 서버