Skip to content
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

서버에 부담을 줄일 필요가 있어 보입니다. #77

Open
minho4yang opened this issue May 30, 2019 · 1 comment
Open

서버에 부담을 줄일 필요가 있어 보입니다. #77

minho4yang opened this issue May 30, 2019 · 1 comment

Comments

@minho4yang
Copy link

  1. 아래 GraphQL 쿼리들은 내용이 빈번하게 바뀌지 않습니다.
    json파일로 저장하여 nginx에서 static serve되게 하거나, CDN을 태우는게 어떨까요? (/static/locale/ko/constant.json 처럼요.)
  • operationName: "getSchedule"
  • operationName: "getSponsorLevels"
  1. getSponsorLevels이 필요한 부분은 메인 페이지나 티켓팅 페이지가 아니라, 후원사 안내 (/sponsor/prospectus) 페이지 입니다.
    우리가 보고 있지 않은 (필요하지 않은) 뷰를 먼저 로딩해서, GraphQL콜을 한번에 날려 서버의 부담을 가중시키는것 같은데, lazy-loading하게 할 수 있지 않을까요?
    (코드를 한번 더 찾아보고 추가댓글 달겠습니다.)

  2. (추측80%) nuxt.js에서 route를 처리하는데 permission을 관리하네요.
    그래서 GraphQL로 operationName: "getMe"를 부르는것 같은데,
    로그인시 이미 받은 JWT를 사용해서 처리할 수 있을 것 같습니다.
    JWT의 payload부분에 현재 "username": "prod_github_39264736"만 포함되어 있는데, 여기에 permission도 추가해서 관리하면, 프로필 페이지 접근 말고는 operationName: "getMe"를 호출할 필요가 없지 않을까? 추측합니다.
    (코드를 한번 더 찾아보고 추가댓글 달겠습니다.)

  3. (번외) analytics가 붙어있지 않아 보이는데, 실제 접속한 사용자 수와 서버가 처리한 사용자 수의 간극을 (얼마나 scaling해야할지를) 파악하지 못하셨을 것 같습니다. 붙여보는걸 추천합니다. (staging에서 하는 얼리버드 티켓팅 테스트도 재미있을것같구요.)

@amazingguni
Copy link
Member

제안해주신 내용을 참고해 서버 부담을 줄이는 작업을 진행 중입니다 😢
소중한 제안 감사드립니다!

@amazingguni amazingguni pinned this issue May 31, 2019
@kucuny kucuny unpinned this issue Jun 3, 2019
@kucuny kucuny pinned this issue Jun 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants