개발자가 주체가 되어서 코드를 작성한다
개발자가 원할 때 library를 불러와서 사용하기 때문에 자유도가 높다.
framework가 개발자의 코드를 불러온다.
코드를 framework의 규칙에 따라 적절한 곳에 작성하면 framework가 코드를 불러와서 동작하게 한다.
react.js는 라이브러리고 next.js는 react를 사용하는 프레임워크이다.
create react-app을 사용하여 리액트 프로젝트를 생성했을 때는 index.js와 app.js가 생성되어 렌더링되는 과정을 확인할 수 있다. 그리고 app 컴포넌트는 비어있기 때문에 개발자가 어떻게 폴더 구조를 만들지 결정할 수 있다. 폴더명도 자유롭게 작명할 수 있다. routing을 다룰 방법도 직접 결정할 수 있다.
반면에 Next.js로 프로젝트를 생성한다면 루트에 index.js나 app.js가 없다. next.js가 어디선가 이 과정을 수행하고 있기 때문에 이 과정을 커스텀할 수 없다. 또한 route도 next.js가 수행하고 있기 때문에 개발자가 pages 안에서 페이지를 생성하면 자동으로 routing 된다.