목록공부한거 (73)
눈팅하는 게임개발자 블로그
DeadLock 발생 조건 4가지 (Coffman Condition) - Mutual Exclusion(상호 배제) 모든 자원은 한 번에 하나의 스레드에게만 점유된다. 한 스레드가 해당 자원에 대한 소유권을 가졌다면 다른 스레드는 해당 자원에 접근할 수 없음. - Hold & Wait(소유 & 대기) 스레드가 한 자원의 소유권을 가진 상태에서 다른 자원의 소유권을 요청한 상태로 대기한다. - No Preemption(비선점) 스레드가 가진 자원에 대한 소유권을 강제로 뺏어올 수 없다. - Circular Wait(환형 대기) 한 그룹의 스레드들에 대해(자원 할당 그래프에서) 각 스레드들이 다른 스레드가 소유한 자원을 요청하는 원형의 고리가 형성된다. 위의 4가지 조건을 모두 만족하는 시스템에서는 교착상태..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. 소켓 버퍼는 송신 버퍼와 수신 버퍼를 하나씩 가지고 있다. 먼저 송신 버퍼는 일련의 바이트 배열과도 같다. 크기는 고정되어 있으나 마음대로 크기를 변경할 수도 있다. 송신 버퍼(Send Buffer) 송신 버퍼는 큐와 마찬가지로 FIFO(First in First Out, 선입선출)형태로 작동하는데, send함수에 data를 인자로 실행하면 data는 일단 송신 버퍼에 채워진다. 이후 송신 버퍼에 채워진 data는 잠시 후 통신 선로를 통해 점차적으로 빠져나간다. 따라서 송신 버퍼는 뭔가가 채워지더라도 곧 빈..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. OSI 모델의 계층 1~3에서는 패킷 유실이 발생할 수 있다. UDP의 경우 UDP에서는 패킷 유실이 발생하면 데이터그램 자체가 유실된다. 게다가 UDP 데이터그램의 크기가 클수록 유실될 확률도 높다. IP 패킷은 보통 1300바이트인데, 1만 바이트의 데이터그램을 UDP로 전송하면 운영체제는 이를 대략 1300바이트 정도 크기로 나누어서 보낸다.(IP 패킷 헤더 등이 있으므로 실제로는 조금의 차이가 있다.) 이 경우 대략 8개 정도의 패킷으로 나뉘어져 IP 패킷 8개가 수신측으로 전송된다. 이 중 하나라도 ..
www.gilbut.co.kr/book/view?bookcode=BN002400 게임 서버 프로그래밍 교과서 알고리즘부터 아키텍처까지 www.gilbut.co.kr 해당 책의 내용 중 일부를 정리. 게임에서 주로 사용하는 메시지 형식. 게임의 메시지(데이터)는 크게 텍스트 또는 바이너리 형식으로 정의된다. 텍스트 형식의 메시지는 사람이 읽을 수 있으며 다음과 같다. BuyItem Sword 1 텍스트 형식은 메시지를 받는 쪽에서 특정 글자가 나올 때까지(메타 데이터와 같은) 글자를 검색하거나 구문 분석기(parser)를 동원하는 것이 일반적이다. 과거에는 텍스트 형식을 게임 개발자가 자체 정의하는 경우가 많았지만 요즘은 HTTP나 JSON같은 표준화된 형식을 쓰는 것이 일반적이다. 반면 이진, 즉 바이너..
원본 사이트 learnopengl.com/Lighting/Lighting-maps LearnOpenGL - Lighting maps Lighting maps Lighting/Lighting-maps In the previous chapter we discussed the possibility of each object having a unique material of its own that reacts differently to light. This is great for giving each object a unique look in comparison to other objects learnopengl.com 번역 사이트 heinleinsgame.tistory.com/17 [Learn OpenGL 번..
원문 사이트 learnopengl.com/Lighting/Materials LearnOpenGL - Materials Materials Lighting/Materials In the real world, each object has a different reaction to light. Steel objects are often shinier than a clay vase for example and a wooden container doesn't react the same to light as a steel container. Some objects reflect th learnopengl.com 번역 사이트 heinleinsgame.tistory.com/16 [Learn OpenGL 번역] 3-3. ..
가답안 출처 : gisafirst.com/board/n1/view.php?offset=0&tq=1393907668&reqCategory=&idx=399&word=&s_type=&s_content=&s_terms 온라인IT자격증의 시작 기사퍼스트로 대비하세요. 정보공유 >> 가답안 * 가답안 복원과 무관한 글은 사전 통보 없이 삭제하겠습니다.10월 17일 시험 당일 가답안이 진행될 예정입니다. 응시하시는 분들은 문제복원에 도움을 주세요. ***************** gisafirst.com 정답확정 또는 정답일 것 같은 문제 10개. 1. EAI 구축유형 중 Message Bus와 Hybrid를 제외한 나머지 두 가지 유형은? 내 답 : Point to Point, Hub & Spoke 6. C언어-출..
원문 사이트 learnopengl.com/Lighting/Basic-Lighting LearnOpenGL - Basic Lighting Basic Lighting Lighting/Basic-Lighting Lighting in the real world is extremely complicated and depends on way too many factors, something we can't afford to calculate on the limited processing power we have. Lighting in OpenGL is therefore based on approxi learnopengl.com 번역 사이트 heinleinsgame.tistory.com/15 [Learn OpenGL..
원문 사이트 learnopengl.com/Lighting/Colors LearnOpenGL - Colors Colors Lighting/Colors We briefly used and manipulated colors in the previous chapters, but never defined them properly. Here we'll discuss what colors are and start building the scene for the upcoming Lighting chapters. In the real world, colors can take learnopengl.com 번역 사이트 heinleinsgame.tistory.com/14 [Learn OpenGL 번역] 3-1. 조명 - 색 ..
C++로 코딩을 함에 있어서 RAII를 지킨다함은 크게 2가지를 지키는 것이다. 1. 객체를 생성한 시점에 해당 객체에 필요한 모든 리소스가 초기화 된 상태여야 한다. 2. 객체가 스코프를 벗어나는 시점에 해당 객체가 가진 모든 리소스를 반환해야 한다. class Foo { public: Foo(const std::string& name) : name(name) { namePtr = new std::string(); } ~Foo() = default; Foo(const Foo& rhs) : name(rhs.name) { } Foo& operator=(const Foo& rhs) { name = rhs.name; return *this; } private: std::string name; std::stri..