This is a demo post created by LLM.
MDX, Next.js, ๊ทธ๋ฆฌ๊ณ React๋ก ๋ธ๋ก๊ทธ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ
์๊ฐ
์๋ ํ์ธ์! ์ด ๊ธ์์๋ MDX, Next.js, ๊ทธ๋ฆฌ๊ณ React๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ก๊ทธ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ์ด ๊ธฐ์ ์คํ์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ฉฐ, ๊ฐ๋ฐ์ ์นํ์ ์ธ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
๋ชฉ์ฐจ
- MDX๋ ๋ฌด์์ธ๊ฐ?
- Next.js๋ก ํ๋ก์ ํธ ์ค์ ํ๊ธฐ
- React ์ปดํฌ๋ํธ์ MDX ํตํฉ
- SEO ์ต์ ํ
- ๊ฒฐ๋ก
MDX๋ ๋ฌด์์ธ๊ฐ?
MDX๋ Markdown๊ณผ JSX๋ฅผ ๊ฒฐํฉํ ํฌ๋งท์ผ๋ก, Markdown ๋ฌธ์ ๋ด์์ React ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค. ์ด๋ฅผ ํตํด ์ ์ ์ฝํ ์ธ ์ ๋์ ์ฝํ ์ธ ๋ฅผ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
์ฃผ์ ํน์ง
- React ์ปดํฌ๋ํธ ์ฌ์ฉ ๊ฐ๋ฅ: Markdown ๋ฌธ์ ๋ด์์ React ์ปดํฌ๋ํธ๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค.
- ์ ์ฐํ ์ฝํ ์ธ ๊ด๋ฆฌ: ์ ์ ์ฝํ ์ธ ์ ๋์ ์ฝํ ์ธ ๋ฅผ ๊ฒฐํฉํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ์ ์นํ์ : ๊ธฐ์กด Markdown ์ํฌํ๋ก์ฐ๋ฅผ ์ ์งํ๋ฉด์ React์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค.
// ์์ : MDX ํ์ผ์์ React ์ปดํฌ๋ํธ ์ฌ์ฉ
export const metadata = {
title: "MDX์ React์ ํตํฉ",
isPublished: true,
};
# ์ด๊ฑด ์ ๋ชฉ์
๋๋ค
<MyComponent prop="value" />
Next.js๋ก ํ๋ก์ ํธ ์ค์ ํ๊ธฐ
Next.js๋ React ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ๋ก, ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR)๊ณผ ์ ์ ์ฌ์ดํธ ์์ฑ(SSG)์ ์ง์ํฉ๋๋ค. MDX์ ๊ฒฐํฉํ๋ฉด ๊ฐ๋ ฅํ ๋ธ๋ก๊ทธ ํ๋ซํผ์ ๋ง๋ค ์ ์์ต๋๋ค.
1. Next.js ์ค์น
npx create-next-app my-blog
cd my-blog
npm install @next/mdx @mdx-js/loader
2. MDX ์ค์
next.config.js
ํ์ผ์ ์์ ํ์ฌ MDX๋ฅผ ์ง์ํ๋๋ก ์ค์ ํฉ๋๋ค.
// filepath: /Users/choems/stonechoe/www/next.config.js
const withMDX = require('@next/mdx')({
extension: /\.mdx?$/,
});
module.exports = withMDX({
pageExtensions: ['js', 'jsx', 'md', 'mdx'],
});
React ์ปดํฌ๋ํธ์ MDX ํตํฉ
MDX ํ์ผ์์ React ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ปดํฌ๋ํธ๋ฅผ import
ํ ํ Markdown ๋ฌธ์ ๋ด์์ ํธ์ถํ๋ฉด ๋ฉ๋๋ค.
SEO ์ต์ ํ
๋ธ๋ก๊ทธ์ SEO๋ฅผ ์ต์ ํํ๋ ค๋ฉด ๋ฉํ ํ๊ทธ์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. Next.js์ Head
์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค.
// filepath: /Users/choems/stonechoe/www/src/components/SEO.js
import Head from 'next/head';
export default function SEO({ title, description }) {
return (
<Head>
<title>{title}</title>
<meta name="description" content={description} />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</Head>
);
}
๊ฒฐ๋ก
์ด ๊ธ์์๋ MDX, Next.js, ๊ทธ๋ฆฌ๊ณ React๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ก๊ทธ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด์์ต๋๋ค. ์ด ๊ธฐ์ ์คํ์ ๊ฐ๋ฐ์์๊ฒ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ ์ ์ฝํ ์ธ ์ ๋์ ์ฝํ ์ธ ๋ฅผ ๊ฒฐํฉํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
์ถ๊ฐ ์๋ฃ
๊ฐ์ฌํฉ๋๋ค! ์ด ๊ธ์ด ๋์์ด ๋์๋ค๋ฉด GitHub์์ ์ ๋ฅผ ํ๋ก์ฐํด์ฃผ์ธ์. ๐