-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[engine] 성능 최적화를 위한 view와의 메시징 방안 (무한 스크롤 X git log 분할 처리) #618
Comments
초안 코드 작성의 범위
|
view와의 기능 협의 초기 로딩 시, 사유
개발 방안
|
캬... 명령어까지!!!!!! 친절 그 자체네요 👍👍👍👍👍
요건 좀 오해할 수 있는데,
요건, view팀하고 얘기하시면서 같이 분석해보시면 좋을 것 같아요.
진행할 내용들 엄청 잘 쪼개주셨네요. |
view 성능 최적화 팀에서도 무한스크롤이 필요하다는 이야기를 했습니다. |
현재는 message를 받는 순간 |
@Sang-minKIM 좋습니다!! 조만간 자리 한번 해요😄 한가지 첨언드리자면,
위에서 제가 말씀드린 버튼 방식은 아직은 기술 검토 단계로서 스크롤 방식을 구현할 수 없기에, 임시 트리거뿐임을 말씀드립니다~! 추후 함께 더 논의하면서 정확한 구현 방식을 나눠보면 좋겠네요ㅎㅎ |
현상
현재 저희 프로젝트 대부분의 로딩은
git log
CLI 명령어가 차지합니다.임의의 프로젝트 내에서, vscode 터미널을 열고 아래 명령어를 입력해 보시면, githru의 로딩 속도와 유사함을 체감할 수 있습니다.
명령어 args 간략 설명
명령어 입력 영상
2024-08-07.9.24.17.mov
githru 초기 로딩 영상
2024-08-07.9.25.00.mov
위 명령어는
packages/vscode/src/utils/git.util.ts
파일에 정의된getGitLog
유틸 함수에서 사용되는 코드인데요.보시다시피 매우 긴 문자열을 페이징 처리하지 않아서, 시간이 오래 걸립니다.
즉, githru의 첫 실행부터 "모든" 데이터를 한번에 생성하는 것이 로딩(성능저하)의 큰 부분을 차지한다고 볼 수 있습니다.
해결 아이디어
저희 엔진팀 성능 최적화 모듈에서는 githru 실사용자의 입장에서 생각해봤을 때, 처음부터 모든 데이터를 보는 것은 설득력이 다소 아쉽다고 생각했습니다.
그래서 초기 실행 시에는 뷰포트 내에서 빠르게 처리 가능한 정도의 양만 제공한 후, 후속 요청에 한해 일정량을 제공하는 무한 스크롤(또는 페이지네이션) 방식이 더 자연스러운 경험이라고 생각하였습니다.(git graph를 비롯한 많은 서비스가 활용하고 있습니다)
그렇다면 view와 engine 사이에 postMessage API 통신이 필요하다는 것이며,
이어서 예상되는 개발 내용 또한 다음과 같습니다.
특히 @seungineer 님, @Sang-minKIM 님께서 view 성능 최적화를 도와주고 계시니 멘션 드립니다!
확인해보시고, 피드백 또는 의견 편하게 부탁드립니다🙇♂️
다른 분들께서도 관련하여 의견 있으시다면, 모두 편하게 주셔도 좋을 것 같습니다!
우선 초안 코드 러프하게 작성하여 PR 오픈해보겠습니다!
The text was updated successfully, but these errors were encountered: