항해99/개발일지

20220323 개발일지 #데이터 수정 끝!

paran21 2022. 3. 24. 22:42

데이터 부분은 수정이 끝났다!

생각보다 수정해야 하는 부분이 많았는데, 다행히 오래걸리지는 않았다.

 

게임 종료 후에 User와 Clue는 삭제하기로 하고, Room과 Quiz만 남기기로 했다.

그리고 Room에는 State와 Pass라는 값을 주어서, 게임이 종료되거나 게임 종료 api가 오기 전에 disconnect로 방이 사라지면 State를 CLOSE로 바꾸어서 비활성화된 정보라는 것을 표시해주고, 메인페이지에서 방을 조회할 때도 데이터가 내려가지 않도록 하였다.

그리고 나중에 S3로 데이터를 옮길 때, CLOSE된 Room과 해당 RoomId를 가지고 있는 Quiz 정보들이 그 대상이 될 것이다.

처음에는 Quiz에도 State를 만들고 게임 종료 시 업데이트를 해주려고 했는데, Room만 state를 바꿔도 해당 roomId로 찾을 수 있을 것 같아서 Quiz에서 State는 제외했다.

 

Room과 Quiz 모두 Pass라는 칼럼을 새로 만들어서 통과여부를 알 수 있게 하였다.

Room의 경우 시간 초과가 되면 게임을 통과하지 못한 것으로 기록이 되도록 하였고, 기본값을 null로 만들어서 게임 종료 이전에 방을 나간 경우(브라우저 종료) disconnect시에는 pass가 null로 남아있게 해서 구분할 수 있게 만들었다.

그리고 Quiz는 해당 문제를 풀면 pass를 SUCCESS로 바꿔서 다른 사람이 문제를 풀지 못하게 하였고, 게임을 통과하지 못했을 때 몇 문제를 풀었는지 확인할 수 있게 하였다.

 

솔직히 node쪽 disconnect되는 문제를 처음에 생각하지 않고 진행해서 걱정이 많았는데, 생각보다 금방 해결방법을 찾을 수 있었다.

 

중간발표 이후에 github에서 commit convention과 이슈를 사용하고 있다.

그런데 nodeJS 코드를 브랜치로 넣어놓으니 이렇게 관리하기가 어려워서, 아에 별도로 레포지터리를 만들기로 했다.

그리고 마침 다른 팀원분이 github actions하는 중에 setting을 변경하기 위한 권한이 필요해서 organization을 새로 만들었다.

그러면서 repository가 각각 여기에 들어가게 변경했는데 새로 만든 nodeJS 레포지터리에도 여기에 같이 포함시켰다.

백엔드 repository가 분리되면 접근하기 어려울까봐 걱정했는데 이렇게 관리를 하면 훨씬 깔끔한 것 같다.