-
Ducktopia - <21> TOP NEW
추가 작업 현재 기획상에서 허니 머스타드라는 아이템이 중앙 코어에서 생성할 수 있고, 이를 무기에 발라야 보스에 데미지가 들어가는 것이 있다! 서버에서 보스 데미지 계산과 허니 머스타드 조합 기능을 기존에 있던 코드들을 개량해서 추가할 예정이다! 기존의 무기 조합 핸들러를 응용 // 만약 조합아이템 중 하나가 머스타드이면 if ( config.game.item.mustardItemCode === itemCode1 || config.game.item.mustardItemCode === itemCode2 ) { // '1xx' = ... Read More
-
Ducktopia - < Project interview > TOP NEW
모의 면접 오늘은 프로젝트 진행과 지금까지 배웠던 사항들에 대해 모의로 면접을 보는 날이였다! 주요 질문 TCP/IP 통신 시 일어나는 과정을 구체적으로 설명해주세요(= 현 프로젝트가 TCP 통신 서버임 ) 서버가 느리다 라는 말을 들었을 때 어떻게 해결할 건가요?(= 게임 서버의 기본적인 트러블슈팅) 분산 서버의 이점과 주의사항을 설명해주세요. (= 현재 프로젝트에 분산 서버를 사용한 이유) Node.js 를 이용해 게임서버를 만들면 어떠한 장점과 단점이 있나요? (= 서버로 Node.js를 사용한 이유) 추가 조사 주요 질문들에... Read More
-
Ducktopia - <20> TOP NEW
추가 작업 파괴 가능한 오브젝트의 설치 및 종류들을 만드는 작업을 맡게되었다. 설치 기본적으로 파괴 가능한 오브젝트를 벽 이라고 정해두어 기존에 있는 base를 상속받아 생성해준다 import DestructibleObjectBase from '../base/destructibleObjectBase.class.js'; import { getGameAssets } from '../../init/assets.js'; class Wall extends DestructibleObjectBase { const { objectDropTable }= getGameAssets() constr... Read More
-
이론 정리 - < OOP, TDD, CI/CD, MVC > TOP NEW
좋은 코드 코드의 효율성으로만 따지자면 컴퓨터가 최소한의 처리를 할 수 있는 컴퓨터 친화적으로 최적화된 코드가 좋다고 생각이되지만.. 코드의 활용성/범용성을 생각해보면 이 코드를 언제 누구든 수정할 수 있게 만드는 가독성도 중요하다고 생각이 된다 요약하자면 코드가 완성형이라는 가정이라면 최적화된 코드가 최고지만, 현실은 언제나 그럴 수 없기에 업무효율성을 생각한 가독성/유지보수성이 좋은 코드가 베스트라고 생각한다! 이러한 가독성/유지보수성을 올리기 위해선 프로젝트의 전체 흐름을 파악해 범용성을 늘리고, 함수나 변수명이 직관적으로 이해될 수 있을 정도의 이름으로 정해주고, 주석을 간결화해서 전체적 흐름을 한 눈... Read More
-
Ducktopia - <19> TOP NEW
피드백 수용 Gateway - Other Server 최적화 현재 Gateway에선 Payload를 디코딩하여 객체로 생성하는데, 이 생성된 객체는 Heap 영역에 저장되어 Garbage 컬렉션에 의해 사라지기 전까지 메모리를 사용하게된다.. 그렇기에 불필요한 메모리 사용을 줄이기 위해 Gateway에서 무조건적으로 Payload를 디코딩하지 않고, Payload 정보가 필요한 핸들러에서만 직접 디코딩하도록 수정하여 기본 Packet 전달 시의 Heap 영역 사용을 최소화 하였다! // 핸들러에 직접 payloadBuffer를 주도록 변경 const packet = so... Read More
-
이론 정리 - < TCP/UDP, OSI 7계층, HTTP > 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
-
이론 정리 - < 프로세스, 스레드, 데드락 > TOP NEW