React는 라이브러리고, Next.js는 프레임워크다.
라이브러리는 코드 내에서 '우리가' 사용하는 것이다.
원하는 아키텍처를 사용하여 원하는 방식으로 코드를 작성한다.
객체 지향이든, 함수 지향 프로그래밍이든, 원하는 언어로 작성할 수 있다.
주식 시장 어플을 만든다고 할 때, 통화 변환이 필요한 경우 우리는 원하는 라이브러리를 설치하여 사용한다. 원하는 구조와 언어로. 라이브러리는 아무것도 결정하지 않는다. 내가 라이브러리를 활용한다.
React는 UI 인터페이스를 빌드하는데 사용하는 라이브러리이다. 반응형 사용자 인터페이스를 구축하기 위해 사용한다. 이 때 우리는 CSS로 Styled-component를 사용할 수도 있고, SAS를 사용할 수도 있다. 라우팅을 위해 React router를 사용하거나 Expo router를 사용할 수 있다. 원하는 폴더명과 파일명을 정할 수 있고, UI 빌드를 위해 React를 사용한다.
반대로, 프레임워크는 우리의 코드를 사용한다. 여러가지 결정을 우리 대신 자동으로 실행한다.
Next.js를 여러 가지 특징을 가지고 있다. Optimization, HTML Streaming, CSS Support, Data Fetching, Router Handlers, Middleware... 이러한 기능을 사용하려면, 우리는 코드를 올바른 위치에 넣기만 하면 된다. 그러면 프레임워크가 우리가 작성한 코드를 가져다가 사용하고, Next.js의 경우 풀스택 웹 어플리케이션을 빌드한다.
자동 설치와 수동 설치 중, 머리털 나고 처음 맛보는 김에 수동 설치를 시도해보자.
code .
npm init -y
package.json
> "license": "ISC" -> "MIT"
npm install react@latest next@latest react-dom@latest
packages.json
> "scripts": { "dev": "next dev" },
app/page.tsx
page.tsx
에서 기본적인 export를 실행해보자. 함수명은 중요하지 않다.<h1>
에 뻘건줄이 생기지만 일단은 넘어가자. export default function Tomato() {
return <h1>Hello Next</h1>
}
npm run dev
app/layout.tsx
가 생겼다. 뭐얏