export default function Page() {
return (
<h1>페이지 라우터 공부 5일차 🤓</h1>
);
}
useEffect()
를 이용해, 컴포넌트가 마운트되었을 때 fetchData()
함수를 한 번 실행해 데이터를 페칭.fetchData()
함수는 fetch()
메서드를 사용해서 서버로부터 데이터를 불러온 다음, setState()
를 이용해 현재 state의 값을 업데이트.➕ Next.js는 백엔드 서버에서 불러올 데이터의 양이 너무 많아서 유저가 오래 기다리는 등의 상황 예방을 위해, 빌드 타임에 사전 렌더링을 하는 등의 다양한 사전 렌더링 방식을 가지고 있다.
getServerSideProps
라는 약속된 이름의 함수를 만들어서 export 키워드를 통해 내보내줬기 때문에, SSR 사용이 가능하다❗️getServerSideProps
함수가 먼저 렌더링되어서, 페이지에서 필요한 데이터들을 백엔드 서버로부터 불러온다던가 등의 일을 한다.getServerSideProps
함수의 리턴값은 반드시 ✨props property를 포함하는 객체✨여야 한다.getServerSideProps
함수는 SSR 과정에서 딱 한 번만 실행된다. ➡️ 오직 서버 측에서만 실행되는 함수이기 때문에, 브라우저에서 동작하는 함수는 getServerSideProps
함수 안에서 실행시킬 수 없다. InferGetServerSidePropsType
: 반환값 타입을 자동으로 추론해주는 함수먼저 사용자가 검색어를 입력했을 때 넘어가는 쿼리스트링을 위한 작업부터 시작!
context의 타입으로 getServerSidePropsContext
를 설정한다.
그리고 다른 곳에서 타입 에러 발생 시 ❗️를 통해 단언 가능 ~
typescript는 참 타입에 민감하다. (당연한 말 ...)
그래서 예외 처리에 민감해지자는 게 오늘의 포인트 ✨
거의 일주일 만에 공부를 다시 시작하니, 데이터베이스가 중지되어 있었다 ... SMTP 관련 뭐 해결하라 해서 새벽에 귀찮음병과 포기병 도질 뻔 !!!!