본문 바로가기

전체 글198

게임 아키텍처 : 비동기/지속/세션 출처 : 1. AWSKRUG 아키텍처 모임의 '윤평호' 님 발표 2. https://www.slideshare.net/ssuser052dd11/igc-2017 [IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지 멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 게임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, L www.slideshare.net 3. https://15466.courses.cs.cmu.edu/lesson/network Network Please read and seek to understand the material below. Questions and programming.. 2022. 11. 28.
Dead Reckoning (딱 대충 설명할 수 있을 정도로만 찾아봤다) Dead Reckoning(추측 항법) 알고리즘 네트워크 지연으로 인한 문제를 해결하기 위한 개념. 보통 네트워크 지연에 민감한 실시간 게임 등에 사용된다. ※ 지연(Latency) : 한 컴퓨터에서 다른 컴퓨터로 네트워크를 통해 정보의 패킷을 얻는데 걸리는 시간 비동기 게임(체스, 바둑 등)의 경우에는 별 문제 없다. 빠른 상호 작용을 필요로 하는 시스템(대표적으로 게임)에서는 LAN/WAN에서 발생하는 일반적인 지연으로도 치명적이다. 지연을 줄이기 위해 게임 제작사들이 개발한 상용 솔루션(보통 전용 네트워크 세그먼트에 의존)들은 지연을 예측하는 상황에는 약하다. 이론적으로는 매 프레임마다 이벤트와 상태를 전송하면 되지만, 이 경우 클라이언트가 증가할수록 .. 2022. 11. 28.
Lag Compensation (딱 대충 설명할 수 있을 정도로만 찾아봤다) Lag Compensation(지연 보상/앞섬-뒤짐 보상기) 대충 플레이어들 간 지연(대기) 시간의 차이로 인해 발생하는 불공평함(?)을 보상하기 위한 개념 어떻게 굴러가는지는 복잡한데... 대충 피격자가 지연 시간이 더 짧아서 공격자의 공격을 피하게 되는 상황을 되감기를 통해 보상해준다는 구조. 당연하지만 비동기 게임(체스, 바둑 등)의 경우에는 별 문제없다. 게임 엔진마다 차이점이 있는지는 모르겠지만... 지연 보상 유형에 따라 차이점은 있다. 1. 엔터티 위치만 되감고 애니메이션은 내버려둔다 2. 위치와 히트박스 모두 되감는다(표준) 3. 피격 범위 안에 들어간 경우에만 히트박스를 되감는다. 그렇지 않으면 범위만 되감는다. 출처 : https://dev.. 2022. 11. 28.
AWS CodeDeploy 실습 중 이모저모 Github Action + CodeDeploy 구성 진행 간 참고한 블로그. 이런 쪽으로는 생각보다 자료가 별로 없었다. 내가 작성한 내용은 실습 진행 간 발생한 의문이나 문제 해결 등에 초점을 맞췄고, 실제로 구성을 어떻게 하느냐는 이분들 글을 참고하는 것이 나을 것이다. 더보기 https://devlog-wjdrbs96.tistory.com/305 [AWS] Auto-Scaling CodeDeploy Blue/Green 자동화 배포 Auto Scaling, CodeDeploy로 Blue/Green 자동화 배포하기 저번 글 에서는 아래와 같은 아키텍쳐로 진행되었습니다.(저번 글을 한번 가볍게 보고 오는 것을 추천드립니다. AWS 서비스를 생성하는 과정에서 devlog-wjdrbs96.tistory.c.. 2022. 10. 25.
Kafka 입문 (4) 10강. Apache Kafka Connect https://youtu.be/UURmOj6Eaoo 반복적인 데이터 파이프라인을 효과적으로 배포/관리하는 방법으로 카프카 커넥터를 사용한다. 카프카 커넥트는 공식 컴포넌트다. 공식이라고 들이미는 것 자체가 나름 비중이 있다는 것이겠지? 카프카 커넥트는 커넥트(Connect)와 커넥터(Connector)로 이루어져 있다. 대충 비슷해 보이지만 다른 개념이니 주의. Connector -> 실질적으로 데이터를 처리하는 코드가 담긴 jar 패키지. -> 템플릿처럼 특정 동작을 하는 코드 뭉치 -> 파이프라인에 필요한 여러 동작/설정/메서드 등이 포함되어 있다. 예시) 토픽에서 오라클 DB에 데이터를 저장하고 싶다 -> 커넥터에 INSERT 메서드를 구현하고 커넥터 .. 2022. 10. 6.
생활코딩 - DATABASE1 강의 정리 정말 입문자를 위한 강의였다. 추상적이지만 방향을 제시해주는 내용. 아는 내용들이지만 어차피 차근차근 공부하기로 생각했으니 교양 듣는다 생각하고 들었다. 데이터가 왜 중요한가? -> 데이터를 가공해 다양한 일을 할 수 있기 때문 : 인터넷, 웹, 앱에 접속해 상호 작용/인공지능/분석을 통한 통찰 등 어쨌든 위와 같은 일들을 하기 위해서는 일단 데이터를 저장해야 한다. -> 어떻게? 일단은 파일(File) -> 사용하기 쉽고, 어디에서든 사용할 수 있다. 하지만 파일은 성능/보안/편의성 부분에서 한계를 가지고 있다. -> 이 한계를 극복하기 위한 SW가 Database다. DB는 방대한 기능을 가진 정보 도구다. -> 데이터와 관련해 일어날 수 있는 일들이 다양하기 때문이다. -> 일어날 수 있는 각각의 .. 2022. 10. 1.