2021-03-05(Fri)

항목

내용

학습 날짜

2021-03-05(금)

학습 시간

11:00~24:00

학습 범위 및 주제

ActionCable

학습 목표

Tournament play 모듈을 완성한다.

동료 학습 방법

스크럼 후 eunhkim님과 페어프로그래밍함

상세 학습 내용

문제) 관전시 관전하러 들어온 유저에게 보이는 공의 위치와 플레이어가 보고 있는 공의 위치가 다르다.

서버의 부하를 막기 위해 공의 궤적은 클라이언트 사이드에서 계산하고, 패들에 부딛칠 때만 서버 사이드에 고으이 위치를 업데이트하고 있었다.

문제는 서버에 공의 위치 정보가 저장되어 있지 않다보니, 다른 유저가 관전하러 들어올 때는 공의 위치를 알 수 있는 방법이 없다는 것이다. 때문에 공이 패들에 부딛쳐서 위치가 업데이트될 때까지 관전자에게 렌더링되는 공의 위치와 플레이어에게 렌더링되는 공의 위치가 달랐다는 것이다.

해결) 관전자가 들어올 때 플레이어 사이드에서 공의 위치를 브로드캐스트하도록 하자

길드 삭제시 의존성 걸려있는 것이 너무 많아서, hard delete하면 끔찍한 일이 생길 것 같다. 특히 war histroy, war request, gulid invititation 같은 것들은 어떻게 깨질 것인가..ㄷㄷ

guild owner인 유저를 삭제하는 경우엔, '삭제된 유저'라는 이름의 유저를 만든다음 해당 유저를 guild owner로 만들어버리는 작업을 해버리자.

학습 내용에 대한 개인적인 총평

Admin 페이지에서 자원을 삭제처리할 때 hard_delete하면 된다고 생각했던 많은 부분들이 의존성에 말미암아 soft_delete해야함을 알게되었다. 이래서들 hard_delete 대신 soft_delete하나보다. 물론 애초부터 데이터 분석이라도 할라치면 물론 soft_delete되어있어야하는 부분이긴 하지만, 자원의 의존성에 대해 생각해볼 수 있었다.

다음 학습 계획

  • Admin 페이지

Last updated