프레임워크는 다양한 정의가 있으나.
일반적으로 다음의 특징이 있을 때 프레임워크라합니다. => 제어역전
소프트웨어를 만들어 나가는데에 대한 통제권과 프로세스가 돌아가는, 실행되는 절차들이 개발자 주도적으로 만들어 가는건지 정해진 틀에 개발자가 맞추어서 해야되는 것인지 판가름 난다.
즉, 소프트웨어를 설계하고 개발하는 통제권이 개발자에게 없다를 뜻한다.
프레임 워크 = 자유도가 낮다,
그러나 robust(튼튼한,강력한) 하다 -> 틀이 있기에 주니어가 짜건 숙련자가 짜건 어느정도의 퀄리티가 보장된다.
그러나 초기에 학습비용이 있다 그러나 공부를 한번 한다면? 다른 코드를 봤을 때 학습비용이 더 적다.
Next.js 왜써? SSR -> SEO때문에
CSR => 구글이 웹을 가져갔을 때 HTML이 비어있으니 SEO가 안된다.
Next.js는 앱라우팅을 개발하여 새로운 시스템을 정착시킴
파일 경로랑 URL은 비슷하게 생겼지만 상관이없다.
Nextjs는 위의 두개를 대응되게 만들어준다.
Next.js는 파일명, 폴더명이 중요하다.
폴더명은 어떤 약속이 있는지 => 그냥 쓰면 url, [폴더명] => 동적 라우팅이되고
파일명은 어떤 약속이 있는지 =>
layout은 자기가 위치한 경로의 페이지와 그 아래에 있는 모든 페이지를 감싼다.

맨 처음에 페이지에 접속 -> HTML 어디서 오지? SSR로써 서버에서 그려서 온다.
그려진 화면 내에서 Link 태그로 페이지 이동했을 때 => 새로운 HTML 어디서 그리지? -> CSR
그려진 화면 내에서 a 태그로 페이지 이동했을 때 => 새로운 HTML 어디서 그리지? -> SSR
처음에 불러올 때는 SSR로 불러온다 -> 왜? SEO 중요하니까!
그 다음에 매번 서버와 통신한다? 안할 수 있으면 좋지! => 그러므로 한번 그려낸 후부터는 기본적으로 CSR로 페이지를 그려나간다.
이렇기에 a태그가 아닌 Next가 제공하는 Link 태그를 사용해야한다.
복습되네요!