728x90

서버 77

게임 서버 프로그래밍 교과서 4장. 게임 서버와 클라이언트

4장. 게임 서버와 클라이언트 4.1 패키지 게임에서 게임서버 데디케이티드(decidated server) 렌더링과 사용자 입력 처리를 전혀 받지 않고, 순전히 클라이언트의 연결을 받는 세션을 처리만 하는 프로그램이 따로 들어있는 경우 4.2 서버의 역할 싱글 플레이 게임의 게임루프(game loop) 입력받기 → 게임 로직 처리하기 → 렌더링 4.3 게임 클라이언트와 서버의 상호작용 게임 클라이언트가 서버에 데이터, 즉 메시지를 전달하면 서버는 이를 수신하여 메시지 내용에 따라 특정한 행동을 한다. 반대로 서버에서 클라이언트에 메시지를 전달하면 클라이언트는 수신한 메시지 내용에 따라 특정한 행동을 한다. 이렇게 메시지가 오가는 과정을 상호작용(interaction)이라고 한다. 게임 클라이언트와 서버의..

게임 서버 프로그래밍 교과서 3장. 소켓 프로그래밍

3장 소켓 프로그래밍 온라인 게임 프로그래밍에서 소켓은 파일 핸들 방식과는 약간 다르다. 게임 서버에서는 다루어야 하는 소켓 개수가 많다. TCP를 이용해서 통신하는 경우 클라이언트 개수만큼 소켓이 있어야 한다. 파일 핸들을 하는 동안 스레드가 대기하는 일이 없어야 한다. 디스크를 읽거나 쓸 때 사용하는 read(), write() 함수는 호출 후 실행이 완료될 때 까지 리턴하지 않는다. 소켓을 이용해서 읽기/쓰기를 하는 함수를 호출 했는데 즉시, 리턴하지 않는다면 이들을 호출한 메인 스레드는 사용자 입장에서 일시정지 하는 것 처럼 보인다. 이러한 이유 때문에 네트워크 프로그래밍에서 소켓은 보통 비동기 입출력(Asynchronous I/O) 상태로 다룬다. 소켓을 비동기 입출력으로 다루는 방식에는 크게는..

24.04.09 서버 프로그래밍, 서버 공부

게임 서버 프로그래밍 교과서 4장. 게임 서버와 클라이언트 4.1 패키지 게임에서 게임서버 데디케이티드(decidated server) 렌더링과 사용자 입력 처리를 전혀 받지 않고, 순전히 클라이언트의 연결을 받는 세션을 처리만 하는 프로그램이 따로 들어있는 경우 4.2 서버의 역할 싱글 플레이 게임의 게임루프(game loop) 입력받기 → 게임 로직 처리하기 → 렌더링 4.3 게임 클라이언트와 서버의 상호작용 게임 클라이언트가 서버에 데이터, 즉 메시지를 전달하면 서버는 이를 수신하여 메시지 내용에 따라 특정한 행동을 한다. 반대로 서버에서 클라이언트에 메시지를 전달하면 클라이언트는 수신한 메시지 내용에 따라 특정한 행동을 한다. 이렇게 메시지가 오가는 과정을 상호작용(interaction)이라고 한..

24.04.06 서버 프로그래밍, 서버 최적화, 백준

게임 서버 프로그래밍 교과서 2장. 컴퓨터 네트워크 2.1 OSI 모델 계층 1 : 물리 계층 계층 2 : 데이터 링크 계층 계층 3 : 네트워크 계층 계층 4 : 전송 계층 계층 5 : 세션 계층, 6 : 표현 계층, 7 : 응용 계층 데이터 링크 계층 각 단말기는 고유한 주소를 갖는다. 단말기는 데이터를 프레임이라는 단위로 주고 받는다. 네트워크 계층 라우터는 서로 다른 LAN 사이에 컴퓨터 통신을 할 수 있게 하는 장비이다. 3계층에서 흔히 접하는 것은인터넷 프로토콜(Internet Protocol)혹은 IP라고 하는 것이다. 인터넷 프로토콜에서는 주소 형식 8비트 숫자 4개로 구성되어 있다. 우리가 흔히 IP 주소라고 칭하는 것이 이것이다. 데이터는 IP에 의해 IP 패킷 형태로 포장된다. 2.2..

24.04.05 서버 프로그래밍

게임 서버 프로그래밍 교과서 1장 멀티스레딩 1.1 프로그램과 프로세스 프로그램은 크게 코드(code)와 데이터(data)로 구성되어 있다. 프로그램은 실행하면 이를 프로세스라고 한다. 이런 프로세스가 여러개 실행되고 있는것을 멀티 프로세싱 이라고 한다. 1.2 스레드 각 프로세스는 독립된 메모리 공간이 있고, 기본적으로 서로 다른 프로세스는 상대방의 메모리 공간에 쓸 수 없다. 일반적으로 많이 쓰는 운영체제는 대부분 스레드(thread)라는 기능을 제공한다. 스레드 역시 프로세스처럼 명령어를 한 줄씩 실행하는 기본 단위이다. 스레드와 프로세스의 차이 스레드는 한 프로세스 안에 여러 개가 있다. 한 프로세스 안에 있는 스레드는 프로세스 안에 있는 메모리 공간을 같이 사용할 수 있다. 스레드마다 스택을 가..

게임 서버 프로그래밍 2장. 컴퓨터 네트워크

2장. 컴퓨터 네트워크 2.1 OSI 모델 계층 1 : 물리 계층 계층 2 : 데이터 링크 계층 계층 3 : 네트워크 계층 계층 4 : 전송 계층 계층 5 : 세션 계층, 6 : 표현 계층, 7 : 응용 계층 데이터 링크 계층 각 단말기는 고유한 주소를 갖는다. 단말기는 데이터를 프레임이라는 단위로 주고 받는다. 네트워크 계층 라우터는 서로 다른 LAN 사이에 컴퓨터 통신을 할 수 있게 하는 장비이다. 3계층에서 흔히 접하는 것은인터넷 프로토콜(Internet Protocol)혹은 IP라고 하는 것이다. 인터넷 프로토콜에서는 주소 형식 8비트 숫자 4개로 구성되어 있다. 우리가 흔히 IP 주소라고 칭하는 것이 이것이다. 데이터는 IP에 의해 IP 패킷 형태로 포장된다. 2.2 인터넷 서로 다른 종류의 많..

게임 서버 프로그래밍 1장. 멀티스레딩

1장. 멀티스레딩 1.1 프로그램과 프로세스 프로그램은 크게 코드(code)와 데이터(data)로 구성되어 있다. 프로그램은 실행하면 이를 프로세스라고 한다. 이런 프로세스가 여러개 실행되고 있는것을 멀티 프로세싱 이라고 한다. 1.2 스레드 각 프로세스는 독립된 메모리 공간이 있고, 기본적으로 서로 다른 프로세스는 상대방의 메모리 공간에 쓸 수 없다. 일반적으로 많이 쓰는 운영체제는 대부분 스레드(thread)라는 기능을 제공한다. 스레드 역시 프로세스처럼 명령어를 한 줄씩 실행하는 기본 단위이다. 스레드와 프로세스의 차이 스레드는 한 프로세스 안에 여러 개가 있다. 한 프로세스 안에 있는 스레드는 프로세스 안에 있는 메모리 공간을 같이 사용할 수 있다. 스레드마다 스택을 가진다. 이는 각 스레드에서 ..

운영체제 34. 분산시스템

34. 분산시스템 웹브라우저가 지구상 어딘가에 있는 웹 서버에 접속하면 클라이언트/서버 분산 시스템이라는 구조에 한 구성원이 된다. 분산 시스템의 핵심 사안은 실패와 고장의 극복이다. 개별 구성요소들은 자주 고장나지만 기계들은 고장없는 시스템처럼 보이도록 만들 수가 있다. 또 다른 중요한 문제가 있다. 시스템 성넝은 매우 중요한 요소이다. 분산된 시스템들을 연결하는 네트워크에서는 시스템 설계자들은 주어진 목적을 달성하는데 많은 신경을 써야한다. 마지막으로 보안 역시 매우 중요한 요소이다. 원격 사이트를 접속할 때, 접속한 사이트가 진짜 원했던 사이트인지를 확신할 수 있는지도 중요한 문제이다. 34.1 통신의 기본 최신 네트워킹의 핵심 가정은 통신은 신뢰할 수 없다는 것이다. 종류에 상관 없이 패킷들은 정..

책/운영체제 2024.04.02

CGI(Common Gateway Interface)

CGI(Common Gateway Interface) 서버와 애플리케이션 간에 데이터를 주고 받는 방식 도는 컨벤션 웹 서버와 외부 프로그램 간의 인터페이스를 위한 표준이다. CGI를 사용하면, 웹 서버는 동적 컨텐츠를 생성하거나 클라이언트의 요청에 따라 데이터를 처리할 수 있는 외부 프로그램을 호출할 수 있다. 다양한 프로그래밍 언어로 작성될 수 있으며, 웹 서버에 의해서 실행된다. 사용자의 요청에 따라 CGI 스크립트가 실행되고, 스크립트는 실행 결과를 웹 서버로 다시 보내며, 서버는 그 결과를 사용자에게 전달한다. 장점 기능별로 프로그램을 분리하여 관리하기 때문에, 코드의 모듈성이 증가하고 유지보수가 용이하다. 단점 각 기능마다 별도의 프로그램을 유지해야 하므로, 전체 시스템의 복잡성이 증가하고 리..

24.02.25 운영체제, 백준, KEYWORD

운영체제 운영체제 개요 프로그램은 매우 단순한 일을 한다. 명령어를 반입(fetch)하고, 해석(decode)하고, 실행(execute) 한다. 명령어 작업을 완료한 후, 프로세서는 다음 명령어로 또 그 다음 명령어로 프로그램이 완전히 종료될 때까지 실행을 계속한다. 운영체제는 가상화(virtualization)라고 불리는 기법을 사용한다. 운영체제는 프로세서, 메모리, 또는 디스크와 같은 물리적인 자원을 이용해서 일반적이고, 강력하고, 사용이 편리한 가상형태의 자원을 생성한다. 때문에 운영체제를 가상머신(virtual machine) 이라고 한다. 사용자 프로그램의 프로그램 실행, 메모리 할당, 파일접근과 같은 가상머신과 관련된 기능들을 운영체제에게 요청할 수 있도록, 운영체제는 사용자에게 API를 제..

728x90