목록항해 99 & 회고 (5)
한 걸음씩 기록하며
실전프로젝트가 게임 서비스 였기에, 서비스 특성상 예상치 못한 버그 및 에러가 속출하였다. 이에 대한 트러블 슛팅을 적어보고자 한다. 1. 문제 상황 게임 서비스를 구현하며 가장 힘들었던 것이 바로 버그 및 에러를 잡아나가는 것이었다. (왜 내가 했던 게임들이 틈만 나면 업데이트를 한다는 건지 이제 알겠다..) 게임을 개발해나가는 과정에서도 숱한 에러들로 밤을 지새웠는데, 유저 테스트를 위해 베타 서비스를 열자 버그와 에러가 이곳 저곳에서 나오기 시작했다. 사실 버그와 에러가 나오는 것보다 더 문제인 것은, 버그와 에러 상황을 재현하는데 있었다. 버그 및 에러를 잡기 위해서는 발생했던 상황을 재현하면서 잡아야하는데, 팀원들과 서버 로그를 계속해서 모니터링 하는 것도 물리적으로 불가능하고, 실제로 그렇게 ..
실전 프로젝트에서 겪은 트러블 슛팅을 소소하게 적어봅니다 1. 문제 게임 서비스 특성상 예상치 못한 에러나 버그가 많이 발생하여, 이를 보완 수정해야하는 경우가 잦음 그러나 서비스 운영 도중에는, 서비스를 이용 중인 유저로 인해 최신화된 내용을 즉시 배포하기가 어려워 유저가 없는 시간대를 기다렸다가 배포하는 비효율이 발생함 2. 해결 과정 1) 서비스 특성에 맞추어 예약 자동 배포로 결정 스케일 아웃을 하여 무중단 배포를 하는 것도 고려했으나, 정확하게 서버마다 같은 방에서 게임을 하는 사람들을 배분하는 것이 불가능하고, 포인트와 승패가 민감한 게임이라 무중단 배포가 현재 서비스에 맞지 않는 배포 방식이라 판단함 평균적으로 새벽 4시 경에는 유저가 없다는 것을 파악하여, 해당 시간대에 예약 자동 배포하여..
실전 프로젝트를 진행하며 겪었던 트러블 슛팅에 대해서 간단히 기록하려고 한다. 1. 문제 & 원인 1) 문제 발생 유저 테스트 기간 중, 약 15명의 유저가 서비스를 이용하다가 DB가 정상적으로 작동하지 않는 문제 발생 여러 유저가 계속해서 훈수 무한 채팅을 시도한 상황을 파악 훈수 채팅은 위의 시연 영상에서, 채팅을 치면 구름이 지나가는 채팅을 뜻합니다. *훈수 채팅 로직 유저가 socket으로 채팅 내용을 서버에 전달 => 서버에서 해당 ID의 훈수 채팅 cnt를 +1로 업데이트 => socket으로 해당 방의 모든 유저에게 채팅 내용을 전달 => 전달받은 채팅 내용을 화면의 효과 처리함 2) 원인 파악 유저 테스트 기간 중 훈수 채팅 서비스는 무한 채팅이 가능한 상황이었고, 여러 유저의 동시적인 무..
실전프로젝트에서 구현한 오목 게임 로직을 소개합니다 :) 오목 게임 로직은 크게 7가지 입니다. 1) 캔버스로 구현된 오목판에서 유저가 클릭한 위치 값을 x, y 좌표로 데이터 받기 (FE) 2) x, y 좌표를 통해서 승패 판단하기 (FE) 3) 순서 파악하고, x,y 좌표 값을 배열로 변환하기 (BE) 4) 3*3, 4*4 체크하기 (BE) 5) 금수가 아니라면 DB에 있는 배열의 값을 해당 color 값으로 변경하기 (BE) 6) 클라이언트에게 DB에 최신화된 배열 값을 전달하기 (BE) 7) 클라이언트 창에 방금 둔 돌이 반영된 view 제공 (FE) 본 글에서는 위의 로직을 최대한 이해하게 쉽게 설명해보겠습니다. (이해를 위해 쓰다보니 로직 순서와 약간 다를 수 있습니다) 아 그리고 1)~7)까..
1. IP 인터넷을 통하여 컴퓨터(호스트)가 서로 통신 하기 위해서 먼저 필요한 것이 무엇일까? 바로 인터넷 주소(IP Address)이다. 인터넷 주소는 IPv4(32비트)로 구성되어있다. (ex. 216.58.200.14) 2. DNS 이전 시절 : DNS는 왜 만들어졌을까? 1) IP 과거 다른 컴퓨터와 통신하기 위해서는 ip 주소를 외우거나 별도로 기록해두었다가, ip 주소를 기입하여 접속해야했다. 이 방법은 ip가 많지 않은 초기에는 가능하였지만, ip주소가 많아짐에 따라 사람이 기억하거나 알아보기 어려운 12자리의 숫자의 ip 주소는 굉장한 불편을 초래하였다. 2) Domain과 Hosts 이에 사람이 기억하기 쉽게 ip에 이름을 부여하는 Domain이 등장한다. 가령 위에서 언급한 216...