-
멀티플레이 게임 - < 2 > TOP NEW
-
멀티플레이 게임 - < 1 > TOP NEW
NET을 이용한 서버 기존에 웹 서버를 구성하려면 Node.js 위에 express 와 socket.io 등 여러 라이브러리를 사용하여야 했다! 이번엔 Node.js에 기본 포함된 net 을 이용해 서버 통신을 직접 구현하는 프로젝트이다! 서버<>클라이언트 net을 이용해 socket 통신을 구현해준다! // 서버 import net from 'net'; const server = net.createServer((socket)=> { // socket.io 의 emit과 같은 기능! 클라이언트에게 송신 socket.write() ... Read More
-
알고리즘 - < 정렬/재귀 > TOP NEW
알고리즘 퀵 정렬 분할 후 정복(Divide and Conquer) 방식으로 데이터를 나눈 후 정렬하며 정리하는 방식 피벗(Pivot) 이라는 기준점을 정하여 왼쪽과 오른쪽으로 그룹을 나눈다. ( 피벗보다 작은 값을 왼쪽 그룹, 큰 값을 오른쪽 그룹 ) 왼쪽 끝과 오른쪽 끝에서부터 피벗과 비교를 시작하며 중앙으로 향한다 각 끝에서 시작한 윈도우들은 피벗과 비교해 그룹에 맞지 않는 값을 발견하면 멈춘다 두 윈도우가 맞지않는 값을 찾았다면 교환을 실시한다 이러한 과정을 재귀(Recursive)과정을 통해 정렬을 마무리... Read More
-
서버 프로그래밍 - <가용성> TOP NEW
-
웹소켓을 이용한 타워디펜스 - 회고록 TOP NEW
-
알고리즘 - < 탐색/검색 > TOP NEW
-
웹소켓을 이용한 타워디펜스 - <6> TOP NEW
프로젝트 병합 현재 프로젝트에 파일이 많아 병합하는 과정에서 오류가 자주 뜬다 UserInterFace 연결 클라이언트 game.js에서 유저의 점수, 골드를 내부에서 관리하였는데, 이를 사용자에게 보여주기위해 새로운 userInterface.model 을 만들면서 get/set 오류가 있었다 콘솔 로그를 보며 관련 코드들을 함수를 import하여 수정하는 것으로 해결하였다 /* 이전 */ // 점수 바꾸기 if(Object.keys(Monsters.getInstance().getInfo()).length !== 0){ score = Monsters.getIns... Read More
-
서버 프로그래밍 - <DB 최적화+> TOP NEW
샤딩(Sharding) 데이터베이스를 물리적으로 쪼개는 기술 동시 접속자( CCU: Concurrent connected User )를 늘릴 수 있으며 물리적 한계의 안정성을 어느정도 보장해줄 수 있음 ( DB 중 하나가 망가지거나 없어져도 시스템은 작동할 수 있음 ) 데이터를 여러 샤드(쪼개진 DB)에 분산시켜 병렬적 처리가 가능해 성능이 향상됨 관리 샤딩된 DB들을 균등하게 사용할 수 있도록 설계해야하며, 샤드의 수는 가변적일 수 있음 단점 분산 트랜잭션 분산된 데이터 베이스는 분산 트랜잭션을 수행함 ( 이 때 트랜잭션... Read More