log 2021-07-13
kakaopay 2021 코테 응시
pseudo
유저 정보 변경 기능 및 프로필 정보 확인
현재 프로필 페이지에서 확인 가능한 정보:
- 한 줄 소개 (편집)
- 지역 (편집)
- 메일 주소 (편집)
- 요약 탭
- 현재 랭크
- 최대 랭크
- 전체 활성 유저수(of xxx)
- 팔로우 대상 (스터디?)
- 타이틀
- 한줄설명
- 팔로워 수
- 활동 다이어그램 (Post,Vote,Comment,Study Group,Answer,Question)
- 활동 캘린더 (일자별 활동수)
- 포스트 탭
- 포스트 목록 & 페이지네이션
- 포스트:
- 포스트 목록 & 페이지네이션
- Q\&A 탭
- Rank 탭
- Bookmarks 탭
각 유저의 랭크는 포인트에 기반할 것이며, 실시간으로 업데이트될 필요는 없다. 통계 컬렉션을 따로 두어 주기적으로 계산되도록 하는게 좋을 듯하다.
공식 문서에 따르면, 두 가지 방법이 있다.
두 스키마를 레퍼런스로 연결하거나, 한 스키마가 다른 스키마를 포함하도록 저장하는 방법이 있다고 한다. 가능하면 후자가 성능(읽기 등)에 좋다는 듯하다. 그렇다면, 정보를 따로 가지는 스키마와, 표시용으로 모든 정보를 가지는 문서를 따로 두어서, 스키마마다 다른 주기로 (실시간/주기) 표시 문서에 업데이트시키도록 하는 게 어떨까.
https://edykim.com/ko/post/summary-of-six-rules-for-designing-a-mongodb-schema/
핵심, join 비용 vs 업데이트 비용의 비교인 듯하다. 읽기가 많다면 join비용이 높을 것이고, 쓰기가 많다면 업데이트 비용이 높을 것이다.
지금은 일단 표시용 데이터가 필요하므로, 프로필쪽에서 한 스키마에 전부 포함하는 쪽으로 하려 한다.
Comments