<개인>
<함께 진행 한 것>
~~SSR :~~
✨ CSR :
- SEO 적합하지 않음
- 서버 비용 절감 가능
- 특징 : SPA..!
-우리 서비스는 사용자와의 인터랙션이 중요하다!
SEO → 정말 서비스화를 목표로하는 게 아닌 포트폴리오 목적의 프로젝트이므로 더욱이 SEO의 필요성을 잘 모르겠다.
그런 케이스가 Next.js Framework가 생긴 배경이에요. CSR이 분명 좋은데, SSR로써 얻을 수 있는 이득이 분명하기 때문에 (SEO 등) 둘의 장점을 가지고 가고 싶은거죠! 네이버 같은 경우도 블로그에 SSR을 도입했지만 결국 하이브리드 형식으로 알고 있어요! 최초의 웹사이트 같은 경우만 극단적인 SSR이겠죠 답변이 도움 되셨으면 좋겠습니다! 고생하셨어요!
<결론>
사용자와의 인터렉션이 가장 중요하기 때문에 CSR을 선택했다.
SSR을 선택하는 이유는 SEO가 중요한 서비스 일 때선택을 하게 되는데 우리 서비스의 우선순위는 그게 아니다.
서버를 여유롭게 구축 할 수 없는 상황 서버 비용을 최소화 했어야 했음
SSG가 가진 장점을 가져 가기엔 Next.js를 사용 해 본 경험이 없었고, 당장에 배울 수 있는 기간이 없었다. 모르는 기술을 배우는 시간으로 개발 시간을 할애 할 수 없었다고 판단했다.
최종적으로 우리 팀이 가진 리소스를 생각 했을 때 CSR이 적절 하다고 생각을 했다.
⇒멘토님 피드백
괜찮음!
SSR, SSG 가 경쟁하다시피 하고 있음
SSR → 한번도 로딩 되지 않은 상태에서는 확실히 느리지만 2회차부터는 속도가 그렇게 느리지 않다
하지만SSR 과 CSR 속도면에서 의미를 부여하기는 어렵다.
현재는 프론트엔드서버가 있다.
Next.js로 작업 하게 되었을 경우 EC2에 연결을 해 주는 방법으로..!
우리가 npm start를 24시간 작동 할 수 있는 상태가 되는 것임
클라우드 프론트를 이용해서 이용하게 되는 경우 cdn의 역할도 같이 하게 된다.
정적인 파일은 s3로 보내서 받고 동적인 데이터는 ec2로..
여기서 분할이 되기 때문에 속도가 한 단계 빨라진다.
현재 우리들의 서비스는 이미지가 대부분이기 때문에 S3에서 받아주는 것들이 많을 것이다. 정적인 데이터뿐!
하지만 날짜를 처리 하는 방법에서 Next.js다이나믹 라우팅을 사용하게 되면 폴더명을 대괄호로 해서 안에 입력하는 형태로 코드를 작성하게 되고 그 안에 props를 넣어서 작동하는 방식! 때문에 편할 수 있음
Next.js를 이용해서 ssr방식인데 ec2와 s3방식으로 분산처리 방식이 가장 좋을 듯 함.
이유는 이미지의 경우 s3을 활용하여 트래픽을 최소화
글의 경우에는 다이나믹 라우팅을 사용해서 무게를 줄여 주는 것이 좋다. ⇒ 코드 자체에 대한 무게 줄어드는 방법!
백엔드로 자료를 넘기기에 리액트 보다 Next.js가 좀 더 편할 수 있다.
Next.js 그렇게 겁먹지 않아도.. 오케이..!
⇒멘토님 피드백
리액트
테일윈드
가독성이 좋지 않음 → 코드가 안예쁘다…
처음 접할 경우에는 기존에 설정 되어 있는 것들에 익숙해지는 시간이 필요하다
예시) 폰트 색, 크기 등이 지정 되어 있음 하지만 커스텀 가능!
styledComponent
⇒ 재 사용 하고자 하는 스타일은 스타일드 컴포넌트로,
한 번만 사용하는 스타일은 테일윈드로 빠르게 스타일링 하는 방법은..?
<결론>
⇒ 주어진 작업 시간을 고려했을 때 빠르게 컴포넌트를 구현할 필요성을 느꼈고, 이런 점을 봤을 때 별도의 CSS 설정 없이 클래스명으로 바로 컴포넌트를 구현할 수 있는 Tailwind에 대해 매력을 느끼게 되었습니다.
⇒멘토님 피드백
<결론>
→ 나중에 커머스 기능을 추가한다면? 리덕스를 고민해볼 것
허나, 지금은 회원관리 정도뿐이라 비교적 번거롭지 않은 리코일을 더 선호
⇒멘토님 피드백
서버 데이터 캐싱
데이터 패칭 시 로딩, 에러 처리를 한 곳에서 처리 가능
prefetching, retry 등 다양한 옵션
쉬운 상태 관리
React Query의 라이프 사이클
fetching - 데이터 요청 상태
fresh - 데이터가 프레시한(만료되지 않은) 상태.
stale - 데이터가 만료된 상태.
inactive - 사용하지 않는 상태.
delete - 가비지 콜렉터에 의해 캐시에서 제거된 상태.
fetching -> fresh -> stale -> inactive -> delete
<결론>
사용자가 수동으로 알림을 받기 때문에 자동으로 상태를 업데이트를 해야 하는 상황이 없음
무엇보다 모든 사람이 함께 보는 페이지는 없고 개인이 보고 개인이 수동으로 수정하는 작업이 수행 되어야 업데이트가 되기 때문에 자동 업데이트는 특별히 필요가 없음
⇒ 이따 멘토님께 질문!
리액트쿼리는 어떤 경우에 자주 사용되나
실시간으로 업데이트가 필요한 채팅이나 sns같은 경우..?
⇒멘토님 피드백
⇒멘토님 피드백
Next.js를 사용한다면 리액트 라우터의 역할까지 쉽게 해버릴 수 있다!
최근 버전 절대 쓰지 않도록 하기
멘토님을 만나고 나니 뭔가 방향이 정해진 느낌..!
현재까지는 아주 건강도 멘탈도 백점 빵빵이다
며칠 안 지났지만 그래도 좋은 팀원, 좋은 멘토님을 만나서 너무 감사하다
이 프로젝트를 4주만에 어떻게 끝내나 했는데
마음의 여유를 가질 수 있게 되는 날이었어서 좋았다.
수면 시간을 너무 적게 가져가서 한 일은 많지만 저녁이 되니 졸리긴 했다
좀 더 수면 시간을 가져가서 멘토님 말씀대로 기간을 여유롭게 갖고
프로젝트 롱런 할 수 있도록 하자