FirstPost 컴포넌트는 경로가 pages/posts 인데 public 안의 images 경로에 바로 접근 했다 ..
Image 컴포넌트
시매틱 img태그를 사용하면 다양한 화면 크기에서 반응, 뷰포트에 들어갈때만 이미지 로드 등등..을 수동으로 처리 해야 한다
그래서 Next.js에서 Image 컴포넌트를 제공한다 Image 컴포넌트를 사용하면 Next.js가 알아서 최적화를 해준다 Image컴포넌트를 사용하면 빌드할때 이미지를 최적화 하는 대신 사용자가 요청 할때 이미지를 최적화 한단다.. 그래서 빌드할때 이미지를 10개를 하든 1천만개 이미지를 하든 빌드 시간이 증가하지 않는다
NEXT는 브라우저에 렌더링 할 때 기본적으로 pre-rendering을 한다. pre-rendering이란 각 페이지들을 사전에 미리 HTML 문서로 생성하여 가지고 있는 것 그리고 서버로 요청이 들어올 때 알맞은 페이지를 반환해준다. 그 중 두가지 형태의 사전렌더링이 있다 👉 Static-Generation(SSG)
HTML을 빌드 타임에 각 페이지별로 생성하고 해당 페이지에 요청이 올 때 미리 생성된 HTML문서를 반환
서버에서 페이지가 생성이 되는게 아니라 빌드할때 생성된 문서를 보여주는것이므로 속도가 빠르다
공식문서에서는 마케팅페이지/ 블로그게시물/ 도움말 및 문서 등을 페이지로 사용할때 SSG 사용을 권하고있다
👉 Server-side Rendering(SSR)
서버로 요청이 올 때마다 해당하는 HTML 문서를 그때 그때 생성하여 반환
SSR방식은 서버에서 요청을 받을때마다 그에 상응하는 HTML을 생성하여 반환하기 때문에 항상 최신 상태를 유지해야하는 경우가 적합하다 (좋아요 표시라든지)
getStaticProps
블로그에 데이터를 추가하고 불러오기
최상위 경로에 posts directory를 만들고 안에 블로그 게시물을 md문서로 만든다