- Published on
๐ DayGrid
์๋น์ค ์๊ฐ
์ฃผ๊ฐ ๋ฐ ์๊ฐ ๋จ์์ ์ผ์ ์ ํ๋์ ํ์ ํ ์ ์๊ณ , ๋ง์ถคํ ์์ ๋ฐ ๋๋ฐ์ด ์ค์ ์ด ๊ฐ๋ฅํ ์ผ์ ๊ด๋ฆฌ ์ฌ์ดํธ






์ฌ์ฉ ๊ธฐ์ ๋ฐ ๋์ ์ฌ์
UI ๊ฐ๋ฐ์ ์ง์คํ ์ ์์ผ๋ฉฐ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๊ฐ ์ฝ๋์ ์ฌ์ฌ์ฉ, ๋ถ๋ฆฌ ๋ฐ ๊ฒฐํฉ์ ์ฉ์ดํ๊ฒ ํด์ฃผ์ด ์ฝ๋ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋ณด๋ค ๊ฐํธํ๊ฒ ํ ์ ์์ต๋๋ค. ๋ํ, ์ปค๋ฎค๋ํฐ๊ฐ ๋ฐฉ๋ํฉ๋๋ค.
์ปดํ์ผ ๋จ๊ณ์์ ์ค๋ฅ๋ฅผ ํ์ธํ์ฌ ์ค์๋ฅผ ์ค์ผ ์ ์๊ณ , ๋ช ์์ ์ธ ์ ์ ํ์ ์ง์ ์ผ๋ก ์๋๋ฅผ ๋ช ํํ๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
๋ชจ๋ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ์ก์ ์ผ๋ก ์ ์ํ๊ณ , ์ก์ ์ ๋ณด์ ๊ธฐ๋ฐํ์ฌ ๋ฆฌ๋์์์ ์ํ๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ์ํ๋ฅผ ๋์ฑ ์ฝ๊ฒ ์์ธก ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ ์ง๋ณด์ ์ธก๋ฉด์ ๊ธ์ ์ ์ธ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
์๋ฒ ์ํ๋ฅผ ์ฝ๊ฒ ๊ฐ์ ธ์ค๊ณ ์บ์ฑ, ๋๊ธฐํํ ์ ์๋๋ก ๋์์ฃผ์ด ๋คํธ์ํฌ ์์ฒญ์ ์ต์ ํํ๊ณ , ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
fetch๋ก๋ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ ๊ณตํ์ง๋ง, ๋์ฑ ๋์ ๋ธ๋ผ์ฐ์ ์ง์ ๋ฒ์, ์์ฒญ ๋ฐ ์๋ต ์ธํฐ์ ํฐ ๊ธฐ๋ฅ, JSON ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ํ์ฑ์ ํด์ฃผ๋ ๋ฑ์ ์ฅ์ ์ผ๋ก ์ธํด ๋์ ํ์ต๋๋ค.
์๋ฒ ๊ตฌํ์ด ์ฒ์์ด๋ผ ๊ฐ๊ฒฐํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ๋ผ์ฐํ ์ด ๋งค๋ ฅ์ ์ด์์ต๋๋ค. ๋ํ, ๋ผ์ฐํธ ํธ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ URL์ ๋ํ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , HTTP ๋ฉ์๋(GET, POST ๋ฑ)๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์์ต๋๋ค.
ํด๋น ํ๋ก์ ํธ๋ ์ฃผ๋ ๋ฐ์ดํฐ๊ฐ '๋ ์ง', '์ ๋ชฉ', '๋ด์ฉ' ๋ฑ์ผ๋ก, ์ถํ์ ํ์ฅ๋๊ธฐ๋ณด๋ค๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๋ช ํํ ์ ํ ๋ฐ์ดํฐ๋ผ๊ณ ํ๋จํ์๊ธฐ์ ์ ํฉํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
โผ๏ธ ํ๋ก์ ํธ ์ด์
๐ง ๋ฉ์ฉกํ๋ ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ๋ง ํ๋ฉด ๊ฐ์๊ธฐ 404์๋ฌ? (feat.webpack)
'/diary' ๊ฒฝ๋ก๋ก ๋ค์ด์ด๋ฆฌ๋ฅผ ํ์ธํ๋ ๋์ค ๋ค์ด์ด๋ฆฌ ํ์ด์ง์์ ์ฒ์ ๋ ๋๋ง์ ์ ๋๋ค๊ฐ ์๋ก๊ณ ์นจ๋ง ํ๋ฉด 404 ์๋ฌ๊ฐ ๋ฐ์ํ์์ต๋๋ค ๋คํธ์ํฌ ํญ์์ ํ์ธํด ๋ณด๋, ์ฒ์์๋ '/diary/id'๋ผ๋ ์์ฒญ์ ์ ๋ณด๋ด๋ค๊ฐ ์๋ก๊ณ ์นจ๋ง ํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ '/diary/index.bundle.js'๋ผ๋ ๊ฒฝ๋ก๋ก ์์ฒญ์ ๋ณด๋ด๊ณ ์์์ต๋๋ค.
ํด๋น ๋ฌธ์ ๋ React Router๋ก ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ผ์ฐํ
์ ๊ตฌํํ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ์ํ๋ ๋ฌธ์ ์์ต๋๋ค.
ํ์ด์ง ์ ํ ์์ด URL์ ๋ณ๊ฒฝํ ์ ์๋ ๋ธ๋ผ์ฐ์ ์ ํ์คํ ๋ฆฌ API๋ฅผ ํ์ฉํ์์ผ๋, ์๋ก๊ณ ์นจํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋๋ฐ
์ด ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ก๊ณ ์นจํ ๋๋ง๋ค ์๋ฒ์ ํ์ฌ URL์ ํด๋นํ๋ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ง์ฝ '/diary/:id' ๊ฐ์ ์๋ธ ๊ฒฝ๋ก์์ ์๋ก๊ณ ์นจ์ ํ๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ํด๋น ์๋ธ ๊ฒฝ๋ก์ ๋ํ ๋ฆฌ์์ค๋ฅผ ์๋ฒ์ ์์ฒญํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์๋ฒ์๋ ๊ทธ๋ฐ ๊ฒฝ๋ก์ ๋ํ ํ์ผ์ด ์์ด์ 404 ์๋ฌ๋ฅผ ๋ฐํํ๊ฒ ๋๋ ๊ฒ์ด์์ต๋๋ค.
๊ทธ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์นํฉ์ output.pubdivcPath ์ต์
์ '/'๋ก ์ค์ ํ์์ต๋๋ค.
ํด๋น ์ต์
์ ๋น๋ํ ๊ฒฐ๊ณผ๋ฌผ์ด ์์นํ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ ์ต์
์ด๋ฉฐ pubdivcPath๋ฅผ '/'๋ก ์ค์ ํ๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ํญ์ ๋ฃจํธ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ํด์ํ์ฌ ๋ฃจํธ ๊ฒฝ๋ก์์ ๋ก๋ํ๋ ค๊ณ ์๋ํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๊ฒ ๋๋ค๋ฉด ์๋ธ ๊ฒฝ๋ก์์๋ ๋ฌธ์ ์์ด ๋น๋ํ ๊ฒฐ๊ณผ๋ฌผ์ ๋ก๋ํ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ํ ๊ฐ์ ์๋ฆฌ๋ก ์นํฉ์ devServer ์ค์ ์์๋ pubdivcPath๋ฅผ '/'๋ก ์ค์ ํด์ผ ํ๋ฉฐ. ํญ์ ๋ฃจํธ ๊ฒฝ๋ก์์ ๋น๋ํ ๊ฒฐ๊ณผ๋ฌผ์ ์ ๊ณตํ๊ฒ ๋ฉ๋๋ค.
์ด ๊ฒฝํ์ ํตํด ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ผ์ฐํ ์ ๋์ ๋ฐฉ์๊ณผ ์นํฉ ์ค์ ์ ๋ํด์ ์ข ๋ ๊น์ ์ดํด๋ฅผ ํ๊ฒ ๋์์ต๋๋ค. ํนํ, ์นํฉ์ output.pubdivcPath ์ต์ ๊ณผ devServer ์ค์ ์ ์ค์์ฑ์ ์ฒด๊ฐํ์์ต๋๋ค.
๐ง ReactQuill๋ฅผ ์ด์ฉํ ์ด๋ฏธ์ง ์ ๋ก๋ ๊ธฐ๋ฅ ๊ตฌํ
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ค์ด์ด๋ฆฌ ์์ฑ ์ ์ด๋ฏธ์ง๋ฅผ ์
๋ก๋ํ๋ ๊ธฐ๋ฅ์ด ํ์ํ์ต๋๋ค. ์๋ฒ ์
๋ก๋๋ ์๋ฒ์๊ฒ ์ด๋ฏธ์ง๋ฅผ ์
๋ก๋ํ๊ณ ํด๋น ์ด๋ฏธ์ง์ URL์ ๋ฐ์์ ์๋ํฐ์ ์ฝ์
ํ๋ ๋ฐฉ์์ผ๋ก ์ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด ํ์ํ ๊ธฐ๋ฅ๋ค์ ์ ์ํ์์ต๋๋ค.
- ์ด๋ฏธ์ง ํ์ผ์ ์ ํํ ์ ์๋ UI๋ฅผ ์ ๊ณต.
- ์ ํํ ์ด๋ฏธ์ง ํ์ผ์ ์๋ฒ์ ์
๋ก๋.
- ์ ๋ก๋๋ ์ด๋ฏธ์ง์ URL์ ์๋ํฐ์ ์ฝ์ .
์ด๋ฏธ์ง ํ์ผ์ ์ ํํ ์ ์๋ UI๋ ์๋ํฐ๋ก ์ฌ์ฉํ๋ ค๋ React Quill์์ ์๋ image ๋ฒํผ์ Handler๋ฅผ ์ด์ฉํ์๊ณ
์ ํ๋ ์ด๋ฏธ์ง ํ์ผ์ ์๋ฒ์ ์
๋ก๋ํ๊ธฐ ์ํด ์ด๋ฏธ์ง ํ์ผ์ ์ ์ ํ ํ์์ผ๋ก ๋ณํํด์ผ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด FormData ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์๋ฒ์์ ๋ฐ์ ์๋ต์ ํตํด ์ด๋ฏธ์ง URL์ ์๋ํฐ์ ์ฝ์
ํด์ผ ํ์ต๋๋ค. ์ด ์์
์ ์ํด React Quill์ API๋ฅผ ํ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์ด๋ฏธ์ง URL์ ์๋ํฐ์ ํ์ฌ ์ปค์ ์์น์ ์ฝ์
ํ๋๋ก ๊ตฌํํ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ์ด๋ฏธ์ง ์
๋ก๋ ํ์๋ ์๋์ผ๋ก ์๋ํฐ์ ์ด๋ฏธ์ง๊ฐ ์ฝ์
๋์ด ์ฌ์ฉ์๊ฐ ์ํ๋ ์์น์ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋๋๋ก ํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ด๋ฌํ ๊ณ ๋ฏผ์ ๋ฐํ์ผ๋ก, ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Redux์ ์ปค์คํ
ํ
, ๊ทธ๋ฆฌ๊ณ ์๋ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Quill์ ํ์ฉํ์์ต๋๋ค.
์ด๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๋ฉด ํด๋น ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์ ์
๋ก๋ํ๊ณ , ์
๋ก๋๋ ์ด๋ฏธ์ง์ URL์ ์๋ํฐ์ ์ฝ์
ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์, React Quill ์๋ํฐ์ ํ์ฅ์ฑ, FormData ๊ฐ์ฒด๋ฅผ ์ด์ฉํ ํ์ผ ์
๋ก๋ ๋ฑ ๋ฐฐ์ธ ์ ์์์ต๋๋ค.
๐ง Access Token๊ณผ Refresh Token์ ์ ์ฅ ๋ฐฉ์๊ณผ ๋ณด์
ํ์์ ๋๋ก ์ด์ํ๊ธฐ ์ํด ๋ก๊ทธ์ธ์ ๊ตฌํํ๋ค๋ณด๋ ํ๋ก์ ํธ ์ด๊ธฐ์๋ Access Token๊ณผ Refresh Token์ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ณ ํ๋ ๊ฒ์ผ๋ก ์๊ฐํ์ต๋๋ค.
์ด ๋ฐฉ์์ ๊ฐ๋จํ๊ณ ๊ตฌํ์ด ์ฉ์ดํ๋ค๋ ์ฅ์ ์ด ์์์ง๋ง, ๋ณด์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
๋ง์ฝ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๊ฐ XSS(Cross-Site Scripting)๋ฑ์ ๊ณต๊ฒฉ์ ๋นํ๋ฉด, ๊ณต๊ฒฉ์๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ถฉ๋ถํ ์ ๊ทผํ ์ ์๊ณ , ์ด๋ก ์ธํด ํ ํฐ์ด ์ ์ถ๋ ์ํ์ด ์์์ต๋๋ค.
๊ทธ๋์ ์ํ์ ์๋ฐฉํ๊ณ ์ ๋จผ์ ์ฌ์ฉ์๋ก๋ถํฐ ์
๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ง ์๊ณ , sanitize-html ๋ชจ๋์ ์ด์ฉํด์ ์ด๊ท ์ฒ๋ฆฌ๋ฅผ ํ ๋ค HTTPOnly ์ฟ ํค๋ฅผ ์ด์ฉํ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํ ์ ๊ทผ์ ๋ฐฉ์งํ๋ ์์ผ๋ก ๊ตฌํํ๊ณ ์ ํ์ต๋๋ค.
ํ ํฐ์ ๋ณด์์ฑ์ ๋์ด๋ ๋์์ ์ฌ์ฉ์ฑ์ ์ ์งํ๋ ์๋ก์ด ์ ์ฅ ๋ฐฉ์์ ๋ชจ์ํ๊ฒ ๋์์ต๋๋ค.
์ด๋ฅผ ์ํด, Access Token์ ๋ฉ๋ชจ๋ฆฌ์, Refresh Token์ HttpOnly ์ฟ ํค์ ์ ์ฅํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
Access Token์ ์ฌ์ฉ์๊ฐ ์ฌ์ดํธ๋ฅผ ์ด์ฉํ๋ ๋์์๋ง ํ์ํ๋ฏ๋ก, ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ๊ฒ์ด ์ ํฉํ๋ค๊ณ ํ๋จํ์์ต๋๋ค.
๋ฐ๋ฉด, Refresh Token์ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๊ธฐ ์ํด ํ์ํ๋ฏ๋ก, HttpOnly ์ฟ ํค์ ์ ์ฅํ๋ ๊ฒ์ด ์ ์ ํ๋ค๊ณ ํ๋จํ์์ต๋๋ค.
์ด๋ ๊ฒ ๊ตฌํํ ๊ฒฐ๊ณผ, ํ ํฐ ์ ์ถ ์ํ์ ํฌ๊ฒ ์ค์ผ ์ ์์๊ณ ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์์ ์ ์ผ๋ก ์ ์งํ ์ ์๊ฒ ๋์์ต๋๋ค.
๋ํ, ์ด ๊ณผ์ ์์ ๋ฉ๋ชจ๋ฆฌ์ HttpOnly ์ฟ ํค๋ฅผ ์ด์ฉํ ํ ํฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ธ ์ ์์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ์น ๋ณด์์ ๋ํ ์ดํด๋๋ฅผ ๋์ผ ์ ์์์ต๋๋ค.
๐ง Access Token ๋ง๋ฃ์ ๋์ํ๋ Refresh Token ํ์ฉ๊ณผ ์์ฒญ ์ฌ์๋ ๋ฐฉ๋ฒ
ํ์์ธ์ฆ์ด ํ์ํ ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์ API ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค Access Token์ ํค๋์ ํฌํจ์์ผ ์ธ์ฆ์ ์งํํ์์ต๋๋ค.
ํ์ง๋ง Access Token์ ๋ณด์์์ ์ด์ ๋ก ๋ง๋ฃ ์๊ฐ์ด ์งง๊ฒ ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์, ์ฌ์ฉ์๊ฐ ์ค๋ซ๋์ ํ๋์ ํ์ง ์๊ฑฐ๋, Token์ด ๋ค๋ฅธ ์ด์ ๋ก ๋ง๋ฃ๋ ๊ฒฝ์ฐ 401 ์๋ฌ๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ๋ค์ด์ด๋ฆฌ๋ฅผ ์ฐ๋ค๊ฐ ๊ฐ์๊ธฐ ๋ก๊ทธ์์ ๋๋ ๋ฑ์ ๋ฌธ์ ์ ์ด ์๊ธฐ๊ธฐ ์์ํ๊ณ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ํ์ํ์์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, Access Token์ด ๋ง๋ฃ๋์์ ๋ Refresh Token์ ์ฌ์ฉํ์ฌ ์๋ก์ด Access Token์ ๋ฐ๊ธ๋ฐ๋ ๋ฐฉ์์ ๋์
ํ์์ต๋๋ค.
์ด๋ฅผ ์ํด ์๋ฒ์์๋ ์ฌ์ฉ์์ Refresh Token์ ๊ฒ์ฆํ๊ณ , ์ ํจํ๋ค๋ฉด ์๋ก์ด Access Token์ ๋ฐ๊ธํ๋ API๋ฅผ ์ ๊ณตํ์๊ณ
ํด๋ผ์ด์ธํธ์์๋ ์์ฒญ์ด๋ ์๋ต์ ๊ฐ๋ก์ฑ์ด ์ํ๋ ๋์์ ์ํํ ์ ์๊ฒ ํด์ฃผ๋ axios์ ์ธํฐ์
ํฐ ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ
API ์์ฒญ ์ 401 ์๋ฌ๋ฅผ ๋ฐ์ผ๋ฉด, ์ด API๋ฅผ ํธ์ถํ์ฌ ์๋ก์ด Access Token์ ๋ฐ์์ ๋ค์ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ์์ ๊ตฌํํ์์ต๋๋ค.
์ด๋ ๊ฒ ๊ตฌํํ ๊ฒฐ๊ณผ, ์ฌ์ฉ์๋ Access Token์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ์๋ ์๋น์ค ์ด์ฉ์ ๋ถํธํจ์ด ์๊ฒ ๋์์ต๋๋ค.
๋ํ, Refresh Token์ ์ฌ์ฉํ์ฌ ์๋ก์ด Access Token์ ๋ฐ๊ธ๋ฐ๋ ๋ฐฉ์์ ๋ณด์์ฑ๊ณผ ์ฌ์ฉ์ฑ์ ๋ชจ๋ ๋ง์กฑ์ํค๋ ํด๊ฒฐ์ฑ
์ด์์ต๋๋ค.
์ด ๊ณผ์ ์์ axios์ ์ธํฐ์
ํฐ ๊ธฐ๋ฅ ํ์ฉ๋ฒ๊ณผ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ
์ ๋์ ์๋ฆฌ์ ๋ณด์ ์์์ ๋ํด ๋ ๊น๊ฒ ์ดํดํ ์ ์์์ต๋๋ค.