ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์์ ์ธ, ๊ฒฌ๊ณ ํ๊ณ ํจ์จ์ ์ธ ๋ถ๋ณ ๋ฐ์ดํฐ ๋น๊ต๋ฅผ ์ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ํ๊ตฌํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ: ๋ถ๋ณ ๋ฐ์ดํฐ ๋น๊ต
๋์์์ด ๋ฐ์ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๋น๊ตํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณต์กํด์ง๊ณ , ํนํ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ, ์ ํํ๊ณ ํจ์จ์ ์ธ ๋๋ฑ์ฑ ๊ฒ์ฌ์ ํ์์ฑ์ ์ ์ ๋ ์ค์ํด์ง๊ณ ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ๋ ๋ ์ฝ๋ ํํ(Record Tuples)๊ณผ ๊ด๋ จ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ๋ฌธ์ ์ ๋ํ ๊ฐ๋ ฅํ ํด๊ฒฐ์ฑ ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ธ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ก์ฑ์ ๊น์ด ํ๊ณ ๋ค์ด ๊ทธ ์ค์์ฑ, ๋ฉ์ปค๋์ฆ, ๊ทธ๋ฆฌ๊ณ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์๊ฒ ์ฃผ๋ ์ด์ ์ ๋ํด ํ๊ตฌํฉ๋๋ค.
๋ถ๋ณ ๋ฐ์ดํฐ์ ๊ทธ ์ค์์ฑ ์ดํดํ๊ธฐ
๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ธ๋ถ ์ฌํญ์ ์ดํด๋ณด๊ธฐ ์ ์ ๋ถ๋ณ ๋ฐ์ดํฐ(immutable data)์ ๊ฐ๋ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ฐ์ดํฐ๋ ์ผ๋จ ์์ฑ๋๋ฉด ๋ณ๊ฒฝํ ์ ์์ ๋ ๋ถ๋ณํ๋ค๊ณ ๊ฐ์ฃผ๋ฉ๋๋ค. ๋ถ๋ณ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋ชจ๋ ์์ ์ ์ค์ ๋ก๋ ์ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋ ๋ฐ์ดํฐ์ ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ์๋ณธ์ ๊ทธ๋๋ก ๋ก๋๋ค. ์ด ์์น์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ํฌํจํ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๊ธฐ๋ณธ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ์์ธก ๊ฐ๋ฅ์ฑ: ๋ถ๋ณ ๋ฐ์ดํฐ๋ ๋ถ์์ฉ(side effects)์ ์ ๊ฑฐํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์๊ธฐ์น ์๊ฒ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ์ ํ๋ฆ์ ์ถ๋ก ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ์์ธกํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค.
- ๋จ์ํ๋ ๋๋ฒ๊น : ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ์ ๋ ๋ถ๋ณ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ์ ์์ธ์ ์ถ์ ํ๊ธฐ๊ฐ ๋ ๊ฐ๋จํฉ๋๋ค. ๊ฐ๋ณ ๊ฐ์ฒด๊ฐ ์ธ์ ์ด๋์ ์์ ๋์๋์ง ์ฐพ์๋ด๋ ๋์ ๋ฐ์ดํฐ ์ธ์คํด์ค์ ์์ฑ์ ์ถ์ ํ ์ ์์ต๋๋ค.
- ํฅ์๋ ์ฑ๋ฅ: ํน์ ์๋๋ฆฌ์ค์์ ๋ถ๋ณ์ฑ์ ์ฑ๋ฅ ํฅ์์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ ๋ ์ฐธ์กฐ๊ฐ ๋์ผํ๋ค๋ฉด ๋ ๋น ๋ฅธ ๊ฒ์ฌ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์ฐธ์กฐ๋ ๋ค๋ฅด์ง๋ง ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๊ฒฝ์ฐ ๊น์ ๋น๊ต๊ฐ ์ฌ์ ํ ํ์ํ์ง๋ง, ์ฐธ์กฐ๊ฐ ๋์ผํ ๊ฒฝ์ฐ๋ฅผ ์๋ ๊ฒ๋ง์ผ๋ก๋ ์ต์ ํ๊ฐ ๋ฉ๋๋ค.
- ๋์์ฑ ์์ ์ฑ: ๋ถ๋ณ ๋ฐ์ดํฐ๋ ๋ณธ์ง์ ์ผ๋ก ์ค๋ ๋๋ก๋ถํฐ ์์ ํฉ๋๋ค. ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฒฝ์ ์กฐ๊ฑด์ด๋ ๋ฐ์ดํฐ ์์ ์ํ ์์ด ๋์์ ๋ถ๋ณ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ณ ์ฝ์ ์ ์์ต๋๋ค.
์ด์ ์ ๋ถ๋ช ํ์ง๋ง, ๋ถ๋ณ์ฑ์ ํ ๊ฐ์ง ๊ณผ์ ๋ฅผ ์ ๊ธฐํฉ๋๋ค. ๊ฒ๋ณด๊ธฐ์ ๋์ผํด ๋ณด์ด๋ ๋ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ค์ ๋ก ๋๋ฑํ์ง ์ด๋ป๊ฒ ์ ๋ขฐ์ฑ ์๊ฒ ๋น๊ตํ ์ ์์๊น์? ๋ฐ๋ก ์ด ์ง์ ์์ ํนํ๋ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ด ์ญํ ์ ํ๊ฒ ๋ฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ ์ฝ๋ ํํ ์๊ฐ
๋ ์ฝ๋ ํํ์ ๋ด์ฅ๋ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ ์๋ ECMAScript ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ ๋ฐฐ์ด๊ณผ ์ ์ฌํ์ง๋ง ๋ถ๋ณ์ฑ์ด ๋ณด์ฅ๋๋, ๊ณ ์ ๋ ํฌ๊ธฐ์ ์์ ์๋ ๊ฐ ๋ชจ์์ผ๋ก ์๋๋์์ต๋๋ค. ๊ฐ๋ณ์ ์ธ ์ผ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ๋ฌ๋ฆฌ ๋ ์ฝ๋ ํํ์ ์์ฑ ํ ์์ ํ ์ ์์ต๋๋ค. ์ด ๋ถ๋ณ์ฑ์ ํต์ฌ ์ค๊ณ ์์น์ ๋๋ค.
๋ ์ฝ๋ ํํ์ ์์ง ๊ฐ๋ฐ ์ค์ด๋ฉฐ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๊ฒฝ์์ ๋ณดํธ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์๋์ง๋ง, ๊ทธ ์ ์ฌ์ ์ํฅ๊ณผ ์ด๋ฅผ ์ง๋ฐฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๋ ๊ฒ์ ๋ฏธ๋ ์งํฅ์ ์ธ ๊ฐ๋ฐ์์๊ฒ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ ์ฝ๋ ํํ๊ณผ ๊ด๋ จ๋ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ๋ถ๋ณ์ฑ๊ณผ ์ํํ๊ฒ ์๋ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช
๋ ์ฝ๋ ํํ์ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋น๊ต๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค. ์์ ๋๋ฑ์ฑ(shallow equality)๊ณผ ๊น์ ๋๋ฑ์ฑ(deep equality)์ ๊ตฌ๋ณํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค:
- ์์ ๋๋ฑ์ฑ: ๋ ๋ณ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์ ํํ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋์ง ํ์ธํฉ๋๋ค. ์์ ํ์ ์ ๊ฒฝ์ฐ ๊ฐ์ด ๊ฐ์์ง ํ์ธํฉ๋๋ค. ๊ฐ๋ณ ๊ฐ์ฒด ๋ฐ ๋ฐฐ์ด์ ๊ฒฝ์ฐ, ๋์ผํ ๊ฐ์ ํฌํจํ๋์ง๊ฐ ์๋๋ผ ๋์ผํ ์ธ์คํด์ค์ธ์ง ํ์ธํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ๊น์ ๋๋ฑ์ฑ: ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ด์ฉ์ ์ฌ๊ท์ ์ผ๋ก ๋น๊ตํฉ๋๋ค. ๋ ๊ฐ์ฒด๊ฐ ๋์ผํ ๊ฐ์ ๊ฐ์ง ๋์ผํ ์์ฑ์ ๊ฐ๊ฑฐ๋, ๋ ๋ฐฐ์ด์ด ๋์ผํ ์์๋ก ๋์ผํ ์์๋ฅผ ๊ฐ๋ ๊ฒฝ์ฐ, ๋ฉ๋ชจ๋ฆฌ์์ ๋ณ๊ฐ์ ์ธ์คํด์ค์ผ์ง๋ผ๋ ๊น์ ์๋ฏธ์์ ๋๋ฑํ๋ค๊ณ ๊ฐ์ฃผ๋ฉ๋๋ค.
๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋ ๋ ์ฝ๋ ํํ์ด ๋๋ฑํ์ง ์ฌ๋ถ๋ฅผ ์ ๋ขฐ์ฑ ์๊ฒ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ๋ ์ฝ๋ ํํ์ ๋ถ๋ณ์ด๋ฏ๋ก ๋๋ฑ์ฑ ๊ฒ์ฌ๋ ๊ฐ๋ณ ๊ฐ์ฒด๋ณด๋ค ๋ ๊ฐ๋จํ์ง๋ง, ์ฌ์ ํ ๋ด์ฉ์ ๋ํ ์ฒ ์ ํ ๋น๊ต๊ฐ ํ์ํฉ๋๋ค.
์๊ณ ๋ฆฌ์ฆ์ ๋ฉ์ปค๋์ฆ
๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ์ ์์์ ์ฌ๊ท์ ๋น๊ต๋ฅผ ํฌํจํฉ๋๋ค:
- ํ์ ๋ฐ ๊ธธ์ด ๊ฒ์ฌ: ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ๋น๊ต ๋์์ธ ๋ ๊ฐ์ด ๋ชจ๋ ๋ ์ฝ๋ ํํ์ด๋ฉฐ ๋์ผํ ์์ ์์๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ๊ธธ์ด๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ์ง ์์ต๋๋ค.
- ์์๋ณ ๋น๊ต: ๊ธธ์ด๊ฐ ์ผ์นํ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ๋ ๋ ์ฝ๋ ํํ์ ๊ฐ ์์๋ฅผ ์ํํฉ๋๋ค. ๋์ผํ ์ธ๋ฑ์ค์ ์๋ ๊ฐ ํด๋น ์์ ์์ ๋ํด ๋๋ฑ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค.
- ์ฌ๊ท์ ๋๋ฑ์ฑ: ์ฌ๊ธฐ์ ์ค์ํ ์ธก๋ฉด์ ๊ฐ๋ณ ์์์ ๋๋ฑ์ฑ์ด ์ด๋ป๊ฒ ๊ฒฐ์ ๋๋๊ฐ์ ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ค์ฒฉ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์์๊ฐ ์์ ํ์ (์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฌ์ธ, null, undefined ๋ฑ)์ธ ๊ฒฝ์ฐ ๊ฐ์ผ๋ก ๋น๊ต๋ฉ๋๋ค. ์์๊ฐ ๋ค๋ฅธ ๋ ์ฝ๋ ํํ์ด๊ฑฐ๋ ์ค์ฒฉ๋ ๊ฐ์ฒด/๋ฐฐ์ด์ธ ๊ฒฝ์ฐ(์ธ์ด๊ฐ ํด๋น ํญ๋ชฉ์ ๋ํ ๋๋ฑ์ฑ์ ์ ์ํ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ค๋ฆ) ๋๋ฑ์ฑ ๊ฒ์ฌ๋ ์ฌ๊ท์ ์ผ๋ก ์ํ๋ฉ๋๋ค.
- ์๊ฒฉํ ๋น๊ต: ์๋ฐ์คํฌ๋ฆฝํธ์ `===` ์ฐ์ฐ์(์๊ฒฉํ ๋๋ฑ์ฑ)๋ ์์ ๊ฐ์ ๋น๊ตํ๋ ๊ธฐ์ด์ ๋๋ค. ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฒฝ์ฐ, ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ์ด ๋น๊ต ๊น์ด๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ ์ฝ๋ ํํ ์์ฒด์ ๋ํด์๋ ๊น์ ๋๋ฑ์ฑ ๊ฒ์ฌ๊ฐ ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์์:
๋ ๊ฐ์ ๋ ์ฝ๋ ํํ์ ๊ฐ์ ํด ๋ด ์๋ค:
const tuple1 = #[1, 'hello', { a: 1 }];
const tuple2 = #[1, 'hello', { a: 1 }];
const tuple3 = #[1, 'hello', { a: 2 }];
const tuple4 = #[1, 'hello'];
๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋น๊ต๋ฅผ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค:
tuple1 === tuple2
: `===`๊ฐ ์ฐธ์กฐ ๋๋ฑ์ฑ๋ง ํ์ธํ๋ค๋ฉด ์ด๊ฒ์ false๊ฐ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ด๋ฅผ true๋ก ํ๊ฐํฉ๋๋ค:- ๋ ๊ฐ ๋ชจ๋ ๊ธธ์ด๊ฐ 3์ธ ๋ ์ฝ๋ ํํ์ ๋๋ค.
- ์์ 0: `1 === 1` (true).
- ์์ 1: `'hello' === 'hello'` (true).
- ์์ 2: `{ a: 1 }`๊ณผ `{ a: 1 }`. ์ฌ๊ธฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ฒด์ ๋ํ ๊น์ ๋น๊ต๋ฅผ ์ํํฉ๋๋ค. ๊ฐ์ฒด ๋น๊ต ๋ํ ๊น์ ๋๋ฑ์ฑ ๊ฒ์ฌ์ด๊ณ ๋์ผํ ๊ฐ์ ๊ฐ์ง ๋์ผํ ์์ฑ์ ํฌํจํ๋ค๋ฉด ์ด ์์๋ ๋์ผํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ ์ฒด ๋ ์ฝ๋ ํํ์ ๋์ผํฉ๋๋ค.
tuple1 === tuple3
: ์ด๊ฒ์ false๊ฐ ๋ฉ๋๋ค. ์ฒ์ ๋ ์์๋ ์ผ์นํ์ง๋ง ์ธ ๋ฒ์งธ ์์ ๊ฐ์ฒด(`{ a: 1 }`์ `{ a: 2 }`)๋ ๊น์ ์๋ฏธ์์ ๋๋ฑํ์ง ์์ต๋๋ค.tuple1 === tuple4
: ๊ธธ์ด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์(3 ๋ 2) false๊ฐ ๋ฉ๋๋ค.
๋ ์ฝ๋ ํํ ๋ด์ ๋ ์ฝ๋ ํํ์ด ์๋ ์์(์ผ๋ฐ ๊ฐ์ฒด๋ ๋ฐฐ์ด ๋ฑ)๋ฅผ ๋น๊ตํ๋ ์ ํํ ๋์์ ์๊ณ ๋ฆฌ์ฆ ๋ด์ ๋๋ฑ์ฑ ๊ฒ์ฌ์ ํน์ ๊ตฌํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค๋ ์ ์ ์ ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ฒฌ๊ณ ํ ๋ถ๋ณ์ฑ์ ์ํด์๋ ์ด๋ฌํ ์ค์ฒฉ ๊ตฌ์กฐ ๋ํ ๋ถ๋ณ์ด๊ฑฐ๋, ๋น๊ต ์ ๋ด์ฉ์ด ์ผ์นํ ๊ฒฝ์ฐ ๊น์ ์๋ฏธ์์ ๋๋ฑํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค.
์์ ํ์ ๋ฐ ๊ฐ์ฒด ๋๋ฑ์ฑ๊ณผ์ ์ฐจ์ด์
์๋ฐ์คํฌ๋ฆฝํธ์์:
- ์์ ํ์ ๋๋ฑ์ฑ: `===` ์ฐ์ฐ์๋ ์์ ํ์ (์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฌ์ธ, null, undefined, ์ฌ๋ณผ, bigint)์ ๋ํ ์๊ฒฉํ ๊ฐ ๋๋ฑ์ฑ์ ์ ๊ณตํฉ๋๋ค. `5 === 5`๋ true์ ๋๋ค.
- ๊ฐ์ฒด/๋ฐฐ์ด ์ฐธ์กฐ ๋๋ฑ์ฑ: ๊ฐ์ฒด์ ๋ฐฐ์ด์ ๊ฒฝ์ฐ `===`๋ ์ฐธ์กฐ ๋๋ฑ์ฑ์ ํ์ธํฉ๋๋ค. ๋์ผํ ์์ฑ์ ๊ฐ์ง ๋ ๊ฐ์ ๋ณ๊ฐ ๊ฐ์ฒด๋ `===`๋ก ๋น๊ตํ๋ฉด ๊ฐ์ง ์์ต๋๋ค.
๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ๋ณ ์ปฌ๋ ์ ์ ๋ํด ์ด๋ฌํ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ์ฌ, ๊ทธ ๊ตฌ์กฐ์ ์์(ํนํ ํด๋น ์์๊ฐ ๋ถ๋ณ ๊ตฌ์กฐ์ผ ๋)์ ๋ํด ํจ๊ณผ์ ์ผ๋ก ๊น์ ๋๋ฑ์ฑ ์๋ฏธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ด์
๋ ์ฝ๋ ํํ๊ณผ ๊ฐ์ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํด ํจ์จ์ ์ธ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ณ ํ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์๋นํ ์ด์ ์ ๊ฐ์ ธ๋ค์ค๋๋ค:
1. ํฅ์๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
๋น๊ต๊ฐ ๋ถ๋ณ ๋ฐ์ดํฐ์ ์ค์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋๋ก ๋ณด์ฅํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋ ๋์ ์์ค์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์์ต๋๋ค. ์ด๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ค๋ฃจ๊ฑฐ๋ ๋ณต์กํ ์ํ ๊ด๋ฆฌ๋ฅผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํนํ ์ ์ฉํ๋ฉฐ, ์ฐ๋ฐ์ ์ธ ์์ ์ด๋ ์๋ชป๋ ๋น๊ต๋ ์น๋ช ์ ์ธ ์ค๋ฅ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
2. ์ต์ ํ๋ ์ฑ๋ฅ
ํฌ๊ฑฐ๋ ๊น๊ฒ ์ค์ฒฉ๋ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ ์ค๊ณ๋ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ถ๋ณ ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก ์บ์ฑ ์ ๋ต์ด๋ ์ฐธ์กฐ ๊ฒ์ฌ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ ์ ์์ต๋๋ค. ๋ ๋ ์ฝ๋ ํํ์ด ์ฐธ์กฐ๋ก ๋์ผํ๋ค๋ฉด ๋๋ฑํจ์ด ๋ณด์ฅ๋๋ฏ๋ก ๋น๊ต ํ๋ก์ธ์ค๋ฅผ ๋น ๋ฅด๊ฒ ์ข ๋ฃํ ์ ์์ต๋๋ค.
๋ ๋์๊ฐ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ ์์ํฌ๊ฐ ๋ถ๋ณ์ฑ๊ณผ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์์กดํ ์ ์๋ค๋ฉด ๋ฉ๋ชจ์ด์ ์ด์ ๊ณผ ๊ฐ์ ์ต์ ํ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํฌ๋ํธ๋ ์์ ์ props(๋ ์ฝ๋ ํํ์ผ ์ ์์)๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ง ๋ค์ ๋ ๋๋ง๋ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋น ๋ฅธ ๋๋ฑ์ฑ ๊ฒ์ฌ๊ฐ ํ์์ ์ ๋๋ค.
3. ๋จ์ํ๋ ์ํ ๊ด๋ฆฌ
React, Vue, Angular์ ๊ฐ์ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์์ ์ํ ๊ด๋ฆฌ๋ ํต์ฌ ๊ด์ฌ์ฌ์ ๋๋ค. ์ํ๊ฐ ๋ถ๋ณํ๊ฒ ๊ด๋ฆฌ๋ ๋, ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํ๊ธฐ ์ํด ์ด์ ์ํ์ ํ์ฌ ์ํ๋ฅผ ๋น๊ตํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ธ ์์ ์ ๋๋ค. ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ๋น๊ต๋ฅผ ์ํ ๊ฒฌ๊ณ ํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ฌ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
์ ์ธ๊ณ์ ์์: ์ฌ๋ฌ ๋๋ฅ์ ๊ฑธ์น ํ์ด ์ฌ์ฉํ๋ ํ์ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์์ํด ๋ณด์ญ์์ค. ์์ ๋ชฉ๋ก, ๋ง๊ฐ์ผ, ํ ๋น ๋ฑ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ๋ฉ๋๋ค. ํ์์ด ์์ ์ ์ ๋ฐ์ดํธํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ์ํ๋ฅผ ์์ฑํฉ๋๋ค. UI๋ ๋ ์ฝ๋ ํํ์ ๋ํ ์ ๋ขฐํ ์ ์๋ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ด์ ์ํ์ ์ ์ํ๋ฅผ ๋น๊ตํจ์ผ๋ก์จ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ํจ์จ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์์ ์์น๋ ๋คํธ์ํฌ ์ํ์ ๊ด๊ณ์์ด ์ํํ๊ณ ๋ฐ์์ด ๋น ๋ฅธ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค.
4. ํฅ์๋ ์์ธก ๊ฐ๋ฅ์ฑ ๋ฐ ๋๋ฒ๊น
์์ ์ธ๊ธํ๋ฏ์ด, ๋ถ๋ณ์ฑ์ ๋ณธ์ง์ ์ผ๋ก ์์ธก ๊ฐ๋ฅ์ฑ์ ํฅ์์ํต๋๋ค. ์ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ฒฐํฉํ๋ฉด ์ด๋ฌํ ์์ธก ๊ฐ๋ฅ์ฑ์ ์ฆํญ๋ฉ๋๋ค. ๋๋ฒ๊น ์ ๋ฏธ๋ฌํ ์ํ ๋ณ๊ฒฝ์ ์ถ์ ํ๋ ๊ฒ๋ณด๋ค ๋ฐ์ดํฐ ๋ณํ์ ์ดํดํ๋ ๋ฐ ๋ ์ค์ ์ ๋๊ฒ ๋ฉ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ํด ๋ ๋ ์ฝ๋ ํํ์ด ๋์ผํ๋ค๊ณ ๋ณด๊ณ ๋๋ฉด, ๊ทธ๊ฒ๋ค์ด ๋์ผํ ๋ ผ๋ฆฌ์ ์ํ๋ฅผ ๋ํ๋ธ๋ค๊ณ ํ์ ํ ์ ์์ต๋๋ค.
5. ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ํ ๊ธฐ๋ฐ
๋ด์ฅ๋ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ด๋ จ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ฉ์ฑ์ ๋ ์ง๋ณด๋ ์ธ์ด ๊ธฐ๋ฅ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌํ์ ์ํ ๊ธฐ๋ฐ์ ๋ง๋ จํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ต์ ํ๋ ์ฐจ์ด ๋น๊ต(diffing) ์๊ณ ๋ฆฌ์ฆ, ์คํ ์ทจ์/๋ค์ ์คํ ๊ธฐ๋ฅ ๋๋ ์๊ฐ ์ฌํ ๋๋ฒ๊น ๊ธฐ๋ฅ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์ค์ฉ์ ์ธ ์ ์ฉ ๋ฐ ๊ณ ๋ ค ์ฌํญ
๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ง ์ด๋ก ์ ์ธ ๊ฐ๋ ์ด ์๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์ ๋ค์ํ ์์ญ์ ๊ฑธ์ณ ์ค์ง์ ์ธ ์์ฉ ๋ถ์ผ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค:
์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Redux, Zustand, Jotai์ ๊ฐ์ด ๋ถ๋ณ ์ํ ํจํด์ ์ฅ๋ คํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ค์ดํฐ๋ธ ๋ ์ฝ๋ ํํ ๊ตฌํ์ผ๋ก๋ถํฐ ํฐ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค. ์ํ ์ฌ๋ผ์ด์ค์ ๋น๊ต๊ฐ ๋ ๊ฐ๋จํด์ง๊ณ ์ ์ฌ์ ์ผ๋ก ๋ ์ฑ๋ฅ์ด ์ข์์ง ๊ฒ์ ๋๋ค.
ํ๋ก ํธ์๋ ํ๋ ์์ํฌ
ํ๋ ์์ํฌ๋ ํจ์จ์ ์ธ ๋ ๋๋ง์ ์ํด prop ๋ฐ ์ํ ๋น๊ต๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ๋ ์์ํฌ๊ฐ ๋ ์ฝ๋ ํํ์ ์ฑํํ๋ฉด, ์ฌ์กฐ์ (reconciliation) ์๊ณ ๋ฆฌ์ฆ์ ๋ ๋น ๋ฅธ ๋ณ๊ฒฝ ๊ฐ์ง๋ฅผ ์ํด ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ํนํ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ด๋ ๊ณผํ ์ฐ๊ตฌ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์๊ฐํ ๋๊ตฌ์ ๊ฐ์ด ๋ณต์กํ๊ณ ๋์ ์ธ UI๋ฅผ ๊ฐ์ง ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ณ ์ฑ๋ฅ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์น API ๋ฐ ๋ฐ์ดํฐ ์ ์ก
๋ฐ์ดํฐ๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๊ณ (์: JSON์ ํตํด) ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๊ตฌ๋ฌธ ๋ถ์๋ ๋, ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ณ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ฐ๋์งํ ๋๊ฐ ๋ง์ต๋๋ค. ๋ ์ฝ๋ ํํ์ ๋ณด์ฅ๋ ๋ถ๋ณ์ฑ๊ณผ ์ผ๊ด๋ ๋น๊ต ๋ฉ์ปค๋์ฆ์ผ๋ก ์ด๋ฌํ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ถ๋ณ ๋ฐ์ดํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Immutable.js์ ๊ฐ์ ๊ธฐ์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ฒํด ์์ต๋๋ค. ๋ค์ดํฐ๋ธ ๋ ์ฝ๋ ํํ์ ๋ฑ์ฅ์ ๋ ํตํฉ๋๊ณ ์ ์ฌ์ ์ผ๋ก ๋ ์ฑ๋ฅ์ด ์ข์ ๋์์ ์ ๊ณตํ์ฌ, ํต์ฌ ๋ถ๋ณ ๋ฐ์ดํฐ ์์ ๋ฐ ๋น๊ต๋ฅผ ์ํด ์๋ํํฐ ์์กด์ฑ์ ์ค์ผ ์ ์์ต๋๋ค.
๋ฏธ๋์ ์ํฅ๊ณผ ์ฑํ
๋ ์ฝ๋ ํํ๊ณผ ๊ทธ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ๊ด๋ฒ์ํ ์ฑํ์ ์ฌ๋ฌ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ๊ฒ์ ๋๋ค:
- ๋ธ๋ผ์ฐ์ ๋ฐ Node.js ์ง์: ์ฃผ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ ์ ๋ฐ์ ๊ฑธ์น ๊ณต์์ ์ธ ํฌํจ๊ณผ ์์ ์ ์ธ ๊ตฌํ์ด ํต์ฌ์ ๋๋ค.
- ๊ฐ๋ฐ์ ๊ต์ก: ์ด๋ฌํ ๊ธฐ๋ฅ์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ํํ ๋ฌธ์์ ์ปค๋ฎค๋ํฐ์ ์ดํด.
- ๋๊ตฌ ํตํฉ: ๋ฆฐํฐ, ํ์ ๊ฒ์ฌ๊ธฐ(TypeScript ๋ฑ), ๋๋ฒ๊น ๋๊ตฌ์ ์ง์.
์๋ฐ์คํฌ๋ฆฝํธ ์ํ๊ณ๊ฐ ์ฑ์ํจ์ ๋ฐ๋ผ ์์ธก ๊ฐ๋ฅ์ฑ, ์ฑ๋ฅ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํค๋ ๊ธฐ๋ฅ์ ์ธ์ ๋ ํ์๋ฐ์ต๋๋ค. ๋ถ๋ณ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฒฌ๊ณ ํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ ์ค์ํ ๋จ๊ณ์ ๋๋ค.
๊ณผ์ ์ ๋ฏธ๋ฌํ ์ฐจ์ด
์ ๋งํ์ง๋ง ๊ฐ๋ฐ์๋ ์ ์ฌ์ ์ธ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ์ธ์งํด์ผ ํฉ๋๋ค:
- ์ค์ฒฉ๋ ๊ฐ๋ณ ๊ตฌ์กฐ์ ๋๋ฑ์ฑ: ๋ ์ฝ๋ ํํ์ ๊ฐ๋ณ ๊ฐ์ฒด๋ ๋ฐฐ์ด์ด ํฌํจ๋ ๊ฒฝ์ฐ, ์๊ณ ๋ฆฌ์ฆ์ด ๋ช ์์ ์ผ๋ก ๊น์ ๋น๊ต๋ฅผ ์ ์ํ์ง ์๋ ํ ๊ธฐ๋ณธ ๋๋ฑ์ฑ ๊ฒ์ฌ๋ ์ฌ์ ํ ํด๋น ์ค์ฒฉ ํญ๋ชฉ์ ๋ํ ์ฐธ์กฐ ๋๋ฑ์ฑ์ ์์กดํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ด ์ ์ ์ ๋ ํด์ผ ํฉ๋๋ค.
- ์ฑ๋ฅ ํธ๋ ์ด๋์คํ: ๋ถ๋ณ ๊ตฌ์กฐ์ ๋ํ ๊น์ ๋๋ฑ์ฑ ๊ฒ์ฌ๋ผ๋ ๋งค์ฐ ํฌ๊ฑฐ๋ ๊น๊ฒ ์ค์ฒฉ๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ค ์ ์์ต๋๋ค. ๋ค์ํ ์๋๋ฆฌ์ค์์์ ์ฑ๋ฅ ํน์ฑ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ๋ง์ด๊ทธ๋ ์ด์ ๋ฐ ์ํธ ์ด์ฉ์ฑ: ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋ ์์ง ๋ ์ฝ๋ ํํ์ ์ง์ํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํตํฉํ ๋ ์ํธ ์ด์ฉ์ฑ์ ๋ํ ์ ์คํ ๊ณ ๋ ค๊ฐ ํ์ํฉ๋๋ค.
๊ฒฐ๋ก
์๋ฐ์คํฌ๋ฆฝํธ ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ธ์ด ๋ด์์ ๋ถ๋ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์์ด ์๋นํ ๋ฐ์ ์ ์๋ฏธํฉ๋๋ค. ๋ถ๋ณ ์ปฌ๋ ์ ์ ๋น๊ตํ๋ ํ์คํ๋๊ณ ํจ์จ์ ์ด๋ฉฐ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํจ์ผ๋ก์จ ๊ฐ๋ฐ์๊ฐ ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ๊ฒฌ๊ณ ํ๋ฉฐ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ๋ ์ฝ๋ ํํ์ด ์๋ฐ์คํฌ๋ฆฝํธ ํ์ค์ ๊ณ์ ํตํฉ๋จ์ ๋ฐ๋ผ ๊ทธ ๋๋ฑ์ฑ ๋ฉ์ปค๋์ฆ์ ์ดํดํ๋ ๊ฒ์ ํ๋ ์น ๊ฐ๋ฐ์ ํ์์ ์ธ ๊ธฐ์ ์ด ๋ ๊ฒ์ ๋๋ค. ๋ถ๋ณ์ฑ๊ณผ ๊ด๋ จ ๋น๊ต ์ ๋ต์ ์์ฉํ๋ ๊ฒ์ ์ ์ธ๊ณ์ ์ธ ๊ท๋ชจ์์ ํ๋ ์ํํธ์จ์ด ์์ง๋์ด๋ง์ ๋ณต์ก์ฑ์ ํค์ณ๋๊ฐ๋ ์ด์ ์ ๋๋ค.
๋ณต์กํ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ , ๋ํํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ๋๋ ๋ฐ์ดํฐ ์ง์ฝ์ ์ธ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ , ๋ ์ฝ๋ ํํ ๋๋ฑ์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฉด์ ์๋ ์์น์ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฐ์น ์๋ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ํ๋์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ์ฑํํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ฝ๋์ ํ์ง๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ๋์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ๊ตญ์ ์ ๋งฅ๋ฝ์์ ์๊ฐ๊ณผ ๋ณต์ก์ฑ์ ์ํ์ ๊ฒฌ๋ ์ ์๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.