@kodingwarriorJaeyeol Lee
@gaeulbyul가을별
@arkjunJuntai Park 원인 찾아서 고쳤습니다. 조금 복잡한 버그였는데요…
- 일단 Markdown 렌더링 결과를 캐시를 안 하고 있었습니다.
- 근데 Markdown 렌더링 그게 뭐 별거라고 그렇게 느리냐 싶은데, 멘션된 사용자의 정보를 얻어오는 과정이 있어서 네트워크 I/O가 발생할 수 있고요. 연합우주니까 Hackers' Pub에서 아직 캐시한 적 없는 원격 사용자를 멘션하면 네트워크 요청이 이뤄질 수 있는 거죠.
- 문제는, 처음 한 번은 멘션된 사용자 정보가 없어서 받아온다 쳐도, 왜 매번 네트워크 요청이 일어나고 있었냐는 건데… 글 안에 (그… 중간에 Mastodon 위젯 같은 거 임베드하려다 깨진 부분에서) “어쩌다” 멘션된 @kodingwarrior@silicon.moe 때문에 그랬습니다.
- 사실 @kodingwarrior@silicon.moe 계정은
@kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior)
계정과 같은 계정인데요. (액터 ID가 동일.) Mastodon에 페디버스 핸들에 쓰일 호스트명과 웹에 쓰일 호스트명을 다르게 설정하는 기능이 있습니다. 다름 아닌 social.silicon.moe 인스턴스가 이를 이용해서 페디버스 핸들에서는 앞에
social.
을 뗀silicon.moe
를 쓰도록 설정해두고 있기 때문에 두 핸들은 사실 같은 것입니다. - 그런데 Hackers' Pub에서는 기존에 캐시된 계정이
@kodingwarrior@social.silicon.moe
로 저장되어 있어서@kodingwarrior@silicon.moe
로 검색하면 캐시 히트가 안 되는 것입니다. 그래서 캐시가 영원히 안 되는 효과가 있던 거죠.
일단 수정은 Markdown 렌더링 결과를 캐시하도록 맨 바깥에서 처리했고요. 다만, 핸들에 쓰이는 호스트명이 웹에 쓰이는 호스트명과 다른 케이스에 캐시가 안 되는 문제는 근본적으로 고쳐두긴 하려고 합니다.