[j스팀] 현재 steem의 '팔로우'의 문제점

in kr-jsteem •  7 years ago  (edited)

steem의 철학과 api에 대한 헌신에는 감사하면서도,
개발자로서 지적할 것은 지적해야 한다고 생각해서
한 가지 의견을 남긴다.

현재 스팀에서 follow나 unfollow를 하려면
custom_json이라는 객체를 사용해야 하는데,

이 객체는 우리가
DB를 참조할 때 기대하는 몇 가지 상식적인 요구를
수용할 수 없다.

custom_json을 이용하면,
팔로우나 언팔로우가 가능하지만,
일단 그 속도가
비상식적으로 느리다.

물론 이런 느림이 봇에 의한
과도한 팔로우 시도를 차단하는 데는
일정한 기여를 한다고 할 수도 있어서
이것까지는 특별히 문제라고 지적할 수는 없다.

하지만 결정적으로
custom_json은 개별 쿼리를 제공하지 않고,
특정인의 팔로워나 팔로잉을 전체적으로만 제공함으로써
(물론 이런 서치 작업도 느리긴 매한가지다)
특정인 A가 특정인 B와 팔로우/팔로잉 관계인지를
알기가 매우 어렵다.

custom_json을 실행하면,
스팀의 블록에 기록되게 되는데,
내부적으로 거래 기록을 뒤져서
팔로우 여부를 판단하는 것이어서
불가피하게 리소스 소모적인
통신이 이뤄지는 것이 아닌가 생각된다.
(물론 내가 지식이 짧아서
아직 뭔가를 모르는 것일 수도 있다)

거의 대부분의 스팀 사이트에서
팔로 관련 기능이 느린 것으로 보아
이런 기능적 지체는
현재 수준에선 극복할 수 없는 것인지도 모른다.

팔로우/팔로잉이 피드 노출에 중요한(아마 거의 유일한)
역할을 하는 것으로 생각해 볼 때,
이런 점은 사용자 경험을 매우 해치는 경우라고
생각하지 않을 수가 없다.

'j스팀'에서는
'찜하기'라는 기능이 있는데
(물론 이 기능은 팔로우와는 별도로 기획된 것이다),
이 기능이 팔로우 관련 불만을 어느 정도 해결할 수
있을 거라 생각한다.

특히 피드 노출에 관련해서는
생각을 많이 하고 있는 중이다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

점점 기대됩니다~

그러고보니 팔로워 카운트가 가장 늦게 렌더링 되는 이유를 생각해보지 않았었군요.
이 부분은 중앙집중화한 구조라면 수월하게 풀어나갈 수 있겠는데, 블록체인 구조에서는 어떻게 풀어나가야할런지...
최소한 lazy evaluation 이 가능한 구조로 개선해야 할 것 같습니다

Nice writing

제가 정확히는 몰라도 steemdb처럼 자체 디비를 구축하여 api를 제공하는 서비스도 있는걸로 알아요.. 그게 그 용도인지는 확실치는 않습니다.. 죄송..