2.React Testing library
React Testing Library
React Testing Library
๋ ์ฌ์ฉ์๊ฐ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์๋ฎฌ๋ ์ด์
ํ๋ ๋ฐฉ์์ผ๋ก React ๊ตฌ์ฑ ์์๋ฅผ ํ
์คํธํ๋ ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ํ
์คํธ ์ ํธ๋ฆฌํฐ์ด๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ํธ ์์ฉํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก DOM์ ์ฟผ๋ฆฌํ๊ณ ์กฐ์ํ๊ธฐ ์ํ ์ ํธ๋ฆฌํฐ ์ธํธ๋ฅผ ์ ๊ณตํ๋ DOM ํ
์คํ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ ๊ตฌ์ถ๋๋ค.
React Testing Library
๋ ๊ฐ๋ฐ์๊ฐ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ด ์๋ ๊ตฌ์ฑ ์์์ ๋์์ ์ด์ ์ ๋ง์ถ ํ
์คํธ๋ฅผ ์์ฑํ๋๋ก ๊ถ์ฅํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. ์ฆ, ํน์ ์์๋ ์คํ์ผ์ ์กด์ฌ์ ๊ฐ์ ํน์ ๊ตฌํ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ
์คํธํ๋ ๋์ ๊ตฌ์ฑ ์์๊ฐ ์ฌ์ฉ์ ์ํธ ์์ฉ ๋ฐ ํด๋น ์ํ ๋ณ๊ฒฝ์ ๋ํ ์๋ต์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ํ
์คํธ๋ฅผ ์์ฑํด์ผ ํ๋ค.
React Testing Library
๋ DOM
์ ์ฟผ๋ฆฌํ๊ณ render
, fireEvent
๋ฐ waitFor
์ ๊ฐ์ ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉํ๊ธฐ ์ํ ์ผ๋ จ์ ์ ํธ๋ฆฌํฐ๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ฌํ ์ ํธ๋ฆฌํฐ๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋จ์ถ ํด๋ฆญ ๋๋ ์์์ ํ
์คํธ ์
๋ ฅ๊ณผ ๊ฐ์ ๊ตฌ์ฑ ์์์์ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ์๋ฎฌ๋ ์ด์
ํ๊ณ ์ด๋ฌํ ์ํธ ์์ฉ์ ๋ํ ์๋ต์ผ๋ก ๊ตฌ์ฑ ์์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ ์ ์๋ค.
React Testing Library
๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ React ๊ตฌ์ฑ ์์์ ๋ํด ๋ณด๋ค ์์ ์ ์ด๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ํ
์คํธ๋ฅผ ์์ฑํ๋ ๋์์ ๋ณด๋ค ์ฌ์ฉ์ ์ค์ฌ์ ์ธ ํ
์คํธ ์ ๊ทผ ๋ฐฉ์์ ์ด์งํ ์ ์๋ค. ๊ตฌํ ์ธ๋ถ ์ฌํญ์ด ์๋ ๊ตฌ์ฑ ์์์ ๋์์ ์ด์ ์ ๋ง์ถค์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๊ตฌ์ฑ ์์์ ๋ด๋ถ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ ๋ ํ๋ ฅ์ ์ด๊ณ ์ต์ข
์ฌ์ฉ์์ ์๊ตฌ์ ๊ธฐ๋์ ๋ ์ ๋ถํฉํ๋ ํ
์คํธ๋ฅผ ์์ฑํ ์ ์๋ค.
The more your tests resemble the way your software is used, the more confidence they can give you. - RTL ๊ณต์๋ฌธ์ ํ ์คํธ๊ฐ ์ํํธ์จ์ด ์ฌ์ฉ ๋ฐฉ์๊ณผ ์ ์ฌํ ์๋ก ๋ ๋ง์ ์ ๋ขฐ๋ฅผ ์ป์ ์ ์๋ค.
React Testing Library๋ UI์ ํนํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
RTL์ ์ด๋ฆ ๊ทธ๋๋ก React ์ปดํฌ๋ํธ๋ฅผ ํ ์คํธ ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๋๊ตฌ์ด๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ณธ์ ์ผ๋ก CRA์ ๋ด์ฅ๋์ด ์๋ค. ๋ง์ฝ CRA๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ง์ ์ค์ ํ๋ค๋ฉด
npm install --save-dev @testing-library/react
๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ์ค์นํ๋ฉด ๋๋ค.
์ฟผ๋ฆฌ ํ์
get - ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ ํ๊ฒ์ ์ฐพ์ง ๋ชปํ ์ ์๋ฌ๋ฅผ ๋์ง๋๋ค.
find - ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ ํ๊ฒ์ ์ฐพ์ง ๋ชปํ ์ ์๋ฌ๋ฅผ ๋์ง๋๋ค.
query - ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ ํ๊ฒ์ ์ฐพ์ง ๋ชปํ ์ null์ ๋ฐํํ๋ค.
Action, Assertion, ๋น๋๊ธฐ ํ ์คํธ ๋ฑ๋ฑ ์ด ๋ถ๋ถ๋ ์์ผ๋ก ๊ฐ์๊ฐ ์งํ๋๋ฉด์ ๋ฌด๋ถ๋ณํ ํ ์คํธ๋ฅผ ์์ฑํ๊ธฐ ๋ณด๋ค ์ ๋ง ํ์ํ ๋ถ๋ถ์ ํ ์คํธ๊ฐ ๋ค์ด๊ฐ๋๋ก ๊ณ ๋ฏผํ๋ฉด์ ์งํํด ๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
Given-When-Then ํจํด
GWT(Given-When-Then) ํจํด์ ์ํํธ์จ์ด ํ ์คํธ๋ฅผ ๋ณด๋ค ์ดํดํ๊ธฐ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด ํจํด์ ํ๋ ๊ธฐ๋ฐ ๊ฐ๋ฐ(BDD) ๋ฐ ์น์ธ ํ ์คํธ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋์ง๋ง ๋จ์ ํ ์คํธ ๋ฐ ๊ธฐํ ํํ์ ์๋ ํ ์คํธ์๋ ์ ์ฉ๋ ์ ์๋ค.
GWT ํจํด์ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
Given: ์ด ์น์ ์์๋ ํ ์คํธ์ ์ ์ ์กฐ๊ฑด์ ์ค๋ช ํ๋ค. ํ ์คํธ ์ค์ธ ์์คํ ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํ๋ฅผ ์ ์ํ์ฌ ํ ์คํธ๊ฐ ์คํ๋ ์ปจํ ์คํธ๋ฅผ ์ค์ ํ๋ค.
When: ์ด ์น์ ์์๋ ํ ์คํธ ์ค์ธ ๋์์ ํธ๋ฆฌ๊ฑฐํ๋ ์์ ๋๋ ์ด๋ฒคํธ๋ฅผ ์ค๋ช ํ๋ค. ์ด๋ ํ ์คํธ ์ค์ธ ํน์ ์ ๋ ฅ ๋๋ ์์ ์ ๋ํ๋ด๋ฉฐ ์ข ์ข ํ ์คํธ ์ค์ธ ์์คํ ์์ ํจ์ ๋๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋๋ค.
Then: ์ด ์น์ ์์๋ ํ ์คํธ์ ์์ ๊ฒฐ๊ณผ ๋๋ ๋์์ ์ค๋ช ํ๋ค. ์ด์ ๋จ๊ณ์์ ์ ์๋ ์ ๋ ฅ ๋๋ ์์ ์ ๊ธฐ๋ฐ์ผ๋ก ์์๋๋ ์ถ๋ ฅ ๋๋ ๋์์ ์ง์ ํ๋ค.
GWT ํจํด์ ์ฌ์ฉํ๋ฉด ์ํํธ์จ์ด ํ ์คํธ๋ฅผ ๋ฐ๋ผํ๊ธฐ ์ฌ์ด ๊ฐ๋ณ ๋จ๊ณ๋ก ๋๋์ด ์ํํธ์จ์ด ํ ์คํธ๋ฅผ ๋ ์ฝ๊ฒ ์์ฑํ๊ณ ์ดํดํ ์ ์๋ค. ๋ํ ๊ฐ ํ ์คํธ์ ๋ํ ํน์ ์ ๋ ฅ, ์์ ๋ฐ ์์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์๋ณํ ์ ์์ผ๋ฏ๋ก ํฅํ ํ ์คํธ๋ฅผ ๋๋ฒ๊น ํ๊ฑฐ๋ ์ ์ง ๊ด๋ฆฌํ ๋ ์ ์ฉํ ์ ์๋ค.
Mocking
๋ชจํน์ ์ฝ๋ ๋จ์๋ฅผ ๊ฒฉ๋ฆฌํ๊ณ ํ ์คํธํ๊ธฐ ์ํด ์ฝ๋ ๋จ์๊ฐ ์์กดํ๋ ๋ณต์กํ ์์คํ ๋๋ ๊ตฌ์ฑ ์์์ ๋์์ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด ์ํํธ์จ์ด ํ ์คํธ์ ์ฌ์ฉ๋๋ ๊ธฐ์ ์ด๋ค. ์ด ๊ธฐ์ ์๋ ์ค์ ๊ฐ์ฒด์ ๋์์ ๋ชจ๋ฐฉํ๋ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ค์ ์ค์ ๊ฐ์ฒด๋ฅผ ๋์ฒดํ๋ ์์ ์ด ํฌํจ๋๋ค.
๋ชจํน ํ๋ก์ธ์ค์๋ ์ค์ ๊ฐ์ฒด์ ๋์์ ์๋ฎฌ๋ ์ด์ ํ์ง๋ง ๋จ์ํ๋๊ฑฐ๋ ๋ฏธ๋ฆฌ ๊ฒฐ์ ๋ ๋์์ ์ฌ์ฉํ๋ ๋ชจ์ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณผ์ ์ด ํฌํจ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชจ์ ๊ฐ์ฒด๋ ํ ์คํธ ์ค์ธ ๋จ์์ ์ปจํ ์คํธ์์ ์ค์ ๊ฐ์ฒด์ ๋์์ ์๋ฎฌ๋ ์ด์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ํ ์คํธ ๊ฒฐ๊ณผ๋ ๋ชจ์ ๊ฐ์ฒด์ ๋์์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ฐ๋๋ค.
ํ ์คํธ์์ ์กฐ๋กฑ์ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ด์ ์ด ์๋ค.
๊ฒฉ๋ฆฌ(Isolation): ๋ณต์กํ ์ธ๋ถ ์ข ์์ฑ์ ๋ชจ์ ๊ฐ์ฒด๋ก ๋์ฒดํ๋ฉด ์ธ๋ถ ์์คํ ์ ๋์์ ๋ํด ๊ฑฑ์ ํ ํ์ ์์ด ์ฝ๋๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ํ ์คํธํ ์ ์๋ค.
์ ์ด(Control): ๋ชจ์ ๊ฐ์ฒด๋ ํน์ ๋์์ด๋ ์๋ต์ ์๋ฎฌ๋ ์ด์ ํ๋๋ก ํ๋ก๊ทธ๋๋ฐํ ์ ์์ผ๋ฏ๋ก ํ ์คํธ ์ค์ธ ์์คํ ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ ์ดํ ์ ์๋ค.
์๋(Speed): ๋ชจํน์ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ๋ฆฌ์์ค์ ํ์์ฑ์ ์ค์ด๊ณ ํ ์คํธ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์คํํ ์ ์์ผ๋ฏ๋ก ํ ์คํธ ์๋๋ฅผ ๋์ผ ์ ์๋ค.
์ด ์์์๋ axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ API์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ fetchData๋ผ๋ ํจ์๋ฅผ ํ ์คํธํ๊ณ ์๋ค. fetchData ํจ์์ ๋์์ ๋ถ๋ฆฌํ๊ธฐ ์ํด Jest ๋ชจํ์ ์ฌ์ฉํ์ฌ axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์์ ์๋ฎฌ๋ ์ดํธํ๋ค.
axios.get ํจ์๋ฅผ ๋์ฒดํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์๋ก์ด ๋ชจ์ ํจ์๋ฅผ ์์ฑํ๋ jest.spyOn ํจ์๋ฅผ ์ฌ์ฉํ์ฌ axios์ ๋ํ ๋ชจ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค. ๊ทธ๋ฐ ๋ค์ mockResolvedValue ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ์ ํจ์๊ฐ ํธ์ถ๋ ๋ ๋ฐํํด์ผ ํ๋ ๊ฐ์ ์ค์ ํ๋ค.
ํ ์คํธ์์ ๋ชจ์ โโURL๋ก fetchData ํจ์๋ฅผ ํธ์ถํ๊ณ expect ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํจ์๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋์ง ํ์ธํ๋ค. ๋ํ toHaveBeenCalledWith ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ์ axios.get ํจ์๊ฐ ์ฌ๋ฐ๋ฅธ URL๋ก ํธ์ถ๋์์์ ํ์ธํ๋ค.
ํ ์คํธ์์ ๋ชจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์์ ๋ํด ๊ฑฑ์ ํ ํ์ ์์ด fetchData ํจ์์ ๋์์ ๊ฒฉ๋ฆฌํ๊ณ ํ ์คํธํ ์ ์๋ค.
Test fixture
Test fixture๋ ํ๋ ์ด์์ ํ ์คํธ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ๋๋ ์์คํ ์ ๊ณ ์ ์ํ์ด๋ค. ํน์ ์ฝ๋ ์กฐ๊ฐ์ ํ ์คํธํ๊ธฐ ์ํ ์๋ ค์ง ์์์ ์ ์ ๊ณตํ๋ ์ค์ ์ด๋ฉฐ ํ ์คํธ ์ค์ธ ์ฝ๋๊ฐ ์๋ ค์ง ์กฐ๊ฑด์์ ์ผ๊ด๋๊ฒ ๋์ํ๋๋ก ์ค๊ณ๋์๋ค.
Test fixture์๋ ์ผ๋ฐ์ ์ผ๋ก ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ, ๊ฐ์ฒด ๋๋ ๊ธฐํ ๋ฆฌ์์ค๋ฅผ ๋น๋กฏํ ํ ์คํธ ํ๊ฒฝ ์ค์ ์ด ํฌํจ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๊ธฐํ, ํ์ผ ์์คํ ์ค์ , ํ ์คํธ ๋ฐ์ดํฐ ์์ฑ ๋ฐ ๋ชจ์ ๊ฐ์ฒด ์ค์ ์ด ํฌํจ๋ ์ ์๋ค.
Test fixture์ ๋ชฉ์ ์ ์ฝ๋๋ฅผ ํ ์คํธํ ์ ์๋ ์๋ ค์ง ํต์ ๋ ํ๊ฒฝ์ ๋ง๋ค๊ณ ์ธ๋ถ ์์ธ์ด ํ ์คํธ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ๋ณด๋ค ์ ํํ๊ณ ํจ์จ์ ์ผ๋ก ํ ์คํธํ๊ณ ๋ฌธ์ ๋ ์ด์๊ฐ ๋ ์ฌ๊ฐํด์ง๊ธฐ ์ ์ ๋ฌธ์ ๋ฅผ ์๋ณํ ์ ์๋ค.
๋จ์ ํ ์คํธ์์ Test fixture๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ ํ ์คํธ ์ฌ๋ก์ ๋ํด ์์ฑ๋๋ฉฐ ์ฝ๋๋ฅผ ํ ์คํธํ๋ ๋ฐ ํ์ํ ์กฐ๊ฑด์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ ํ ์คํธ๊ฐ ์ผ๊ด๋ ํ๊ฒฝ์์ ์คํ๋๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ํํ๊ฒ ๋น๊ตํ ์ ์๋ค.
์ด ์์ ์์๋ ๋ ๊ฐ์ ์ซ์๋ฅผ ์ธ์๋ก ๋ฐ์ ํฉ๊ณ๋ฅผ ๋ฐํํ๋ ํฉ์ฐ ํจ์๋ฅผ ํ ์คํธํ๊ณ ์๋ค. ๊ฐ ํ ์คํธ๊ฐ ์คํ๋๊ธฐ ์ ์ ํ ์คํธ ํฝ์ค์ฒ๋ฅผ ์ฌ์ฉํ์ฌ a์ b์ ๊ฐ์ ์ค์ ํ์ฌ ํฉ๊ณ ํจ์๋ฅผ ํ ์คํธํ๊ธฐ ์ํ ์๋ ค์ง ์์์ ์ ํ๋ณดํ๊ณ ์๋ค.
๊ฐ ํ ์คํธ๊ฐ ์คํ๋๊ธฐ ์ ์ beforeEach ํจ์๋ฅผ ์ฌ์ฉํ์ฌ a์ b์ ๊ฐ์ ์ค์ ํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ ํ ์คํธ์ ๋ํด ๋์ผํ ์ ๋ ฅ๊ณผ ์ค์ ์ผ๋ก ์ผ๊ด๋ ํ๊ฒฝ์์ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ค.
๊ทธ๋ฐ ๋ค์ Jest์์ ์ ๊ณตํ๋ ํ ์คํธ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ ์ํ๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํฉ๊ณ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ a์ b์ ํฉ๊ณ๋ฅผ ๊ณ์ฐํ๊ณ , ๊ธฐ๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํฉ๊ณ ํจ์์ ๋์์ ๋ํ ์ด์ค์ ์ ๋ง๋ ๋ค.
5์ฃผ์ฐจ ํ
์คํธ๋ฅผ ๋ง์น๋ฉด์
์์ ํค์๋๋ค์ด ํ ์คํธ๋ฅผ ํ๋ฉด์ ํจ์จ์๊ฒ ํ ์คํธ๋ฅผ ์์ฑํ๋๋ฐ ๋ง์ ๋์์ ์ฃผ๋ ๊ฒ์ ๋๋ผ๊ฒ ๋์๋ค. ์์ผ๋ก ํ ์คํธ๋ฅผ ๋ ๋ง์ด ์งํํด ๋ด์ผ ์๊ฒ ์ง๋ง 5์ฃผ์ฐจ ๊ณผ์ ๋ฅผ ์งํํ๋ฉด์ mocking ์์ ๋ฐ ์ปดํฌ๋ํธ ๋ด์์ ์ฌ์ฉํ๋ hooks๋ฅผ ์ด๋ป๊ฒ ํ ์คํธ์ ์ ์ฐ๊ฒฐ์์ผ ์ค ๊ฒ์ธ์ง์ ๋ํด์๋ ๋ง์ด ๊ณ ๋ฏผํ๊ฒ ๋์๋ ์๊ฐ์ด์๋ค. ์์ง์ ์ด๋ ต์ง๋ง ์ง์ํ๋ค๋ณด๋ฉด ๋ ์ข์ ๊ตฌ์กฐ์ ์ข์ ์ปดํฌ๋ํธ ์์ฑ์ด ๋ ๊ฒ ๊ฐ๋ค.
Last updated