에브리타임 최근에 익명 회원의 글을 차단하면 그 회원이 쓴 글은 익명도 가리지 않고 차단되던데
어떻게 구현했을까?
일단 쉽게 생각해봄직한건(rdb라고 가정)
미리 차단회원 테이블에서 id를 가져와 set에 캐싱해두고
글 목록 호출될때마다 작성자가 해당 id인 경우는 제외하기 인데
더 좋은 방법이 있을까?
어떻게 구현했을까?
일단 쉽게 생각해봄직한건(rdb라고 가정)
미리 차단회원 테이블에서 id를 가져와 set에 캐싱해두고
글 목록 호출될때마다 작성자가 해당 id인 경우는 제외하기 인데
더 좋은 방법이 있을까?
set에 캐싱한다는게 무슨말임? 세션?(나 백엔드초보 응애)
캐시 저장소야 서비스마다 다르겠지 id 정보를 SET에 담는단거였음
글 목록이랑 차단 리스트 같이 쏴서 클라이언트에서 필터링
그러면 클라에서 실제 작성자 id 정보를 알게돼서 서버에서 처리해야함
니가 말한 게 그냥 이걸 서버에서 하는 건데? 아무 최적화도 안됨
최적화가 문제가 아니라 json에 id를 클라한테 쏴주면 안된단건데 먼소리하노
106 말이 맞긴 한거같은데 익명 취지에도 안맞는 애미 뒤진 기능을 왜 만들었을까
나도 굳?이 왜 만들었는지는 이해안감ㅋㅋㅋ 물론 끽해야 이 글이랑 이 글 같은애가 썼구나 정도이긴한데 차단 남발하면 해제도 안되고 글리젠도 엄청 줄어서 안하는게 낫다더라
다만 기획자보단 개발자의 관점에서 그냥 어떻게 구현했을까를 고민해보고싶었음ㅎㅎ 의견 ㄱㅅㄱㅅ
그리고 클라에서 하든 서버에서 하든 본문대로면 차단 한번 해서 결과만 보고 누가 쓴 글인지 다 알 수 있는데 뭔 상관임?
실제 글쓴이 id 목록 통째로 클라한테 갖다주는거랑 익명으로 된 글들을 필터링해서 주는거랑 같다고 생각하냐 ㅋ
차단 목록같은 개인화 데이터는 캐시 효율이 극도로 낮아서 별로고 매번 깡으로 db에서 조회해야함 고민 포인트는 페이지네이션일듯 차단된 글 제외하면 페이지네이션 어떻게 할지?
정량대로 가져와서 필터링은 WAS에서 하는게 나아보임 20개 가져와서 10개 거르고 쏴주는건 10개 보내주는거지. 굳이 20개 다 채워서 보내야된다면 DB에서 작성자 ID를 대조해야할텐데 게시판+작성자id 조합으로 인덱싱이 되어있다면 모를까(하지만 굳이?) 그게 아니라면 DB 자원을 너무 많이 갉아먹을것 같음. 물론 ELS 띄우거나 하면 얘기가 달라지겠지
근데 내 경험상 에타는 어차피 게시판 이용권한 같은 개인화 데이터도 세션이든 어디든 캐싱하는 것 같던데
개인화 데이터 캐싱은 히트율이 낮다는게 무슨 의미인지 모르는건가 ㄷㄷ 비용은 비용대로 들고 효과는 좃도 없다는 의미야 그리고 10개 거르고 10개만 보내면, 20개 걸러서 0개만 보낼수도 있다는 이야기야 완벽한 해결책은 없긴 하고 정책적으로 해결해야하는데, 정책 정하기가 좀 골아프지
권한 데이터는 한 트랜잭션에 한해서 캐시할순 있겠지만 그 이상의 컨텍스트에서 캐시하는건 무리야
흠..권한조회 같은 경우는 매 페이지 호출마다 쓰일테니 캐싱해봄직할거 같았음. 무리라면 어쩔 수 없지. 진짜 어떻게 최적화해서 구현했는지 궁금하네
단순한 구조의 권한이라면 위조방지 토큰을 내려주는 방법도 있지
걍 제일 간단한거 있잖어 ㅋㅋ 사실은 익명 정보로 주는게 아닌데, 그냥 해당 게시판에서 표기만 익명으로 하는거지.. 롤이 이런 방식
클라에서 렌더링만 익명으로 한단거지?