포도가게의 개발일지

heartalk 개발 본문

프로젝트

heartalk 개발

grape.store 2021. 11. 19. 21:59
반응형

1. 매칭 시스템 고민

  • 어떻게 본인의 방이 생성 됬는지 알까?{
    1: http를 통해 일정 간격마다 확인하여 서버에서 방이 생성되었는지 리스폰 해준다 ? 많은 트래픽이 일정간격마다 들어올텐데 처리에 대한 비용?,
    2: push server를 두어 방이 생성 되었는지 알림을 해준다 ? 마이크로서비스에서는 각 기능마다 서버를 나눈다는데 우리도 여러 서버를 현재 두어야 하나? ,
    3: 방마다 하나의소켓을 만들어 인원이 준비된 방에 들어와있는 socket들에 data를 emit 해준다. ? 소켓이 많이 생기는데 드는 비용?,
    4: 처음 들어온 request의 리스폰을 방이 잡힐때 줄 수 있는가? 실제 많은 매칭들은 회사 정책에 따라 다른가?}

 

2. 게임 진행 싱크 고민

  • 각 유저마다 성능이나 다른 이유로 조금씩 싱크가 틀어질텐데 이걸 어떻게 동시에 진행시키지?{
    1: 시나리오를 통째로 주어 각 클라이언트마다 흘러가게 할려했는데 ? 그럼 싱크가 점점 깨지게 될거같다...,
    2: 그럼 시나리오를 쪼개서 진행시켜야 조금씩은 차이가 나더라도 보정을 할 수 있을 것 같다,
    ? 시나리오를 쪼개서 진행했을때 어떻게 현재 게임 진행 사항을 업데이트 해주지?
    1) 일정 시간마다 각 게임방에 시간을 체크하여 일정시간이 지나면 다음 게임을 진행 시킨다 그럼 모든방에 시간체크를 해야되자나? 방이 엄청 많아지면?? 이걸 초마다 해주면? 생기는 비용은?
    2) 각 게임이 시작되는 시간을 알려주어 클라이언트가 계산하게 한다 음 뭔가 잘 모르겠다 코드화가
    3) 팀의 아이디어 각 게임이 동시에 끝나지 않더라도 스타트는 동시에 하게 만들면서 보정 클라이언트가 본인의 게임이 끝나면 서버로 알려준다 괜찮은 것 같음}

 

3. 채팅방 목록 구현 고민

  • 각 채팅방 내용은 어디 저장되지? 보통 실제 카카오톡같은 어플에서 핸드폰을 바꿀경우 data가 옮기지않으면 다 날라감 -> 핸드폰에 저장되어있나보다? 검색하니까 안드로이드 db에 저장되어있다.
  • 그럼 채팅내용이 공유 되지않는데 최근에 있는 기능인 채팅삭제는 어떻게 되는거지? -> 일정시간동안 서버 db에 저장 후 시간이 지나면 사라져서 채팅내용을 못지우게 된다

4. 유저가 접속을 종료하면 남은 유저나 게임을 어떻게 진행할까?

'프로젝트' 카테고리의 다른 글

[Node] Chat Server 부하줄이기(분산처리)[1]  (2) 2022.02.07
[Node] Chat Server 부하줄이기(분산처리)[2]  (0) 2022.02.02
Node js profiling  (0) 2021.12.07
heartalk stress test  (0) 2021.12.04
NestJS 초기 명령어(CLI) & 기초  (0) 2021.11.06
Comments