[9팀 신홍준] Chapter 4-1 성능 최적화 #3
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
과제 체크포인트
배포 링크
기본과제 (Vanilla SSR & SSG)
Express SSR 서버
<!--app-html-->,<!--app-head-->)서버 사이드 렌더링
클라이언트 Hydration
window.__INITIAL_DATA__스크립트 주입Static Site Generation
심화과제 (React SSR & SSG)
React SSR
renderToString서버 렌더링React Hydration
Static Site Generation
구현 과정 돌아보기
이번 과제는 SSR에 대한 개념이 약해서 혼자 진행하긴 너무 어려웠다.
다른 분들의 코드를 참고하려 했지만 사실상 가져다 쓰고만 있었기에 과제 통과를 받기엔 스스로 양심이 찔렸다.
대신 코드를 분석하고 글로 정리하며 이번 기회에 SSR에 대한 개념을 확실히 잡기로 했다.
SSR이란?
html 변환
Hydration
index.html에서main.js를 읽는 것은 Hydration이 아니다.이번 과제에선 아래처럼
window.__INITIAL_DATA__에 초기 데이터를 넣어주고 페이지를 그린 후 (마운트 후) 해당 데이터를 통해 store를 초기화한다.SSG
Vite 미들웨어 사용 이유
가장 어려웠던 부분과 해결 과정
구현하면서 새롭게 알게 된 개념
성능 최적화 관점에서의 인사이트
학습 갈무리
Q1. 현재 구현한 SSR/SSG 아키텍처에서 확장성을 고려할 때 어떤 부분을 개선하시겠습니까?
Q2. Express 서버 대신 다른 런타임(Cloudflare Workers, Vercel Edge Functions 등)을 사용한다면 어떤 점을 수정해야 할까요?
Q3. 현재 구현에서 성능 병목이 될 수 있는 지점은 어디이고, 어떻게 개선하시겠습니까?
Q4. 1000개 이상의 상품 페이지를 SSG로 생성할 때 고려해야 할 사항은 무엇입니까?
Q5. Hydration 과정에서 사용자가 느낄 수 있는 UX 이슈는 무엇이고, 어떻게 개선할 수 있을까요?
Q6. 이번 과제에서 학습한 내용을 실제 프로덕션 환경에 적용할 때 추가로 고려해야 할 사항은?
Q7. Next.js 같은 프레임워크 대신 직접 구현한 SSR/SSG의 장단점은 무엇인가요?
Q8. Next.js 를 이용하여 SSG 방식으로 배포하려면 어떻게 해야 좋을까요?
코드 품질 향상
자랑하고 싶은 구현
개선하고 싶은 부분
리팩토링 계획
학습 연계
다음 학습 목표
실무 적용 계획
리뷰 받고 싶은 내용
과제 시작 전에도 SSR에 대한 대강의 흐름은 알고 있었으며, 위에 작성한 개념 정리처럼 코드도 모두 이해는 갑니다.
하지만 작성된 코드를 이해할 순 있어도 vite 미들웨어나 각 페이지의 onMount 처리 등 직접 작성하라고 하면 자신이 없는 부분들이 많습니다.
PR의 학습 갈무리에 있는 내용 또한 스스로 답변을 떠올려 보려고 해도 예시에 있는 주제는 생각조차 닿지 않습니다.
어쩌면 이번 주차는 저에게 아직 학습조차 힘든 레벨인가 싶은 생각까지 드는데요,
미시적으론 어떻게 SSR에 대해 공부를 하면 좋을까 라고 여쭙고 싶지만,
한편으론 지금처럼 공부해야 할 하나의 덩어리가 있을 때 이 덩어리가 가늠조차 되지 않는다면 어떻게 헤쳐나갈 수 있을지 여쭤보고 싶습니다.