๐ก ๊ธธ๊ณ ๊ธด ๋ชจ๋ ๋ฆฌ์กํธ Deep Dive ์คํฐ๋๊ฐ ๋์ด ๋ฌ๋ค! ์ฒ์ ๊ฒฉ์ฃผ๋ก ์งํํ ๋๋ ์ด ๋๊บผ์ด ์ฑ ์ ๊ณผ์ฐ ๋ค ๋๋ผ ์ ์์๊น ์ถ์๋๋ฐ ๋ง์ ๋ ๋๋๋๊น ๋๋ฌด ์์ฌ์ด ๋ง์์ด ๋๋ ๊ฒ ๊ฐ๋ค ๐ ์ ๋ง ์ข์ ๋ถ๋ค๊ณผ ํจ๊ปํ ์ ์์๊ณ ๋ง์ด ๋ฐฐ์๊ฐ ์ ์์๋ ์คํฐ๋์๋ค! ์ด๋ฒ ๊ธ์์๋ ๋์ ์คํฐ๋ ํ๊ธฐ๋ฅผ ์งง๊ฒ ๋จ๊ฒจ๋ณด๋ ค๊ณ ํ๋ค ๐
๋ชจ๋ ๋ฆฌ์กํธ Deep Dive ๊ตฌ๋งค ๋งํฌ
๋ชจ๋ ๋ฆฌ์กํธ Deep Dive๋ ๊น์ฉ์ฐฌ๋์ด ์ถํํ์ , ๋ฆฌ์กํธ๋ฅผ ์ ์ฐ๊ธฐ ์ํด ํ์ํ ํต์ฌ์ ์ธ ์ง์๋ค์ ์ ๋ฆฌํ ์ฑ
์ด๋ค. ๋ฌด๋ ค 952ํ์ด์ง(...)์์ง๋ง ์๋
ํ๊ณ ๋์ ๋ณด๋ฉด ๋ญ ํ๋ ๋บ ๊ฒ ์์ ์ ๋๋ก ์ ๋ง ์์ฐฌ ๋ด์ฉ์ด๋ค.
์ฝ์ด ๋ณธ ์ฌ๋์ด๋ผ๋ฉด ๋ค๋ค ์๊ฒ ์ง๋ง ๋ฆฌ์กํธ๋ฅผ ์
๋ฌธํ๋ ์ฌ๋๋ณด๋ค๋, ๋ฆฌ์กํธ๋ฅผ ์ด๋ ์ ๋ ์ฌ์ฉํด ๋ณธ ๊ฒฝํ์ด ์๋ ์ฌ๋๋ค์ด ์ฝ๊ธฐ์ ์ ํฉํ๋ค. ๋๋ React๋ฅผ ์ฌ์ฉํ์ง 2๋
์ ๋ ๋์๋๋ฐ๋ ์๋กญ๊ฒ ์๊ฑฐ๋ ์ด๋ ต๊ฒ ๋๊ปด์ง๋ ๊ฐ๋
๋ค์ด ๊ฝค ์์๋ ๊ฒ ๊ฐ๋ค๐คฃ ๊ทธ๋๋ ์์ฒญ ์ฌํ์ ์ธ ๋ด์ฉ์ด๋ผ๊ธฐ๋ณด๋ค๋ ์ต๋ํ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ ํ ์๋ ๋๋์ด๋ผ์ ์ฝ๊ณ ์ต๋ํ๋ ๋ฐ ์ด๋ ค์์ ์์๋ ๊ฒ ๊ฐ๋ค!
์ฐ๋ฆฌ ์คํฐ๋์ ์งํ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ธฐ๊ฐ
: 2์ฃผ์ ํ ๋ฒ๋ฐฉ์
: ์คํ๋ผ์ธ์ฅ์
: SKTํ์๋ชจ๋ ๋ฆฌ์กํธ Deep Dive ์คํฐ๋ GitHub
1์ฅ์ ์๋ฐ์คํฌ๋ฆฝํธ ํต์ฌ์ ๋ํ ๋ด์ฉ์ ๋ค๋ฃฌ๋ค. ์์ด ์ด๋ง์ด๋งํ๊ฒ ๋ง์์ ๋ชจ๋ ๋ฆฌ์กํธ๋ฅผ ์ฒ์ ์์ํ๋ ๋ฐ ์กฐ๊ธ ์ฅ๋ฒฝ์ด์๋ ๊ฒ ๊ฐ๋ค(ใ
ใ
) 1, 2์ฅ๋ถํฐ ์ง์ด ์ญ ๋น ์ก๋ค ๐ ํ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ ์ฑํฐ์ ๋ถ๋์ด ์ด๋ ๊ฒ ๋ง๋ค๋ ๊ฒ์, ๊ทธ๋งํผ ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ, ํ๋ก ํธ์๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ๊ผญ ํ์ํ ์๋ฐ์คํฌ๋ฆฝํธ ์ง์์ด ์ด๋ ๊ฒ๋ ๋ง๋ค๋ ์ฌ์ค์ ์ฆ๋ช
ํ๋ ์ฆ๊ฑฐ์ด๊ธฐ๋ ํ๋ค.
ํด๋ก์ ๋ ์ด๋ฒคํธ ๋ฃจํ, ํธ์ด์คํ
๋ฑ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ ๋ฉด์ ์ ๋ง์ด ๋์ค๋ ์์ฐจ๊ณ ์ด๋ ค์ด ๋ด์ฉ๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋ ์ฑํฐ์๋๋ฐ, ์ฐ๋ฆฌ ์คํฐ๋ ์์ด์ค ์ฑ์ฒ ๋์ด ๋๋ฌด ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ค๋ช
ํด ์ฃผ์
์ ์ข์๋ค๐ ํผ์ ๊ณต๋ถํ์ ๋๋ ์๋ฟ์ง ์์๋ ๋ด์ฉ๋ค๋ ์ฝ๊ฒ ๋ค์ ์ ์์ด์ ์คํฐ๋ ์์๋ถํฐ ๋ง์ ๋์์ด ๋๋ ๊ฒ ๊ฐ๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. Symbol์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ญ๊น | symbol usage
2.์์ ํ์
์ ๋ถ๋ณ ํํ์ ๊ฐ์ผ๋ก ์ ์ฅ,๊ฐ์ฒด
๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ํํ๋ก ๊ฐ์ ์ ์ฅ
3. ๋ฆฌ์กํธ์์๋Object.is
๋งค์ปค๋์ฆ์ผ๋ก ๊ฐ์ ๋น๊ต๊ฐ ์ด๋ฃจ์ด์ง
2์ฅ์ ์ ๋ชฉ ๊ทธ๋๋ก ๋ฆฌ์กํธ์ ๊ธฐ๋ฐ์ด ๋๋ ํต์ฌ ์์๋ค์ ๋ฏ์ด๋ณด๋ ์ฑํฐ์๋ค. ๋จ์ด๋ง ๋ค์ด๋ดค๋ ๋ฆฌ์กํธ ํ์ด๋ฒ๋ Reconciliation ๋ฑ์ ๋ํด ์ ๋ง ์์ธํ ์ ์ ์๋ ์ฑํฐ์๊ณ , ์ ๋๋ก ์ดํดํ๋ ค๋ฉด ์ ์ผ ์ด๋ ค์ด ์ฑํฐ ์ค์ ํ๋์๋ ๊ฒ ๊ฐ๋ค ๐ฅน ์ด๊ฑด ๋๋ฒ ์ธ๋ฒ ์ฝ์ด์ผ ์ฐจ์ฐจ ์ดํดํด๋๊ฐ ์ ์๋ ๊ฐ๋ ๋ค์ด ์๋๊น ์ถ๋ค ใ .ใ !!ใ ใ
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. JSX๋ ๋ฆฌ์กํธ์ ์ข ์์ ์ด์ง ์์ ๋ ์์ ์ธ ๋ฌธ๋ฒ
2. DOM๊ณผ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์
3. ๋ฆฌ์กํธ ์์ ์ ์์ ๋จ์๋ก ๋ถํ ํ๊ณ ์ฐ์ ์์๋ฅผ ๋งค๊ฒจ ์คํํ๋ '๋ฆฌ์กํธ ํ์ด๋ฒ'!
3์ฅ์ ๋ด๊ฐ ์ฒซ ๋ฐํ๋ฅผ ๋งก์ ์ฅ์ผ๋ก, ๋ฆฌ์กํธ์์ ์ค์ํ ๊ฐ๋ ์ค ํ๋์ธ hook์ ๋ํด ์์ธํ ์๊ฐ๊ฐ ๋์ ์๋ ์ฑํฐ์๋ค. ์์ฃผ ์ฐ๋ hook๋ถํฐ ์์ ํ ๋ฒ๋ ์ฌ์ฉํด ๋ณธ ์ ์๋ ์ด๋ฆ์กฐ์ฐจ ์์ํ hook๋ค๊น์ง ์ด๋ค ๊ธฐ๋ฅ์ ํ๊ณ , ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์์ธํ ์ค๋ช ๋์ด ์์๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ฒซ ๋ฐํ๋ฅผ ๋งก์ ํํธ๋ผ์ ๊ทธ๋ฐ์ง ๊ฐ์ฅ ๊ธฐ์ต์ ๋จ๋ ์ฑํฐ์ธ ๊ฒ ๊ฐ๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1.useState
์useRef
์ ์ฐจ์ด์
2.useState
์ ๋ณ์ ๋์ ํจ์๋ฅผ ๋๊ฒจstate
๊ฐ ์ฒ์ ๋ง๋ค์ด์ง ๋๋ง ์ฌ์ฉ๋๊ฒ ํ๋ ๊ฒ์ '๊ฒ์ผ๋ฅธ ์ด๊ธฐํ'๋ผ๊ณ ํจ!
3.useEffect
๋ ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ํ ์ด ์๋๋ค! ์ปดํฌ๋ํธ์ ์ฌ๋ฌ ๊ฐ๋ค์ ํ์ฉํด ๋๊ธฐ์ ์ผ๋ก ๋ถ์ ํจ๊ณผ๋ฅผ ๋ง๋๋ ๋งค์ปค๋์ฆ โญ
4์ฅ์ ์ ๋ชฉ ๊ทธ๋๋ก ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR), ๊ทธ๋ฆฌ๊ณ Next.js์ ๋ํ ๋ด์ฉ์ด ๋ด๊ฒจ ์์๋ค. CSR๊ณผ SSR, SPA์ MPA์ ๋ํ ๊ฐ๋ ์ ๋ช ํํ ์๊ณ ์๋ค๊ณ ์๊ฐํ๋๋ฐ ์ต๊ทผ์ ๊ธฐ์ ๋ฉด์ ์ ์ด ๋ถ๋ถ์ ๋ํ ๋๋ต์ ์ด์ํ๊ฒ ํ ์ ์ด ์์ด์ ๋์ ์คํฐ๋๋ฅผ ํ ๋ ์ด ๋ถ๋ถ์ ์ง์คํด์ ๊ณต๋ถํ ๊ฑธ...๐ฅน ํ๋ ํํ๊ฐ ์์๋ค(ใ ใ ) ๊ทธ๋งํผ ์ค์ํ๊ณ ์์์ผ ํ๋ ๊ฐ๋ ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. CSR๊ณผ SSR์ ์ฅ๋จ์
2. ๋ฐ์ด๋ SPA๋ MPA๋ณด๋ค ๋ซ๋ค โญ
3. Next.js paga router์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ
๐ฅ ์ฑ ์ ์๋ ์ถ๊ฐ์ ์ธ ์๊ฒฌ
1.redirect
vsrewrite
- SSR์ด ์ ์ฉ๋์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํด์ผ ํ๋ค!
5์ฅ์์๋ ์ํ ๊ด๋ฆฌ๋ฅผ ์ ํด์ผ ํ๋์ง, ์ํ ๊ด๋ฆฌ๋ ์ด๋ค ์์ผ๋ก ๋ฐ์ ๋์ด ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ ๋๊ตฌ๋ค์ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ์์๋ณด๋ ์ฑํฐ์๋ค. ํนํ ์ด๋ฌํ ์ํ ๊ด๋ฆฌ ๋๊ตฌ๊ฐ ์ ๊ฐ๋ฐ๋๊ณ ๋ฐ์ ๋์๋์ง์ ๋ํ ๋ฐฐ๊ฒฝ์ ์ดํดํ ์ ์์๋ ๋ด์ฉ์ด์๋ค. ์ํ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์ด๊ฒ์ ๊ฒ ์จ ๋ณด๋ ๊ฑธ ์ข์ํด์ ๊ฐ์ธ์ ์ผ๋ก ์ฌ๋ฐ๋ ์ฅ์ด์๋ ๊ฒ ๊ฐ๋ค โบ๏ธ
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์ง๋ 'Flux ํจํด'
2. Context API๋ ์ํ ๊ด๋ฆฌ๊ฐ ์๋ '์ฃผ์ '์ ๋์์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค!
3. Recoil๊ณผ Jotai์ ์ฐจ์ด์ (ํค ๊ด๋ฆฌ ์ ๋ฌด, ์ ์ ๋ฒ์ ์ฌ๋ถ ๋ฑ)
'๋ฆฌ์กํธ ๊ฐ๋ฐ ๋๊ตฌ'๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ํ์ฉํด์ผ ํ๋์ง์ ๋ํ ๋ด์ฉ์ด์๋ค. ์ปดํฌ๋ํธ์ ํ๋กํ์ผ๋ฌ ํญ์์ ๊ฐ๊ฐ ์ด๋ค ๋ด์ฉ์ ์ ๊ณตํ๋์ง์ ๋ํ ์ค๋ช ์ด ๋์ ์์๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ๋ช ํจ์๋ก ์ ์ธํ๋ฉด, ๋ฆฌ์กํธ ๊ฐ๋ฐ ๋๊ตฌ์์ ์ฝ๊ฒ ์๋ณ ๊ฐ๋ฅํ๋ค!
2. ๋ฆฌ์กํธ๊ฐ ๋ ๋๋งํ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ ์ํฉ์ ๊ฐ๋ฐ ๋ชจ๋์์ ํ์ธํ๊ฒ ํด์ฃผ๋ 'ํ๋กํ์ผ๋ฌ'
3. 'ํ๋กํ์ผ๋ฌ'์์๋ ๋ ๋ ์ปค๋ฐ๋ณ๋ก ์ด๋ ํ ์์ ์ด ์ผ์ด๋ฌ๋์ง์ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ ๋ฆฌ์กํธ๊ฐ ์๋ํ๋ ๋ด์ฉ์ ์ธก์ ๊ฐ๋ฅ
ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๊ฐ ํญ์ ์ด๋ค ๋ด์ฉ์ด ๋ด๊ฒจ ์๊ณ , ๊ทธ๋ฌํ ๋ด์ฉ๋ค์ ์ด๋ค ๋ฐฉ์์ผ๋ก ํด์ํด์ผ ํ๋์ง์ ๋ํ ๋ด์ฉ. ์ด ์ฅ์์๋ ํน๋ณํ Next.js ํ๊ฒฝ์ ์ด๋ป๊ฒ ๋๋ฒ๊น ํด์ผ ํ ์ง์ ๋ํ ๋ด์ฉ๋ ๋ด๊ฒจ ์์ด์ ์ข์๋ค!
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. '์์ค' ํญ์์๋ ๊ฐ์ํ๊ณ ์ถ์ ๋ณ์๋ฅผ ์ ์ธํด ์ถ์ ํ๊ฑฐ๋ ํน์ ์ค๋จ์ ์์์ ์ฝ์คํ๋ ํ์ธ ๊ฐ๋ฅ (์ ํ์ฉํ๋ฉด ์ผ์ผ์ดconsole.log
๋ฅผ ์ฐ์ง ์๊ณ ๋ณ์๊ฐ๋ค์ ์ ์ ์๋ค!)
2. '๋คํธ์ํฌ' ํญ์์๋ ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฌ์ค๋ ์๋๊ฐ ์ ์ ํ์ง, ์ฌ๋ฐ๋ฅธ ์ฐ์ ์์๋ก ๋ค์ด๋ก๋ ๋๋์ง ๋ฑ์ ํ์ธํด ๋ณด๋ฉด ์ข๋ค
3. '๋ฉ๋ชจ๋ฆฌ' ํญ์์๋ ์ค๋ ์ท์ 2๊ฐ ์ด์ ์ดฌ์ํ๊ณ , ์ฐจ์ด๋ฅผ ๋น๊ตํ๋ ์์ผ๋ก ํ์ฉํ๋ฉด ์ข๋ค
๐ฅ ์ฑ ์ ์๋ ์ถ๊ฐ์ ์ธ ์๊ฒฌ
- ๊ฐ๋ฐ์์ ์ปดํจํฐ๋ ๋ณดํต ์ฌ์ฉ์์ ๊ธฐ๊ธฐ๋ณด๋ค ์ฑ๋ฅ์ด ์ข๊ธฐ ๋๋ฌธ์, ์๋์ ์ผ๋ก ๋คํธ์ํฌ๋ฅผ ๋๋ฆฌ๊ฒ ํด์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํ์ธํด ๋ณด๋ ๊ฒ ์ข๋ค!
8์ฅ์ ์ฝ๊ฒ ๋งํด 'ํ ์คํธ'์ ๊ดํ ์ฅ์ด์๋ค. ESLint๋ฅผ ํ์ฉํ ์ ์ ์ฝ๋ ๋ถ์๊ณผ ํ ์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ํ ์คํธ ๋ฐฉ๋ฒ์ ๋ํด ๋๋ต์ ์ธ ์๊ฐ๋ฅผ ํ๋ ์ฅ์ด์๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. ESLint๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ฌธ์์ด๋ก ์ฝ์ด, ํ์(parser)๋ก ์ฝ๋๋ฅผ ๊ตฌ์กฐํํ ํ, ์ด AST๋ฅผ ๊ท์น๊ณผ ๋์กฐํ๋ค
2.eslint-config
ํจํค์ง์๋ ์ ๋ช ํeslint-config-airbnb
์ธ์๋ ํ๊ตญ ์ปค๋ฎค๋ํฐ์์ ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌ๋๋@titicaca/triple-config-kit
๋ ์๋ค
3. ํ ์คํธ์ ์ต์ฐ์ ๊ณผ์ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ฅ ์ทจ์ฝํ๊ฑฐ๋ ์ค์ํ ๋ถ๋ถ์ ํ์ ํ๋ ๊ฒ
๐ฅ ์ฑ ์ ์๋ ์ถ๊ฐ์ ์ธ ์๊ฒฌ
- ๋ฐฑ์๋์์ api๊ฐ ์์ง ๋์ค์ง ์์์ ๋ ํ ์คํธ๋ฅผ ์๋ํด ๋ณผ ์ ์๋
msw
,jsonServer
๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ, ๋์ปค๋ผ์ด์ฆ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ด์ฉ์ด ๋์ ์๋ ์ฅ์ด์๋ค. ๋์ปค์ ๋ํ ๋ด์ฉ์ด ํนํ ๊น๊ฒ ๋์ ์์ด์ ๋ค๋ค ๋ง์ด ์ด๋ ค์ ํ๋ ์ฑํฐ์๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋๋ ๋์ปค๋ฅผ ์ฌ์ฉํด ๋ณด์๋ ๊ฒฝํ๊ณผ ์์ฆ์ ํธ๋ ๋์ ๋ํ ์๊ฒฌ์ ๊ณต์ ํ๋ฉด์ ๋ฐฐ์๊ฐ๋ ๊ฒ ๋ง์๋ ์ฅ์ด์๋ค ๐
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1.tsconfig.json
์์strict
๊ฐ 'true'๋ฉด ์ ํํ ์ด๋ค ๊ฐ๋ค์ด ์ ์ฉ๋๊ฒ ๋๋์ง
2. ๊นํ๋ธ ์ก์ ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ด๋ฅผ ์ด์ฉํด์ CI๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ
3. ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ปค๋ผ์ด์ฆ ํ๋ ๋ฐฉ๋ฒ โญ
์ด๊ฑธ ๊ณต๋ถํ๊ณ ์์ ๋์ฏค์ ์ด๋ฏธ ๋ฆฌ์กํธ 19 ๋ฒ์ ์ด ๋์์ ๋์๋ค... ์๋ฌดํผ ๋ฆฌ์กํธ 17๊ณผ 18 ๋ฒ์ ์ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง, ๋ฆฌ์กํธ๋ ์๋ก์ด ์ ๋ฐ์ดํธ์์ ์ด๋ค ๊ด์ ์ผ๋ก ์ ๊ธฐ๋ฅ์ ์ถ์ํ๋์ง์ ๋ํ ๋ด์ฉ์ด ์ ํ ์๋ ์ฅ์ด์๋ค. ๋จ์ํ ๋ฆฌ์กํธ์ ์๋ ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ธฐ๋ฅ๋ค์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋์ด, ์๋ก์ด ๊ธฐ๋ฅ์ด ์ด๋ค ๋ฐฐ๊ฒฝ์์ ๋์๋์ง๋ฅผ ์์์ผ ํด๋น ๊ธฐ๋ฅ์ ์ ์ ํ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ์๋กญ๊ฒ ๊นจ๋ซ๊ฒ ํด์ฃผ๋ ๋ด์ฉ์ด์๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. ๋ฆฌ์กํธ 18์์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๊ธฐ๋ฅ๋ค
2. ๋ฆฌ์กํธ 17์์ 18๋ก ๋์ด๊ฐ ๋, ๊ฐ์ฅ ํฐ ๋ณ๊ฒฝ์ ์ ๋ฐ๋ก '๋์์ฑ ์ง์'!
๐ฅ ์ฑ ์ ์๋ ์ถ๊ฐ์ ์ธ ์๊ฒฌ
1. React 19 ๋ฒ์
- ์๋กญ๊ฒ ๋ฐํ๋ React 19 ๋ฒ์ ์ ๋ฌด์์ด ๋ฌ๋ผ์ก๋? : ์ฐ๋ฆฌ 5CEAN ํ์ ๋ ๋ ํ ํ๋ก ํธ ๊ฐ๋ฐ์๊ฐ ๋ฐ๋ณด์ ๋ธ๋ก๊ทธ์ ์์ฑํ ๊ธ์ ๋ค๊ฐ์ด ๋๋ฌ๋ณด์๋ค ๐
useID hook
- ๋ฆฌ์กํธ 18 ๋ฒ์ ์์ ์๋กญ๊ฒ ๋ฑ์ฅํ๋
useID()
๊ฐ ์์ด์ผ ํ๋ ์ด์ ์ ๋ํด ๋ค๊ฐ์ด ๊ฒํ ํด ๋ณด์๋ค.useID
์ ์ฃผ์ ์ด์ ์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง๊ณผ ํจ๊ป ์๋ํ ์ ์๋๋ก ๋ณด์ฅํ๋ค๋ ๊ฒ!- useID - React
11์ฅ์ ์ ๋ชฉ ๊ทธ๋๋ก Next.js 13๊ณผ ๋ฆฌ์กํธ 18 ๋ฒ์ ์ ๋ํ ๋ด์ฉ์ด์๋ค. ๋ฆฌ์กํธ 18์์ ์ฒ์ ๋ฑ์ฅํ ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ์ Next.js๊ฐ ์ ๊ณตํ๋ SSR์ ๋ํด ๋น๊ตยท๋ถ์ํ๋ ๋ด์ฉ์ ์ฃผ๋ก ๋ค๋ฃจ๊ณ ์๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ต๊ทผ์ ๋ฉด์ ์ง๋ฌธ์ผ๋ก๊น์ง ์ง๋ฌธ ๋ฐ์๋ ๋ด์ฉ์ด๋ผ ํ์คํ ์์ฆ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ค์ด ์ฃผ๋ชฉํด ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค!
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. page router์ด ๊ฐ์ง๋ ๋ ์ด์์์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ app router
2. ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ๋ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง๊ณผ๋ ์์ ํ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ค! (๋์ฒด์ฌ๊ฐ ์๋, ์ํธ ๋ณด์์ฉ์ด๋ค)
3. ์นํฉ์ ํ๊ณ์ 'ํฐ๋ณดํฉ'
๐ฅ ์ฑ ์ ์๋ ์ถ๊ฐ์ ์ธ ์๊ฒฌ
1. ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์๋ ์๋ฒ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ ์ ์๋ค. ๋ง์ฝ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ปดํฌ๋ํธ์์ ์ํ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ฉด? ๋ชจ๋ ๊ฒ์ ๋ค ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๋ก ์ ์ธํด์ผ ํ๋ค๋ ๊ฑธ๊น?
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๊ตฌ์ฑํ์ฌ ์์ ์๊ฐ ๋ณ๊ฒฝ๋๋๋ก ํ๋ฉด ๋ฌธ์ ํด๊ฒฐ
- ๋ ๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌํ์ฌ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๋ก ์ ์ธํด ์ฃผ๋ฉด ๋๋ค!
- ์๋ก ๋ฑ์ฅํ '๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ' ์ดํดํ๊ธฐ
์น ์ฌ์ดํธ์์์ '์ฑ๋ฅ'๊ณผ ๊ตฌ๊ธ์์ ์์ฝํ ํต์ฌ ์น ์งํ์ธ Core Web Vital์ ๊ฐ ํญ๋ชฉ์ ๋ํด ์์ธํ ์์๋ณด๋ ์ฅ์ด์๋ค. ํต์ฌ ์น ์งํ์ธ LCP, FID, CLS์ ํต์ฌ๊น์ง๋ ์๋์ง๋ง ํน์ ๋ฌธ์ ๋ฅผ ์ง๋จํ ๋ ์ฌ์ฉํ๋ ์ ์ฉํ ์งํ์ธ TTFB, FCP์ ๋ํ ์ค๋ช ์ด ๋์ ์๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. ์๋ฌด๋ฆฌ ์ด๋ฏธ์ง๋ฅผ ์ต์ ํ ํ๋๋ผ๋ ๋น์ฐํ ํ ์คํธ ๋ก๋ฉ์ด ํจ์ฌ ๋น ๋ฅด๋ค โญ (์ฒซ ๋ทฐํฌํธ ์์ญ์ ๋๋๋ก ํ ์คํธ๋ก ์ฑ์ฐ๋ ๊ฒ ์ข๋ค)
2. ์คํ์ ์๋ฃํ๋ ๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ Long task๋ค์ ๊ผญ ์น ํ์ด์ง์์ ํด์ผ ํ๋ ์์ ์ธ์ง์ ๋ํ ๊ณ ๋ฏผ์ด ํ์ํ๋ค
3. ์ต์ด ๋ฐ์ดํธ๊น์ง์ ์๊ฐ, ์ฆ TTFB๋ ํนํ SSR์์ ์ฃผ์๊น๊ฒ ๋ด์ผ ํ ์งํ(ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ '์๋ฒ'์์ ์์ ์ ํด์ผ ํ๊ณ , ์๋ฒ ์์ ์ด ๋ง์์ง์๋ก HTML์ ๋ง๋ค๊ธฐ ์ํ ์์ ์๊ฐ์ด ๊ธธ์ด์ง๊ธฐ ๋๋ฌธ์)
12์ฅ์ ์ด์ด ์น ํ์ด์ง์ '์ฑ๋ฅ'์ ๋ํ ๋ด์ฉ์ด์๊ณ , ์ฑ๋ฅ์ ์ธก์ ํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด๋ ์ฌ์ดํธ๋ฅผ ์๊ฐํ๋ ์ฅ์ด์๋ค. ๊ฐ์ธ์ ์ผ๋ก ๊ตฌ๊ธ ๋ผ์ดํธํ์ฐ์ค๋ง ์ฌ์ฉํ๋ค๊ฐ ์๋ก์ด ์ ์ฉํ ํด์ ์๊ฒ ๋์ด์ ์ข์๋ค ๐
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1. create-next-app์์๋ Next.js๋ง์ ์ฑ๋ฅ ์ธก์ ๋ฉ์๋์ธNextWebVitalMetric
์ ์ ๊ณตํ๊ณ , ํต์ฌ ์น ์งํ ์ธ์ Next.js์ ํนํ๋ ์ฌ์ฉ์ ์งํ(Next.js-hydration
,Next.js-route-change-to-render
,Next.js-render
)๋ค์ ์ ๊ณตํ๋ค!
2. ์น ์ฌ์ดํธ ์ฑ๋ฅ ๋ถ์ ๋๊ตฌ๋ก ๊ฐ์ฅ ๋๋ฆฌ ์๋ ค์ง ๋๊ตฌ๋WebPageTest
์ด๋ฉฐ, ๋ฌด๋ฃ ๋ฒ์ ๋ง์ผ๋ก ์ถฉ๋ถํ ๋งํผ ๋ค์ํ ์ฑ๋ฅ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ค
3. ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์์ ์คํ ๋ชจ๋๋ก ์ ์๋์๋ '์ฑ๋ฅ ํต๊ณ' ํจ๋์ ์ฌํด ์์ ์ญ์ ๋ ์์ ๐ฅฒ
๐ฅ ์ฑ ์ ์๋ ์ถ๊ฐ์ ์ธ ์๊ฒฌ
- ์ฑ ์์๋
Titme to Interactive
๊ฐ '๋ณด์ฌ์ง๋ ํ์ด์ง ์์์ ๋๋ถ๋ถ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ถ์ฐฉ๋๋ ์์ '์ด๋ผ๊ณ ๋์ ์์๋๋ฐ, "๋๋ถ๋ถ"์ ๊ธฐ์ค์ ๋ชจ๋ฅด๊ฒ ์ด์ ์ฐธ๊ณ ์๋ฃ๋ฅผ ์ฐพ์๋ณด์๋ค!- Chrome for Developers - ์ํธ์์ฉ ์์ ์๊ฐ
- ๊ณต์ ๋ฌธ์์๋ '์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๊ฐ์ฅ ๋ง์ด ๋ณด์ด๋ ํ์ด์ง ์์์์ ๋์ํ ๋'๋ผ๊ณ ์ ํ ์๋ค โญ
๋ค๊ฐ์ด ์ด๋ ค์ ํ๋ ๋ณด์ ๊ด๋ จ ์ฅ์ด๋ค(ใ ใ ) ์นํ์ด์ง์์์ ๋ณด์ ์ด์์๋ ์ด๋ค ๊ฒ๋ค์ด ์๊ณ , ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์๋์ง์ ๋ํ ๋ด์ฉ์ ๋ด์๋ค. ์ด๋ฆ๊ณผ ๊ฐ๋ ๋ง ์ด๋ ดํ์ด ์์๋ ๋ณด์ ์ด์๋ค์ ๋ํด ์์ธํ ๋ค์ฌ๋ค ๋ณผ ์ ์์๊ณ , ์ด๋ฅผ ๋จ์ํ HTML ํ๋กํผํฐ๋ก ํด๊ฒฐํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ๋ถํฐ HTTP ๋ณด์ ํค๋๋ก ํด๊ฒฐํ๋ ์์ธํ ๋ฐฉ๋ฒ๊น์ง๋ฅผ ๋ฐฐ์ธ ์ ์์๋ค.
๐ก ์๋กญ๊ฒ ์๊ฒ ๋ ์
1.dangerouslySetInnerHTML
์์ฑ์ด ์กด์ฌํ๋ ์ด์ ๋, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ์กํธ์์๋ XSS๋ฅผ ๋ฐฉ์ดํ๊ธฐ ์ํ ์ด์ค์ผ์ดํ ์์ ์ด ์กด์ฌํ๊ณ , ์ด ์์ฑ์ด๋ props๋ก ๋๊ฒจ๋ฐ๋ ๊ฐ์ ๊ฒฝ์ฐ์๋, ๊ฐ๋ฐ์์ ํ์ฉ๋๋ ๋ฐ๋ผ ์๋ณธ ๊ฐ์ด ํ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ค์ผ์ดํ ์์ ์ด ์ํ ์ ๋๋ค!
2.<a>
ํ๊ทธ์href
๊ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์กด์ฌํ๋ฉด ์ด๋ฅผ ์คํํด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์, ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ผ๋ก ์ด๋ํ์ง ์๋๋ก ์ ์ ํ ์ ํ์ ๋ฌ์ผ ํ๋ค
3. OWASP์์ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ณต๊ฐํ๋ 10๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ทจ์ฝ์ ์ ์ฃผ๋ชฉํ์ โญ
๐ฅ ์ฑ ์ ์๋ ์ถ๊ฐ์ ์ธ ์๊ฒฌ
1. '์ด์ค์ผ์ดํ ์์ '์ด๋?
- ํน์ ๋ฌธ์๊ฐ ํด์๋๋ ๋ฐฉ์์ ๋ณ๊ฒฝํ์ฌ ์ฝ๋๊ฐ ์ ์ฉ๋์ง ์๋๋ก ํ๋ ์์
- ๋ฆฌ์กํธ์์ ์ด์ค์ผ์ดํ ์์ ์ HTML ํ๊ทธ๋ JavaScript ์ฝ๋ ๊ฐ์ ํน์๋ฌธ์๋ฅผ '๋ฌธ์ ๊ทธ๋๋ก' ํ์ํ๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ!
target="_blank"
์ ์ํ์ฑ
- ์ด ์์ฑ๊ฐ์ ์ฌ์ฉํ ๋๋ Tabnabbing ํผ์ฑ ๊ณต๊ฒฉ์ ๋ ธ์ถ๋ ์ ์๋ ์ํ ์กด์ฌ
- Tabnabbing ํผ์ฑ ๊ณต๊ฒฉ: HTML ๋ฌธ์ ๋ด์ ๋งํฌ๋ฅผ ํด๋ฆญํ์ ๋ ์๋กญ๊ฒ ์ด๋ฆฐ ํญ์์ ๊ธฐ์กด์ ๋ฌธ์์ธ location์ ํผ์ฑ ์ฌ์ดํธ๋ก ๋ณ๊ฒฝํด ์ ๋ณด๋ฅผ ํ์ทจํ๋ ๊ณต๊ฒฉ ๊ธฐ์
rel="noopener noreferrer"
์ ์ถ๊ฐํ์ฌ ์ํ์ ๋ฐฉ์งํ์- target="_blank" ์ฌ์ฉ ์ด์ ๋ฐ ํด๊ฒฐ
- content sniffing
- ๋ธ๋ผ์ฐ์ ๋ Content-Type ํค๋์ ์ง์ ๋ MIME ํ์ ์ฌ์ฉ
- IE๋ ์ธํฐ๋ท ์ต์ ์ ๋ฐ๋ผ MIME ํ์ ์ด ์๋ ๋ด์ฉ์ ๋ณด๊ณ ํ์ผ ํ์์ ์ ์ถํ๊ธฐ๋ ํจ
- ์ฆ, html๊ณผ javascript๊ฐ ์ ํ ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํ์ผ ํ์์ ์ถ์ธกํ์ฌ ์คํ์ ํด๋ฒ๋ฆฌ๊ธฐ๋ ํจ โ content sniffing
X-Content-Type-Options: nosniff
๋ฅผ ์ถ๊ฐํ์ฌ ์ํ์ ๋ฐฉ์งํ์- https: MIME ํ์ ๊ณผ Content-Type, ๊ทธ๋ฆฌ๊ณ nosniff
๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ํ ๋ ๊ณ ๋ คํด์ผ ํ๋ ์ฌํญ๊ณผ ํฅํ ํ๋ก ํธ์๋ ํธ๋ ๋ ์์์ ๋ฆฌ์กํธ๋ ์ด๋ป๊ฒ ๋ณํํ ์ง์ ๋ํ ๋ด์ฉ์ด๋ค. ์ด ์ฅ์์๋ ํนํ ์ง๊ธ๊น์ง ๋ฐฐ์ด ๋ด์ฉ์ ์ ๊ฒํด ๋ณผ ์ ์๋ ๋ฌธ์ ๋ค์ด ์กด์ฌํ๋๋ฐ ์คํฐ๋์๋ถ๋ค๊ณผ ๊ฐ์ด ํ์ด๋ณด๋ ์๊ฐ์ ๊ฐ์ง ์ ์์ด์ ์ข์๋ค ๐
1. ๋๊ธฐ ๋ถ์ฌ
์๋์์๋ ์ธ๊ธํ๋ฏ์ด ์ด ์ฑ ์ 952ํ์ด์ง๋ค(!) ๋ค๊ณ ๋ค๋๊ธฐ๋ ํ๋ค ์ ๋๋ก ๋ฌด๊ฑฐ์ด ์ฑ ์ด๊ณ , ์ต๊ทผ์ 400ํ์ด์ง์ง๋ฆฌ ์ฑ ๋ ๊ฒจ์ฐ ์๋ ํ๋ ๋์๊ฒ๋ ํผ์ ์ฝ๊ธฐ ๋ฒ๊ฑฐ์ด ๋๊ป์๋ค. ํ์ง๋ง ๊ฒฉ์ฃผ๋ก ์คํฐ๋๋ฅผ ์งํํ๋ฉด์ ์ฝ๋ค ๋ณด๋ ์ ๋ ๋ชป ์ฝ์ ๊ฒ ๊ฐ์๋ ์ด ์ฑ ๋ ๋๊น์ง ์ฝ์ด๋ผ ์ ์์๋ ๊ฒ ๊ฐ๋ค. ์์ง๋ 'ํผ์ ํ์์ผ๋ฉด ์ด๊ฑธ ๋ค ์ฝ์ ์ ์์์๊น??'๋ผ๋ ์๊ฐ์ด ๋งจ๋ ๋๋ ๊ฒ ๊ฐ๋ค ใ ใ ์ฑ์คํ ๋ถ๋ค๊ณผ ํจ๊ปํด์ ๋๊น์ง ๋ฌ๋ ค๊ฐ ์ ์์๊ณ , ์๋ ์์ฒด๋ง์ผ๋ก ๋ํํ ๋ ํฐ ์๋ฏธ๊ฐ ๋์ด์คฌ๋ ๊ฒ ๊ฐ๋ค.
2. ์๊ฒฌ ๊ณต์
์ด๋ฒ ์คํฐ๋์์ ๊ฐ์ฅ ์ข์ ์ ์ด ์๋์๋ค ์ถ๋ค! ๋ง์ฝ ์คํฐ๋๋ฅผ ํผ์ ์งํํ๋๋ผ๋ฉด ๋ด๊ฐ ์ฑ ์ ์ฝ์ผ๋ฉด์ ์๊ฒผ๋ ๊ถ๊ธ์ฆ์ ๋ํด์๋ง ์ ๋ณด๋ฅผ ์ฐพ์๋ดค์ ๊ฒ ๊ฐ์๋ฐ, ๋ค๋ฅธ ๋ถ๋ค์ด ์ด๋ฒ ํํธ๋ฅผ ์ฝ์ผ๋ฉด์ ์๊ฒผ๋ ๊ถ๊ธ์ฆ์ด๋ ์์ํ๋ ์ ๊น์ง ๋ค์ด๋ณด๋ฉด์ '์, ๋๋ ์ด๋ฐ ์๊ฐ ๋ชป ํด๋ดค๋๋ฐ ๋ฃ๊ณ ๋ณด๋ ๊ทธ๋ ๋ค?' ํ๋ ์๊ฐ์ด ์ ๋ง ๋ง์๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋งํผ ๋ ์นด๋ก์ด ์ง๋ฌธ๋ค๋ ๋ง์๊ณ ๊ทธ ๊ณผ์ ์์ ๋ ๋ง์ด ๋ฐฐ์ด ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๋๊ตฐ๊ฐ ์ง๋ฌธ์ ๋งํ๋ฉด ๋ฉ์ง๊ฒ ๋๋ตํด์ฃผ์๋ ๋ถ๋ ๊ณ์ จ๊ณ , ๊ฒฝํ๋ด์ ์๊ฐํด ์ฃผ์๋ ๋ถ๋ ๊ณ์ จ์ผ๋ฉฐ, ๋ค๊ฐ์ด ๊ทธ ํ๋์ ์ง๋ฌธ์ ๋ํ ๋ต์ ์์๋ณด๋ ์๊ฐ์ ๊ฐ์ง๊ธฐ๋ ํ๋ค. ๋งค ์คํฐ๋์์ ์ด๋ฐ ๊ฒฝํ์ ํ ์ ์๋ ์คํฐ๋๋ ์ ๋ง ๋๋ฌธ๋ฐ, ๋ค์ ํ๋ฒ ์คํฐ๋์์ ๋๋ฌด ์ ๋ง๋ฌ๋ค๋ ์๊ฐ์ด ๋ค์๋ค ๐
1. ๋ฐํ ๋งก์ ํํธ๊ฐ ์๋๋ฉด ์ค๋น๋ฅผ ์ํํ ํ๊ฒ ๋๋ค...
์ด๊ฑด ๋๋ง ๊ทธ๋ฌ์ ์๋ ์์ง๋ง... ๊ฒฉ์ฃผ์ ๊ฒฉ์ฃผ๋ก ๋ฐํ ๋ด๋น์ด ์ ํด์ ธ ์๋ ์คํฐ๋์ด๋ค ๋ณด๋ ๋ด๊ฐ ๋ฐํ๋ฅผ ๋งก์ ๋ถ๋ถ์ด ์๋๋ผ๋ฉด ์๋์ ์ผ๋ก ์ค๋น๋ฅผ ์ํํ ํด ๊ฐ๋ ๊ฒฝํฅ์ด ์์๋ค. ๊ทธ๋์ ๋ค๋ฅธ ์คํฐ๋์์๋ ๊ทธ๋ ๋ฐํ ๋ด๋น์ ๊ทธ๋ ๋๋ค์ผ๋ก ๊ฒฐ์ ํ๋ ์คํฐ๋๋ ์๋ค๊ณ ๋ค์๋๋ฐ ๊ทธ๋ ๊ฒ ํ๋ฒ ํด ๋ณผ๊ฑธ ๊ทธ๋ฌ๋ ํ๋ ์์ฌ์์ด ์ด์ง ์์๋ค ๐ ํ์ง๋ง ๊ทธ๋ฌ์ผ๋ฉด ํ์๋ค์ ๋ถ๋ด์ด ์ข ๋ ์ฌ๋ผ๊ฐ๊ธด ํ์ ๊ฒ ๊ฐ๋ค ๐ค ์คํฐ๋ ํ์๋ค์ ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ์ ํํด์ผ ํ ๊ฒ ๊ฐ๋ค.
2. ํ๋ฒ ๋ณธ ๊ฑฐ ๊ฐ์ง๊ณ ์๋ฒฝํ๊ฒ ์ดํดํ๊ธฐ๋ ์ด๋ ต๋ค!
์ด๊ฑด ์์ฌ์ด ์ ์ด ์ง์ง ์์ด์ ์ฅ์ด์ง๋ธ ์์ฌ์ด ์ ์ด๋ค.(ใ ใ ) ํ์๋ค์ด ๋ชจ๋ ๊ณต๊ฐํ๋ ์๊ธฐ์ง๋ง, ์ฑ ์์ฒด๊ฐ ์๋ ์ด๋ง์ด๋งํ๊ณ ๋์ด๋๋ ์๋ ํธ์ด๋ผ ํ๋ฒ ํ๋ ๊ฒ์ผ๋ก ์จ์ ํ ์ดํดํ๊ธฐ๋ ์ด๋ ต๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๋ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์๋กญ๊ฒ ์๊ฒ ๋ ๋ด์ฉ๋ ๋ง์๊ณ , ์๋ชป ์๊ณ ์์๋ ๋ด์ฉ๋ ๋ง์์ด์ ๊ทธ๋ฐ ๋ถ๋ถ๋ค์ ๋ค ์๋ฒฝํ๊ฒ ๋ฐ๋ก์ก๊ธฐ ์ํด์๋ ์ฌ๋ฌ ๋ฒ ์ฑ ์ ๋ค์ ์ฝ์ด๋ณด๊ณ ์ค์ ๋ก ์ ์ฉํด ๋ณด๋ ์ฐ์ต์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
์๋ง ์ด ์คํฐ๋์์ ๋ด๊ฐ ์ ์ผ ์ค๋ ฅ์ด ๋ถ์กฑํ๋ค๊ณ ๋งํด๋ ๊ฒธ์์ด ์๋ ์ ๋๋ก ์ ๋ง ์ฐ์ํ๊ณ ์ด์ ์ ์ธ ํ์๋ค๊ณผ ํจ๊ปํ ์ ์์๋ ๊ฒ ๊ฐ๋ค. ๋ด๊ฐ ๋ฐฐ์๊ฐ๋ ๊ฒ ์ ๋ง ๋ง์์ ๋๋ ๋ด ๋ฐํ ์๊ฐ์ ์๋ก์ด ๋ด์ฉ๋ค์ ๊ฐ์ ธ์ ๋ณด๋ตํ๋ ค๊ณ ๋ง์ด ๋ ธ๋ ฅํ๋ ๊ฒ ๊ฐ๊ณ , ๊ทธ ๊ณผ์ ์์ ๋ ์ค์ค๋ก ์๊ฒ ๋ ๊ฒ๋ ๋ ์์ฃผ ๋ง์๋ ๊ฒ ๊ฐ๋ค ๐ ์ฌ์ค ๋์ ์คํฐ๋๋ผ๋ ๊ฒ ์ ์งํ๋๊ธฐ๊ฐ ์๊ทผํ ์ ๋ง ํ๋ค๋ค๋ ๊ฑธ ์๊ณ ์๋๋ฐ(ํนํ ์ฑ ์ด ๋๊บผ์ธ์๋ก) ์ด๋ ๊ฒ ๋๊น์ง ์งํ๋ ์ ์์๋ ๊ฑด ๊ฐ์์ ์ญํ ์ ์ ์ง์ผ์ฃผ๊ณ ๋ฐ๋น ๋ ์ฑ์คํ๊ฒ ์ฐธ์ฌํด ์ค ํ์๋ค ๋๋ถ์ด ์๋๊น ์ถ๋ค. ๋ฐ๋ณด์ ์ ํ๋ ์ค์ ์ ์ผ ์ํ ํ๋ ์ค์ ํ๋์๋ ๊ฒ ๊ฐ๋ค! ๋์ค์ ๊ฐ์ ๋ถ๋ค๊ณผ๋ ๋ค๋ฅธ ๋ถ๋ค๊ณผ๋ ์คํฐ๋๋ฅผ ๋ ์งํํด ๋ณด๊ณ ์ถ๋ค โบ๏ธ ๋ฆฌ์กํธ ๊ณ ์๊ฐ ๋๋ ๊ทธ๋ ๊น์ง ๐๐
4๋ช ์ ๋ฉค๋ฒ๊ฐ ๋๋ฌด ์ ๋ชจ์๋๊ฑฐ๊ฐ์์ ใ ใ ๋ณด๊ธฐ ์ข์๋ณด์์ด์ ใ ใ