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