Open
Conversation
git 문제 해결
- 초기 렌더링 및 라우팅 - 검색 및 상품/카테고리 mock 데이터 처리 - 동적 메타태그 생성 - 서버 상태 초기화 및 Hydration 지원
- 프로덕션 환경에서 HTML 템플릿 직접 사용 - 홈페이지 및 상품 상세 페이지에 대한 라우팅 로직 구현 - 404 페이지 처리 로직 추가
- Vite 서버를 사용하여 정적 사이트 생성 로직 개선 - 상품 상세 페이지 및 404 페이지에 대한 동적 HTML 생성 추가 - 라우팅 로직 및 에러 처리 개선 - 모듈 경로 수정으로 코드 정리
- 상품 데이터 가져오기 방식 변경 및 코드 정리 - 404 페이지 처리 로직 개선 - HTML 템플릿 경로 수정 및 동적 HTML 생성 로직 강화
- HomePage 컴포넌트에 검색 쿼리 및 필터를 props로 전달하여 동적 렌더링 지원 - SearchBar 컴포넌트에 필터링 옵션 추가 및 기본값 설정
- pnpm-lock.yaml 파일에서 의존성 버전 및 형식 통일 - react 및 vanilla 패키지의 package.json에서 스크립트 및 의존성 추가/수정 - cross-env 및 tsx 추가로 환경 설정 및 빌드 프로세스 개선
- React SSR 및 Hydration 관련 체크리스트 및 구현 가이드 문서화 - 동적 라우트 SSG 및 서버 데이터 로딩 방법 설명 추가 - Universal Router 및 클라이언트 상태 복원 방법 안내
- Router.ts 파일을 MemoryRouter와 BaseRouter로 분리하여 구조화 - createStorage.ts에서 SSR 안전한 스토리지 기본값 추가 - useRouter, useStorage, useStore 훅에서 서버 스냅샷 지원 추가 - tsconfig.json 파일에서 형식 통일 및 정리 - pnpm-lock.yaml 및 package.json에서 의존성 버전 업데이트
- URL 패턴에 따라 데이터 로드 방식 변경 - 검색 쿼리 및 카테고리 필터링 기능 추가 - 정렬 및 개수 제한 기능 구현 - 상품 상세 페이지 로딩 로직 개선
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
과제 체크포인트
배포 링크
기본 과제 링크 : https://taeyeong0814.github.io/front_6th_chapter4-1/vanilla/
심화 과제 링크 : https://taeyeong0814.github.io/front_6th_chapter4-1/react/
기본과제 (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
구현 과정 돌아보기
가장 어려웠던 부분과 해결 과정
AS-IS (문제 상황)
TO-BE (해결 후)
구현하면서 새롭게 알게 된 개념
CSR과 SSR에 대한 차이와 개념을 더 정확하고 깊게 이해하여 적을 수 있으면 더 좋았겠다 생각했지만 아직 정확한 정보를 적기엔 부족함이 있다고 속으로 생각하여 SSR과 SSG의 차이점을 간단하게 적어 보았습니다.
AS-IS (이론적 지식)
TO-BE (실제 구현 경험)
성능 최적화 관점에서의 인사이트
학습 갈무리
해당 질문들에 대한 내용은 어려움이 있어 AI에게 질의를 통해 이해 된 내용을 작성하였습니다.
Q1. 현재 구현한 SSR/SSG 아키텍처에서 확장성을 고려할 때 어떤 부분을 개선하시겠습니까?
Q2. Express 서버 대신 다른 런타임(Cloudflare Workers, Vercel Edge Functions 등)을 사용한다면 어떤 점을 수정해야 할까요?
req,res객체 대신 각 플랫폼의 API를 써야 하니까, 추상화 레이어를 만들어야 할 것 같습니다.Q3. 현재 구현에서 성능 병목이 될 수 있는 지점은 어디이고, 어떻게 개선하시겠습니까?
renderToString이 오래 걸릴 것 같아요. 메모이제이션이나 캐싱을 도입하면 좋을 것 같습니다.Q4. 1000개 이상의 상품 페이지를 SSG로 생성할 때 고려해야 할 사항은 무엇입니까?
Q5. Hydration 과정에서 사용자가 느낄 수 있는 UX 이슈는 무엇이고, 어떻게 개선할 수 있을까요?
Hydration 중에 사용자가 버튼을 클릭해도 반응이 없어서 답답할 것 같습니다.
Q6. 이번 과제에서 학습한 내용을 실제 프로덕션 환경에 적용할 때 추가로 고려해야 할 사항은?
실제 서비스에 적용하려면 훨씬 더 많은 걸 고려해야 할 것 같습니다.
Q7. Next.js 같은 프레임워크 대신 직접 구현한 SSR/SSG의 장단점은 무엇인가요?
직접 구현해보니 Next.js가 얼마나 많은 걸 대신 해주는지 알게 되었습니다.
장점:
단점:
Q8. Next.js 를 이용하여 SSG 방식으로 배포하려면 어떻게 해야 좋을까요?
Next.js로 SSG 배포하면 훨씬 간단할 것 같습니다.
코드 품질 향상
자랑하고 싶은 구현
어떤 부분이 자랑 할 수 있는 코드일까.. 동작을 위한 과제였기 때문에 회고 할 수 있는 부분이 없습니다.
음.. main-server.js 에서 라이브러리 없이 Node 내장 모듈 new URL 사용해서 간단하게 처리한 부분..?
개선하고 싶은 부분
핵심적인 부분에 대한 구현은 파악하고 100% 이해하며 진행한 부분보다는 AI와 항해인원들의 도움을 받아 개선 할 부분을 아직 모르겠습니다. 하지만 에러 처리 부분은 단순하게 보여지는 부분 말고 화면 단위로 깔끔하게 바꿀 수 있을 것 같다는 생각을 했습니다.
리팩토링 계획
준일 코치님의 추가 된 솔루션 코드를 베이스로 라우터와 스토어 부분을 더 나누어서 구조화 시킬 수 있다고 하셨던 부분을 리팩토링 해보고자 합니다.
학습 연계
다음 학습 목표
더 배우고 싶어진 주제라기 보단 CSR, SSR, SSG, TTV, TTI ... 에 개념을 면접 질문식으로 대답 할 수 있고 다른 사람에게 설명 할 수 있는 학습을 해보고자 합니다.
실무 적용 계획
실무에 솔루션 프로젝트와 정부과제 프로젝트는 어떻게 구성이 되어 있으려나...
적용보다는 내가 일하고 있는 프로젝트들은 어떻게 구성이 되어있는지 파악해 보는 것부터 해보겠습니다 ㅎㅎ
리뷰 받고 싶은 내용
테오의 멘토링 때 해당 과제에 대한 내용을 면접화하여 어떻게 내 것으로 만들어야 할 지 깨닫는 시간이 있었습니다.
CSR, SSR, SSG가 어떤 개념인지 설명을 해보세요.
를 시작으로 우리가 React를 쓰는 이유. 왜 쓰는지
SSR를 SEO의 최적화 때문에만 쓰는건지 다른 이유는 없는지 그럼 react 말고 next 쓰지 등....
해당 내용들을 깔끔하게? 작성 할 수 있는 인사이트가 있다면 추천 해주시고
이 부분(해당 과제)에 있어서 코드 단위의 개념으로는 이번 과제가 너무 어려웠다면 한 단계 아래? 혹은 더 기본을 파악 할 수 있도록 직접 실무 해보는 방법은 어떤 방법이 있을까요?