'use client'
'use client'
๋ ์ปดํฌ๋ํธ๊ฐ ํด๋ผ์ด์ธํธ์์ ์คํ๋๋ ์์ค ํ์ผ์ ํ์ํฉ๋๋ค.
๋ ํผ๋ฐ์ค
'use client'
ํ์ผ์ ๋งจ ์์ 'use client';
๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ์ ธ์จ ์์น์ ๊ด๊ณ์์ด ํ์ผ(์ฌ์ฉํ๋ ๋ชจ๋ ํ์ ์ปดํฌ๋ํธ๋ฅผ ํฌํจ)์ด ํด๋ผ์ด์ธํธ์์ ์คํ๋จ์ ํ์ํฉ๋๋ค.
'use client';
import { useState } from 'react';
export default function RichTextEditor(props) {
// ...
์๋ฒ ์ปดํฌ๋ํธ์์ 'use client'
๋ผ๊ณ ํ์๋ ํ์ผ์ ๊ฐ์ ธ์ค๋ฉด ํธํํ ์ ์๋ ๋ฒ๋ค๋ฌ๋ import๋ฅผ ์๋ฒ ์ ์ฉ ์ฝ๋์ ํด๋ผ์ด์ธํธ ์ฝ๋ ์ฌ์ด์ ๋ถ๋ฆฌ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๋ชจ๋ ๊ทธ๋ํ์ ์ด ์ง์ ์ดํ์ ์ปดํฌ๋ํธ๋ useState
์ ๊ฐ์ ํด๋ผ์ด์ธํธ ์ ์ฉ React ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฃผ์์ฌํญ
- ํด๋ผ์ด์ธํธ ์ ์ฉ React ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋ชจ๋ ํ์ผ์
'use client'
๋ฅผ ์ถ๊ฐํ ํ์๋ ์์ผ๋ฉฐ ์๋ฒ ์ปดํฌ๋ํธ ํ์ผ์์ ๊ฐ์ ธ์จ ํ์ผ์๋ง ์ถ๊ฐํ ํ์๊ฐ ์์ต๋๋ค.'use client'
๋ ์๋ฒ ์ ์ฉ ์ฝ๋์ ํด๋ผ์ด์ธํธ ์ฝ๋์ ๊ฒฝ๊ณ ๋ฅผ ๋ํ๋ด๋ฉฐ ํธ๋ฆฌ ์๋์ ์๋ ์ปดํฌ๋ํธ๋ ํด๋ผ์ด์ธํธ์์ ์๋์ผ๋ก ์คํ๋ฉ๋๋ค. ์๋ฒ ์ปดํฌ๋ํธ์์ ๋ ๋๋งํ๋ ค๋ฉด'use client'
ํ์ผ์์ ๋ด๋ณด๋ด๋ ์ปดํฌ๋ํธ๊ฐ ์ง๋ ฌํํ ์ ์๋ props๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค. - ์๋ฒ ํ์ผ์์
'use client'
ํ์ผ์ ๊ฐ์ ธ์ค๋ฉด React ์ปดํฌ๋ํธ๋ก ๋ ๋๋งํ๊ฑฐ๋ props๋ฅผ ํตํด ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ ์ ์์ต๋๋ค. ๊ทธ ์ธ์ ์ฉ๋๋ก๋ ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค. - ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ํ์ผ์์
'use client'
ํ์ผ์ ๊ฐ์ ธ์ค๋ฉด directive๋ ์๋ฌด๋ฐ ํจ๊ณผ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์ ๋์์ ์ฌ์ฉํ ์ ์๋ ํด๋ผ์ด์ธํธ ์ ์ฉ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. 'use client'
ํ์ผ์ ๋ชจ๋ ์ฝ๋์ ๊ทธ๊ฒ์ด ๊ฐ์ ธ์จ (์ง์ ์ ์ผ๋ก ๋๋ ๊ฐ์ ์ ์ผ๋ก) ๋ชจ๋์ ํด๋ผ์ด์ธํธ ๋ชจ๋ ๊ทธ๋ํ์ ์ผ๋ถ๊ฐ ๋ ๊ฒ์ด๊ณ ๋ธ๋ผ์ฐ์ ์์ ๋ ๋๋ง ๋๊ธฐ ์ํด ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด์ง๊ณ ์คํ๋์ด์ผ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ bundle ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ์๋ฒ์ ์ด์ ์ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํด ๊ฐ๋ฅํ๋ฉด ํธ๋ฆฌ์์'use client'
directive์ state๋ฅผ ๋ฎ๊ฒ ์ด๋์ํค๊ณ ๋ ๋๋ง ๋ ์๋ฒ ์ปดํฌ๋ํธ๋ค์ ์์์ผ๋ก ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์ ์ ๋ฌํฉ๋๋ค.- props๋ ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ฒฝ๊ณ๋ฅผ ๋์ด ์ง๋ ฌํ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ directive์ ๋ฐฐ์น๋ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์์ ์ํฅ์ ๋ฏธ์น ์ ์์์ ์ ์ํ๊ณ ํ์ ์ด์์ผ๋ก ํฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํผํด์ผ ํฉ๋๋ค.
<MarkdownRenderer>
์ ๊ฐ์ด ์๋ฒ ์ ์ฉ ๊ธฐ๋ฅ๊ณผ ํด๋ผ์ด์ธํธ ์ ์ฉ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ฌ์ฉํ์ง ์๋ ์ปดํฌ๋ํธ๋ ์ผ๋ฐ์ ์ผ๋ก'use client'
๋ก ํ์ํด์๋ ์ ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ๋๋ ์๋ฒ ์ ์ฉ์ผ๋ก ๋ ๋๋งํ ์ ์์ง๋ง ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ๋๋ ํด๋ผ์ด์ธํธ bundle์ ์ถ๊ฐ๋ฉ๋๋ค.- npm์ ๊ฒ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ง๋ ฌํํ ์ ์๋ props๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์ ์ฉ React ๊ธฐ๋ฅ์ผ๋ก ๋ ๋๋งํ ์ ์๋ React ์ปดํฌ๋ํธ์
'use client'
๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ํด๋น ์ปดํฌ๋ํธ๊ฐ ์๋ฒ ์ปดํฌ๋ํธ์ ์ํด import ๋์ด ๋ ๋๋ง ๋ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ปดํฌ๋ํธ๋ฅผ ์์ ์'use client'
ํ์ผ๋ก ๊ฐ์ ํ์๊ฐ ์์ด ๋ฒ๊ฑฐ๋ก์ธ ์ ์๊ณ ๋์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ฒ๋ก ๋ก์ง์ ์ด๋ํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ฌ์ ๋ฒ๋ค ๋ ํ์ผ์ npm์ ๊ฒ์ํ ๋๋ ์๋ฒ์์ ์ง์ ์ฌ์ฉํ ์ ์๋ export๊ฐ ํฌํจ๋ bundle๊ณผ๋ ๋ณ๋๋ก'use client'
๋ผ๊ณ ํ์๋ bundle์ด ํฌํจ๋๋๋ก ํด์ผ ํฉ๋๋ค. - ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๋ ์๋ฒ ์ธก ๋ ๋๋ง(SSR) ๋๋ ๋น๋ ํ์ ์ ์ ์ฌ์ดํธ ์์ฑ(SSG)์ ์ผ๋ถ๋ก ์คํ๋ ๊ฒ์ ๋๋ค. ์ด๋ React ์ปดํฌ๋ํธ์ ์ด๊ธฐ ๋ ๋๋ง ์ถ๋ ฅ์ HTML๋ก ๋ณํํ์ฌ JavaScript bundle์ด ๋ค์ด๋ก๋ ๋๊ธฐ ์ ์ ๋ ๋๋งํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ง์ ์ฝ๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ฒ ์ ์ฉ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
'use client'
์ ๊ฐ์ directive๋ ํ์ผ์ ๋งจ ์ฒ์์ ์์ด์ผ ํ๋ฉฐ import ์ฝ๋๋ ๋ค๋ฅธ ์ฝ๋๋ณด๋ค ์ฐ์ ํด์ผ ํฉ๋๋ค. ์ด๋ ๋ฐฑํฑ์ด ์๋ ์์๋ฐ์ดํ๋ ํฐ๋ฐ์ดํ๋ก ์์ฑ๋์ด์ผ ํฉ๋๋ค. ('use xyz'
directive ํ์์useXyz()
Hook ๋ค์ด๋ฐ ์ปจ๋ฒค์ ๊ณผ ๋ค์ ์ ์ฌํ์ง๋ง ์ฐ์ฐํ ์ผ์น์ ๋๋ค.)