๐ ๋ก๊ทธ์ธ ํ๋ก์ธ์ค ์ดํด
๐ JWT ํ ํฐ๊ณผ ์กฐ์ ๋ถ๊ฐ๋ฅ์ฑ ์ดํด
๐ ์ํธํ(์๋ฐฉํฅ ์ํธํ)์ ํด์ฑ(๋จ๋ฐฉํฅ ์ํธํ)
๐ Hash(๋จ๋ฐฉํฅย ์ํธํ)
๐ Key Stretching & Salt
์ฐ๋ฆฌ๊ฐ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ์ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ๋ก๊ทธ์ธ ๋ฒํผ์ ๋๋ฅด๊ฒ ๋๋ฉด, ๋ฐฑ์๋ ์๋ฒ๋ก loginAPI ์์ฒญ์ด ๋ ๋ผ๊ฐ๊ฒ ๋๊ณ , ๋ฐฑ์๋์์๋ ํด๋น ์ ์ ๋ฅผ Backend session์ ์ ์ฅํ๋ค.
๊ทธ ํ, session ID๋ฅผ ๋ถ์ฌํ์ฌ ๋ธ๋ผ์ฐ์ ๋ก ๋ณด๋ด์ค๋ค.
์ด๋, session ID๋ ๋ก๊ทธ์ธ์ ํด์ผ์ง๋ง ์ฌ์ฉํ ์ ์๋ ์๋น์ค์ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํฌ์ธํธ์ถฉ์ API, ํ๋กํ ์์ API๊ณผ ๊ฐ์ ์๋น์ค๊ฐ ์๋ค.
์ข ๋, ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํ์๋ฉด, ์ฐ๋ฆฌ๊ฐ ๋ก๊ทธ์ธํ์ฌ ํฌ์ธํธ๋ฅผ ์ถฉ์ ํ๋ค๊ณ ํด๋ณด์.
๋ฐฑ์๋์์๋ ์ ์์ด ํ์ธ๋์ง ์์ ์ ์ ๊ฐ ํฌ์ธํธ๋ฅผ ์ถฉ์ ํ๋ ๊ฒ์ ํ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ ๋ฅผ ์๋ณํ๊ธฐ ์ํด ์ถฉ์ ์ ์์ฒญํ ์ ์ ๊ฐ session ID๋ฅผ ๋ฃ์ด์ ํฌ์ธํธ ์ถฉ์ ์์ฒญ์ด ๋ค์ด์ค๋๋ก ํ๋ค.
๊ทธ ํ, ๋ฐฑ์๋์์๋ session ID๋ฅผ ํ์ธํ์ฌ ํฌ์ธํธ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ๋ง์ฝ, ์ ์์ด ํ์ธ๋์ง ์์๋ค๋ฉด ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ฐํํด์ค๋ค.
ํ์ง๋ง, ์ด๋ฌํ ๋ฐฉ์์๋ ๋ฌธ์ ์ ์ด ์กด์ฌํ๋ค.
์ ์ ์ ์ ๋ณด๋ฅผ ๋ฐฑ์๋ ์๋ฒ๋ก ๋ฐ๊ฒ ๋๋, ํ๋ฒ์ ์ฌ๋ฌ๋ช
์ ์ ๋ณด๋ฅผ ๋ฐ๋๋ฐ ํ๊ณ์ ์ด ์๋ค.
์ฆ, ์ ์์๊ฐ ๋ง์์ง์๋ก ๋ฐฑ์๋ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด์ง๊ณ , ์๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๊ฒ ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐฑ์๋ ์ปดํจํฐ๋ฅผ scale-upํ๊ฒ ๋์๋ค.
scale up
scale-up์ด๋ CPU ๋๋ Memory ๋ฑ์ ์
๊ทธ๋ ์ด๋ํ์ฌ ์ปดํจํฐ์ ์ฑ๋ฅ์ ์ฌ๋ ค์ฃผ๋ ๊ฒ์ด๋ค.
๋ฐฑ์๋ ์ปดํจํฐ์ ์ฑ๋ฅ์ ์ฌ๋ฆฌ๋๋ผ๋ ์ ์์ ์๊ฐ ๋ง์์ง๊ฒ ๋๋ฉด ์ฌ์ ํ ์๋ฒ์ ๋ถํ๋ฅผ ์ด๋ํ๊ฒ ๋์๋ค.
๋ฐ๋ผ์ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ฐฑ์๋ ์ปดํจํฐ๋ฅผ ๋ณต์ฌํ์๋ค.
์ฆ, ์ ์ ์ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฐฑ์๋ ์ปดํจํฐ๋ฅผ ์ฌ๋ฌ ๋๋ก ๋ณต์ฌํด ์๋ฒ์ ๋ถํ๋ฅผ ๋ถ์ฐํ๋ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ ์ญ์, ๋ฌธ์ ๊ฐ ์์๋๋ฐ, ์ปดํจํฐ๋ฅผ ๋ณต์ฌํ ๋, session ์ ๋ณด๊น์ง ๋ณต์ฌํ์ง ์์ ์ ์ ์ ๋ก๊ทธ์ธ ์ ๋ณด๊ฐ ์๋ค๋ ๊ฒ์ด๋ค.
๊ฒฐ๊ตญ, ๋์ผํ ์ ์ ์ ๋ณด์ ๋ํด ๋ชจ๋ ๋ฐฑ์๋ ์ปดํจํฐ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ํฐ์ง๋ ๋ฌธ์ ๋ ์ฌ์ ํ ํด๊ฒฐํ์ง ๋ชปํ๋ค.
์ธ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ฌธ์ ๋ฅผ ๋ณด์ํ ๋ฐฉ๋ฒ์ด๋ฉฐ, ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๋ฐฑ์๋ ์ธ์
์ ์ ์ฅํ๋ ๊ฒ์ด ์๋๋ผ DB์ ์ ์ฅํ๋ ๊ฒ์ด๋ค.
DB๋ฅผ ๋๋๋ 2๊ฐ์ง ๋ฐฉ๋ฒ
1. ์์ง์ผ๋ก ๋๋๋ ์์งํํฐ์
๋
2. ์ํ์ผ๋ก ๋๋๋ ์ํํํฐ์
๋(์ค๋ฉ)
๋ฐ๋ผ์ ์ด์ ๋ API๋ฅผ ์์ฒญํ ๋, ์ด๋ค ๋ฐฑ์๋ ์ปดํจํฐ์ ์ ์ํด๋ ๋๊ฐ์ ์์ฒญ์ฒ๋ฆฌ์ ์๋ต์ด ์ด๋ฃจ์ด์ง๊ฒ ๋์๋ค. ๋ํ ์ํ ํํฐ์
๋์ ํตํด DB๋ฅผ ๋๋์ด ์ ์ฅํ๊ธฐ ๋๋ฌธ์ DB์ ๋ถํ๊น์ง ๋ถ์ฐํ ์ ์๋ค.
DB์ ์ ์ฅํ ๋๋, ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ ์ธ์ ๋ฐฉ์์์ ๋์คํฌ ๊ธฐ๋ฐ์ ํ ํฐ ๋ฐฉ์์ผ๋ก ๋ฐ๋๊ฒ ๋์๋ค.
๋ก๊ทธ์ธ์ ํ ๋, ํ ํฐ์ ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌํ๊ณ ๋ธ๋ผ์ฐ์ ๋ ์ ์ฅ๊ณต๊ฐ์ ํ ํฐ์ ์ ์ฅํ๊ณ ์ด๋ ํ ํ๋์ ํ ๋ ํ ํฐ์ ๊ฐ์ด ๋ณด๋ด์ด ์ฌ์ฉ์๊ฐ ๋๊ตฐ์ง ์๋ณํ๋ค.
ํ์ง๋ง ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ, ๋ก๊ทธ์ธ์ ํ ๋๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํด๋น ์ ์ ๋ฅผ ํ์
ํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๋ค.
์๋ํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ค๋ ์๋๊ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Redis๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ์ฌ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
Redis๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํจํฐ๊ฐ ๊บผ์ก์ ๋, ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ๋ ๋จ์ ์ด ์์ง๋ง ์๋๊ฐ ๋น ๋ฅธ ์ฅ์ ์ด ์๋ค.
ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ก JWT ํ ํฐ ๋ฐฉ์์ด๋ค.
JWT ํ ํฐ์ ์ ์ ์ ๋ณด๋ฅผ ๋ด์ ๊ฐ์ฒด๋ฅผ ์ํธํ๋ฅผ ํตํด ๋ฌธ์์ด๋ก ๋ง๋ค์ด ์ํธํ๋ ํค(accessToken)๋ฅผ ๋ธ๋ผ์ฐ์ ๋ก ์ ๋ฌํด ์ค๋ค.
๋ฐฑ์๋๋ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ ์ํธํ ํค๋ฅผ ๋ณตํธํํ์ฌ ์ ์ ๋ฅผ ์๋ณํ ํ, ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ค.
JWT ํ ํฐ์๋ ํด๋น ํ ํฐ์ด ๋ฐ๊ธ ๋ฐ์์จ ์๋ฒ์์ ์ ์์ ์ผ๋ก ๋ฐ๊ธ์ ๋ฐ์๋ค๋ ์ฆ๋ช ์ํ๋ signature๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ DB๋ฅผ ์ด์ด๋ณด์ง ์๊ณ ๋ ์๋ณํ ์ ์๋ค.
JWT ํ ํฐ์ ๊ตฌ์ฑ
1. header : ํ ํฐ์ ํ์
, ์ํธํ์ ์ฌ์ฉํ ์๊ณ ๋ฆฌ์ฆ ์ ๋ณด
2. payload : ํ ํฐ ๋ฐํ์ ๋ณด(๋๊ตฌ์ธ์ง, ์ธ์ ๋ฐํ๋์๋์ง, ์ธ์ ๋ง๋ฃ๋ ๊ฒ ์ธ์ง)
3. signature : ํ ํฐ์ ๋น๋ฐ๋ฒํธ
๋ก๊ทธ์ธ์ ํตํด accessToken์ ๋ฐ์์ค๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
๋ฐ์์จ accessToken์๋ ์ ์ ๊ฐ ๋ก๊ทธ์ธ ํ ๊ธฐ๋ก์ด ์ ์ฅ๋์ด ์๋ค.
๋ฐ๋ผ์ ์ ์ ์ ๋ณด๋ฅผ ํ์ธํด์ผ ํ๋ API๋ฅผ ์ฌ์ฉํ ๋, accessToken์ ์ฒจ๋ถํด์ ์์ฒญํด์ผ์ง ์ ์ ์ ๋ณด๋ฅผ ํ์ธ ํ ํด๋น API๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์์ ๋ฐ์์จ accessToken์ ๋ณตํธํ ํ์ฌ ์ ์ ์ ๋ณด๋ฅผ ๊ฒ์ฆํ๋ ๊ณผ์ ์ ์ธ๊ฐ๋ผ๊ณ ํ๋ค.
๋๊ตฐ๊ฐ ํ ํฌ์ ๊ฐ์ ธ๊ฐ๋ค๋ฉด ํ ํฐ์ ์ ๋ณด๋ฅผ ์์ ์๋ค.
์ฆ, JWTํ ํฐ์ ์ํธํ๋ ํ์ง๋ง ๋๊ตฌ๋ ์ด์ด๋ณผ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
๋ฐ๋ผ์, ์ค์ํ ์ ๋ณด๋ JWT ํ ๊ทผ์ ์ ์ฅํด์๋ ์๋๋ค.
์ํธํ์ ๋ณตํธํ
1. Encoded : ์ํธํ
ํ์ง๋ง, ๋๊ตฌ๋ ์ง ๋ณตํธํํ์ฌ ์ด์ด ๋ณผ ์๋ ์์ง๋ง, ํ ํฐ์ ๋ด์ฉ์ ์กฐ์ํ ์๋ ์๋ค.
ํ ํฐ์ ์์ฑํ ๋ signature
(ํ ํฐ์ ๋น๋ฐ๋ฒํธ)๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ์ด ๋น๋ฐ๋ฒํธ๋ฅผ ๋๊ตฌ๋ ์๋ ๊ฒ์ ์๋๋ค. ๋ฐ๋ผ์ ๋ฐฑ์๋์์ signature๋ฅผ ํตํด ํ ํฐ ์กฐ์ ์ฌ๋ถ๋ฅผ ์ ์ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฌ๋๋ค์ด ๋น๋ฐ๋ฒํธ๋ฅผ ๋ง๋ค ๋, ๋ชจ๋ ์ฌ์ดํธ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ค๋ฅด๊ฒ ์ค์ ํ๋ ๊ฒฝ์ฐ๋ ๋ง์ง ์๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฅํ ๋, ๋น๋ฐ๋ฒํธ ๊ทธ๋๋ก ์ ์ฅ์ ํ๊ฒ๋๋ฉด, ํดํน์ด ๋ฐ์ํ์ ๋, ํด๋น ํ์ด์ง ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ฌ์ดํธ๊น์ง ์ถ๊ฐ์ ์ธ ํดํน ์ํ์ด ๋ฐ์ํ๊ฒ ๋๋ค.
๋ฐ๋ผ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฅํ ๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํ์ฌ ์ ์ฅํ๊ฒ ๋๋ค.
ํ์ง๋ง ์ํธํ์ ์ฌ์ฉ๋ ํค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณตํธํ ํ ์๋ ์๋ค. ๋ฐ๋ผ์ ์์ ํ ์ํธํ๊ฐ ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํด์ฑ์ด ๋ํ๋๊ฒ ๋์๋ค.
์๋ฐฉํฅ ์ํธํ
: ์ํธํ์ ๋ณตํธํ๊ณผ์ ์ ํตํด ์ก ใป ์์ ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง๋ฅผ ์์ ํ๊ฒ ์ํธํํ๊ณ ํ๋ฌธ์ผ๋ก ๋ณตํธํํ๋ ๊ณผ์ .๋จ๋ฐฉํฅ ์ํธํ
: ํด์ฑ(Hashing)์ ์ด์ฉํ ์ํธํ ๋ฐฉ์์ผ๋ก ์๋ฐฉํฅ๊ณผ๋ ๋ค๋ฅธ ๊ฐ๋
์ผ๋ก, ํ๋ฌธ์ ์ํธ๋ฌธ์ผ๋ก ์ํธํ๋ ๊ฐ๋ฅํ์ง๋ง ์ํธ๋ฌธ์ ํ๋ฌธ์ผ๋ก ๋ณตํธํ ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ.ํด์๋ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋งคํ์์ผ ์์ ํ ๋ค๋ฅธ ์ํธํ๋ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
ํด์๋ ๋จ๋ฐฉํฅ ์ํธํ์ด๊ธฐ ๋๋ฌธ์ ๋ณตํธํ ์ฆ, ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๊ตฌํ ์ ์๋ค.
Password
123456 ์ ํด์ ํจ์์ย ๋๋ ค์ ๋ค์ด์ ์คํธ์ธ fs32a3xzz0 ์ ์์ฑํ๊ณ ย ํด๋น ๋ฐ์ดํฐ๋ฅผ DB ์ ์ ์ฅํ๋ค.
DB์ ์ ์ฅ๋ ๋ค์ด์ ์คํธ๊ฐ ์ค๋ น DB๊ฐ ๋์ถ๋๋ค ํ๋๋ผ๋ fs32a3xzz0 ์ ๋จ๋ฐฉํฅ์ผ๋ก ํด์ฑ ๋ ๋ฌธ์๋ผ ๋ณตํธํ ํ ์๊ฐ ์๋ค.
์ด๋ ํ ์๊ณ ๋ฆฌ์ฆ ์ํธํ๋ฅผ ํตํด ๋์จ ๊ฐ์ ๋ณด๊ณ ๊ทธ ๊ฐ์ด ๋์ฌ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์ค์บํ๋ ๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ์ ์ด์ฉํ์ฌ ๋ฌด์์ ๋ค ๋์ ํด ๋ณตํธํ ํ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ํด์๋ก๋ง ๋ณํํ๋ค๊ณ ํด์ ๋ณด์์ด ์๋ฒฝํ ๊ฒ์ ์๋๋ค.
Key Stretching(ํค-์คํธ๋ ์นญ)์ ๊ฐ๋ฐ์๊ฐ ํ์๋ฅผ ์ ํด์ Hash ํจ์๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ผ๋ก ํจ์ค์๋๋ฅผ ์ ์ฅํ ๋ ๊ฐ์ฅ ์ฝ๊ฒ ์๊ฐ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฌ๋ฌ ๋ฒ ํด์ ํจ์๋ฅผ ๋๋ฆฌ๋๋ผ๋ ๊ฒฐ๊ตญ ๋ช ๋ฒ ๋๋ ธ๋์ง ํ์๋ง ์๊ฒ ๋๋ค๋ฉด, ๊ณต๊ฒฉํ๋ ์ ์ฅ์์ ์์ง์ฑ ์๋ ๋ํ ๋ฌธ์์ด๋ค์ ์ถ๋ ค๋ณด๋ฉด ์ถฉ๋ถํ ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ๋ค.
๋ํ ๊ฐ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ค์ด ์๋ค๋ฉด ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ๊ณ ๋ ๋ค์ ์ฌ์ฉ์์ password ๋ฅผ ์์๋ผ ์ ์๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋์ ํ ๊ฒ์ด ๋ฐ๋ก ์ํธ์ด๋ค.
Salt(์ํธ)๋ ํด์ํจ์๋ฅผ ๋๋ฆฌ๊ธฐ ์ ์ ์๋ฌธ์ ์์์ ๋ฌธ์์ด์ ๋ง๋ถ์ด๋ ๊ฒ์ ๋งํ๋ค. ์๋ฏธ ๊ทธ๋๋ก ์๋ฌธ์ ์์์ ๋ฌธ์์ด์ ๋ถ์ด๋ ์๋ฏธ์ ์๊ธ์น๋ค(Salting)์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ค๋์ ํ์๊ฐ์ ์ ์ฌ์ฉ๋๋ ๋น๋ฐ๋ฒํธ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋, ์ด๋ ํ ๋ถ๋ถ์ ๊ณ ๋ คํด์ผ ํ๋์ง์ ๋ํ์ฌ ํ์ตํ์๋ค. ์ ์ ์ ๋น๋ฐ๋ฒํธ๋ ๋ณด์๊ณผ ๊ด๋ จ๋ ๋ฏผ๊ฐํ ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ฐฑ์๋ ์ ์ฅ์์ ์ ์คํ๊ณ ์ฒ ์ ํ๊ฒ ๊ด๋ฆฌ ๋์ด์ผ ํ๋ค. ์ค๋ ๋ฐฐ์ด ํ์๊ฐ์ ์ ์ํธํ๋ฅผ ํตํด ์์ผ๋ก ๋ง๋ค์ด ๋๊ฐ ๋ก๊ทธ์ธ์ ๋ํ ํ์ต์ ๋ฏธ๋ฆฌ ์ค๋นํ๋ ๋จ๊ณ๋ผ๊ณ ์๊ฐํ๋ค.