#온라인 게임을 지탱하는 기술
TCP (Transport Control Protocol)
인터넷 전체를 뒷받침하는 데이터 전송을 위한 통신 규격. 필요에 따라 IP(Internet Protocol)패킷을 재전송하여
큰 데이터를 보내는 것이 가능하다. 그 대신에 느린 링크에서 속도를 내기 위해서는 대량의 메모리가 필요하다.
캐시 (Cache)
데이터를 고속으로 꺼내오기 위해 일시적으로 다른 장소에 보존해 두는 것. 예를 들어 디스크 액세스는 느리기 때문에
파일의 내용을 메모리상에 배치해 두면(캐시해 두면), 고속으로 데이터를 꺼낼 수 있다. CPU 캐시, 캐시 메모리,
브라우저 캐시, 캐시 서버 등 여러 가지 레이어에서 활용되고 있는 장치.
클라우드 (Cloud)
클라우드 컴퓨팅(Cloud Computing)에서 주로 서버 측 컴퓨터 망을 말한다. 단순한 서버 머신의 호스팅 서비스뿐
아니라 스토리지나 부하 분산, 과금 시스템, 로그분석 등 서버 구축에 필요한 모든 컴퓨터 관련 리소스를 필요 시에
유연하며 빠르게 조달할 수 있다. 매우 편리하지만, 중요한 기밀정보나 개인정보를 클라우드 운영회사에 건네줘야
한다는 단점이 있다.
리던던시 (Redundancy)
예비로 여러 개를 준비하는 것, 게임 데이터의 다중화(Redundancy)란 데이터를 가까운 곳과 먼곳, 복수의 장소에
복사하여 보관하는 것을 말한다. (마스터, 복사본의 관계)
스루풋 (Throughput)
시스템이 일정시간 수행할 수 있는 처리량. 예를 들어, 1초에 1000의 처리를 수행할 수 있는 시스템은 100밖에
처리할 수 없는 시스템보다 스루풋이 높다고 할 수 있다.
스레드 (Thread)
프로세스에 의해 세분화된 프로그램의 실행 단위. 리소스 공유에 있어 대개의 경우 프로세스 간보다 스레드 간의
연계처리가 더 쉽다. 단일 스레드를 가지고 처리를 수행하는 방법을 싱글 스레드. 복수의 스레드를 동시에 사용하여
처리를 수행하는 방법을 멀티 스레드라고 부른다.
소켓 API (Socket API)
네트워크에 관련된 파일 디스크립터(file descriptor)인 소켓을 다루는 API.
대역폭 (Bandwidth)
온라인 게임 개발에서 네트워크를 경유하여 데이터 전송을 수행하는 전송률을 가리킨다.
디플로이 (Deploy)
애플리케이션 프로그램의 배치. 서버 디플로이먼트는 다른 버전의 서버 프로그램을 각 서버 머신에 인스톨하여 버전을
변경하는 일련의 작업을 말한다.
네트워크 토폴로지 (Network Topology)
네트워크에 포함되어 있는 각 컴퓨터가 어떠한 구조로 배치되어 있는지를 나타내는 개념. 컴퓨터는 노드, 접속은 엣지라고
부른다. 스타형, 버스형, 링형 등의 각종 구조에 명칭을 부여하고 네트워크 구조분석에 사용할 수 있으며 네트워크 구조
설계를 돕는다.
패킷 (Packet)
데이터의 전송 단위. 패킷 통신의 원리는 데이터를 분할하고 제어 정보 등을 부가하여 전송하는 것이다.
TCP에서 데이터 송신 단위는 세그먼트(Segment)이고, UDP/IP에서는 데이터그램(Datagram)으로 불리기도 한다.
온라인 게임 개발은 결국 네트워크 패킷 지연과의 싸움이다.
파일 디스크립터 (File Descriptor)
유닉스 운영체제에서는 파일뿐 아니라 네트워크나 블록 디바이스 등 OS하에 입출력 가능한 다양한 리소스를 파일처럼
취급한다. 프로그램에서는 파일 디스크립터로서 정수(C언어에서는 Int형)를 할당 사용하여 데이터의 입출력을 실시한다.
파일 디스크립터를 통해서 파일의 입출력과 같은 방법으로 네트워크의 입출력도 행해진다. 파일 기술자로고도 불린다.
블로킹/논블로킹 (Blocking/Non-Blocking)
블로킹이란 처리가 끝날 때까지 기다리는 것을 말한다. 예를 들어, 데이터가 들어올 때까지 기다리는 프로그램(블록하는)
에서는 그 사이에 다른 처리를 수행할 수 없다. 이문제를 해결하기 위해서는 논블로킹(계속 기다리즌 않음)으로 하면 된다.
동기적 호출, 비동기적 호출로 불리기도 한다.
보틀넥 (Bottleneck)
시스템에서 제일 약점이 되는 부분. 다른 부분이 아무리 빨라도 하나의 늦은 부분(보틀넥)이 있는 것만으로 전체가 느려지는
경우도 있다.
폴링 (Polling)
데이터의 송신과 이벤트의 유무를 확인하는 것. 폴링을 너무 많이 하면 CPU에 불필요한 부하가 걸린다.
미들웨어 (Middleware)
애플리케이션에서 사용하는 범용적인 기능을 집약하여 특화한 패키지 소프트웨어. 통신 등의 유연성과 성능이 요구되는
처리를 패키지화하는 것으로, 개별작업의 번거로움을 줄이고, API를 통해 고도의 기능을 이용할 수 있게 한다.
레이턴시 (Latency)
처리 소요 시간. 예를 들어, 플레이어가 키를 누르고 그 조작이 화면에 반영될 때까지 1초나 걸리는 게임은 레이턴시가
나쁜 것이라 할 수 있다. 다양한 상화에서 사용되는 용어이며, 대체로 CPU 액세스 레이턴시는 나노초, 메모리 액세스는
수십~수백 나노초. SSD 액세스는 수백 마이크로초, 하드 디스크 액세스는 수십 밀리초, 네트워크는 밀리초~(초) 단위이다.
'Programming > 네트워크' 카테고리의 다른 글
TCP/IP Model과 데이터 형태 (0) | 2018.08.14 |
---|---|
OSI 참조 모델 (0) | 2018.08.14 |