-
Ducktopia - <19> TOP NEW
피드백 수용 Gateway - Other Server 최적화 현재 Gateway에선 Payload를 디코딩하여 객체로 생성하는데, 이 생성된 객체는 Heap 영역에 저장되어 Garbage 컬렉션에 의해 사라지기 전까지 메모리를 사용하게된다.. 그렇기에 불필요한 메모리 사용을 줄이기 위해 Gateway에서 무조건적으로 Payload를 디코딩하지 않고, Payload 정보가 필요한 핸들러에서만 직접 디코딩하도록 수정하여 기본 Packet 전달 시의 Heap 영역 사용을 최소화 하였다! // 핸들러에 직접 payloadBuffer를 주도록 변경 const packet = so... Read More
-
이론 정리 - < Network > TOP NEW
TCP / UDP TCP (Transmission Control Protocol): 연결 지향적, 신뢰성 높음, 순서 보장, 오류 복구 가능, 비교적 속도가 느린 프로토콜 (예: 파일 전송, 이메일) UDP (User Datagram Protocol): 비연결 지향적, 신뢰성 낮음, 순서 보장 없음, 오류 복구 불가, 속도가 빠른 프로토콜 (예: 실시간 스트리밍, DNS) TCP / UDP 패킷 구조 차이 TCP 패킷: 헤더에 오류 검출을 위한 Sequence Number, Acknowledgment Number, Checksum 등 포함 ... Read More
-
Ducktopia - <18> TOP NEW
중간 발표회 오늘은 중간 MVP 발표회가 있어, 현재 프로젝트에 대해 발표하면서 여러 관점에서 보는 프로젝트의 방향성을 조언받을 수 있는 기회이다! 피드백 발표에 사용할 서비스 아키텍쳐를 대략적으로 그린 자료이다. Gateway 서버가 중계하는 Client와 Other Server간의 패킷 교환방식에 대해서 최적화될 수 있는 부분이 있는가? 위와 같은 질문에 대해 명확한 해답을 찾아봐야 되겠다! ( 엉뚱하게 답변을 해버린 나는 오늘도 이불킥 ) 좀 더 자세히 파고들어보니 Packet을 디코딩하는 과정에서 디코딩된 Payload가 새로운 객체로 할당되고, 새로 생성된 “객체”는 Stack이 아닌... Read More
-
이론 정리 - < OS > TOP NEW
-
Ducktopia - <17> TOP NEW
분산 서버 현재 진행한 분산 서버 구조에 개발을 마친 Game 서버 로직을 병합해주는 작업을 진행해준다! Protobuf 구조 병합 Game 서버의 Handler를 분산 서버에 맞게 구조 수정 새로 만들어진 PacketType들을 Gateway 서버에 맵핑 Latency 체킹 분산 서버가 되어 Gateway 서버가 추가되었기에 각 서버와의 latency가 게임에 영향이 크지 않을 정도로 나오는지 확인하기 위해 로직을 추가해준다. Gateway 서버의 Server Class에 레이턴시 확인용 인터벌 메서드를 설정해주고, 받아왔을 때 Log로 보여... Read More
-
이론 정리 - < DB > TOP NEW
Primary Key, Foreign Key, Entity-Relation Model Primary Key(기본 키)란 각 데이터들을 고유한 값으로 구분(+무결성 보장)해주는 기본적인 필드/컬럼을 의미합니다. Foreign Key(외래 키)란 2개 이상의 테이블 간 관계를 정의하고 데이터 무결성을 유지하는 데 사용하는 필드/컬럼을 의미합니다. ER Model이란 DB 설계를 위한 개념적 모델링 도구로, 실제 데이터를 Entity(개체)/Attribute(속성)/Relationship(관계) 라는 요소로 표현하는 모델을 말한다. Entity(개체) : 독립적으로 존재 가능한 객체나 개념을 나타냄... Read More
-
Ducktopia - <16> TOP NEW
분산 서버 현재 기본 구조와 기능들이 구현된 상태에서 EC2에 올려서 잘 작동하는지 확인해보는 작업을 진행해준다! 게임 서버는 증설을 생각하여 인스턴스가 올라가면 바로 실행될 수 있는 AMI세팅을 해준다! 보안 그룹 설정 Gateway 서버에 접속할 수 있는 클라이언트의 입력을 받을 수 있도록 설정해준다! (원래는 다른 서버에서도 입력이 들어올 수 있도록 인바운드를 설정해주어야 하지만,현재는 TCP 통신방식을 사용하므로 필요가 없다!) (Gateway Server (TCP 연결 요청)-> other Server » TCP통신 사용) 이제 반대로 다른 서버(로비,게임) 에서는 Gateway 서버의 입... Read More
-
이론 정리 - < Data > TOP NEW
Array와 LinkedList Array는 메모리 상에서 하나의 묶음으로 고정되어있는 그룹이라면, LinkedList는 메모리와 상관없이 각각의 요소들이 동적으로 이어져있는 그룹! 이러한 차이점에 의해 Array는 빠른 접근 속도와 연속된 메모리 사용이 장점이지만, 크기 고정으로 삽입 및 삭제가 비효율적이고, LinkedList는 삽입/삭제가 효율적이지만, 접근 속도가 느리며 메모리 오버헤드가 발생할 수 있음! Stack과 Queue Stack과 Queue는 데이터를 저장하거나 삭제(사용)하는 순서의 차이가 있다! Stack은 자료를 LIFO(후입선출) 방식으로 팬케이크처럼 데이터를 쌓아서 사용하고, Qu... Read More