experimental_taintObjectReference
๐ฏ experimental_taintObjectReference๋ ๋ฌด์์ผ๊น์?
React์ ์คํ์ ๊ธฐ๋ฅ ์ค ํ๋๋ก, ํ์ฌ๋ React ๋ด๋ถ ๊ฐ๋ฐ ๊ณผ์ ์์๋ง ์ฌ์ฉ๋๋ ๋๊ตฌ์์.
React ๊ฐ๋ฐ ํ์ด ํน์ ์ํฉ์์ ๊ฐ์ฒด๋ ์ฐธ์กฐ(reference)๋ฅผ ์ถ์ ํ๊ฑฐ๋ ํ์ธํ ๋ ํ์ฉํ๋ ๋๋ฒ๊น
๋๊ตฌ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ผ์.
๐งฉ ๋ฐฐ๊ฒฝ: React์ ๊ฐ์ฒด ์ฐธ์กฐ ๋ฌธ์
์ด ๊ฐ๋ ์ ์ดํดํ๋ ค๋ฉด **"๊ฐ์ฒด ์ฐธ์กฐ(Object Reference)"**์ ๋ํด ๋จผ์ ๊ฐ๋จํ ์์์ผ ํด์.
๐ฆ ๊ฐ์ฒด ์ฐธ์กฐ๋?
์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ ๋ณ์์ ๊ฐ์ ์ ์ฅํ ๋ **๋ฉ๋ชจ๋ฆฌ ์ฃผ์(์ฐธ์กฐ)**๋ฅผ ์ ์ฅํฉ๋๋ค.
์๋ฅผ ๋ค์ด:
const obj1 = { name: 'ํ๊ธธ๋' };
const obj2 = obj1; // obj2๋ obj1๊ณผ ๊ฐ์ ์ฐธ์กฐ๋ฅผ ๊ฐ๋ฆฌํด
obj2.name = '์ด์์ ';
console.log(obj1.name); // '์ด์์ '
์ฌ๊ธฐ์ obj2๋ obj1์ ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ obj2๋ฅผ ์์ ํ๋ฉด obj1๋ ๋ฐ๋๋ ๊ฑฐ์์.
React์์๋ ์ด๋ฐ ๊ฐ์ฒด ์ฐธ์กฐ๊ฐ **์ํ(State)**๋ Props๋ฅผ ๋ค๋ฃฐ ๋ ํฐ ์ด์๊ฐ ๋ ์ ์์ด์.
๐ ๋น์ ๋ก ์ดํดํ๊ธฐ: ๋์๊ด ์ฑ ์ฅ ์ด์ผ๊ธฐ
์ฌ๋ฌ๋ถ์ด ๋์๊ด์์ ์ผํ๋ค๊ณ ์๊ฐํด ๋ณด์ธ์. ๐
- ๊ฐ์ฒด๋ฅผ ์ฑ
์ด๋ผ๊ณ ๊ฐ์
- ์ฑ (๊ฐ์ฒด)์ ์ฑ ์ฅ(๋ฉ๋ชจ๋ฆฌ)์ ๊ฝ์๋๊ณ ,
- ๋๊ตฐ๊ฐ ์ฑ ์ ์์น(์ฐธ์กฐ)๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ๊ทธ ์ฑ ์ ์ง์ ๋ฉ๋ชจ๋ฅผ ํ๊ฑฐ๋ ๋ด์ฉ์ ๋ฐ๊ฟ ์ ์์ด์.
- ๋ฌธ์ ๊ฐ ์๊ธธ ๋
- ๋๊ตฐ๊ฐ ์ฑ ์ ์๋ชป ๊ฑด๋๋ฆฌ๊ฑฐ๋, ์ด๋์ ์์ ๋๋์ง ์ถ์ ํ๊ธฐ ์ด๋ ค์ธ ๋๊ฐ ์์ด์.
- ์ด๋ด ๋ **experimental_taintObjectReference**๋ ์ฑ (๊ฐ์ฒด ์ฐธ์กฐ)์ ์ถ์ ํ๊ฑฐ๋ ํ์ํด์ ๋๊ฐ, ์ด๋ป๊ฒ ์์ ํ๋์ง ํ์ธํ๋ ์ญํ ์ ํด์.
๐ ๏ธ React์ ์คํ์ ๊ธฐ๋ฅ: ๋๋ฒ๊น ๋๊ตฌ
React์์๋ ์ํ๋ Props๊ฐ ๋ถํ์ํ๊ฒ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์์์น ๋ชปํ ๋์์ด ๋ฐ์ํ ๋ ๋๋ฒ๊น
์ด ์ด๋ ค์ธ ์ ์์ด์.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด experimental_taintObjectReference ๊ฐ์ ์ถ์ ๋๊ตฌ๊ฐ ์คํ์ ์ผ๋ก ๋์
๋ ๊ฑฐ์์.
๐จ ํ์ฌ ์ํ
**experimental_taintObjectReference**๋ ์ผ๋ฐ ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋๊ณ ,
React ํ์ด React ๋ด๋ถ์ ์ผ๋ก ๋๋ฒ๊น
ํ๊ฑฐ๋ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์คํํ ๋ ์ฌ์ฉํ๋ ๋๊ตฌ์
๋๋ค.
๐ ์ด ๊ฐ๋ ์ ๊ธฐ์ตํด์ผ ํ ๊น?
์ง๊ธ์ ์ด๋ณด์๊ฐ ๊ผญ ์์์ผ ํ ๊ฐ๋
์ ์๋์์.
React ํ์ ์คํ์ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ๋์ค์ ๋ ๋ฐ์ ํด์ ๊ณต์ ๊ธฐ๋ฅ์ผ๋ก ์ฑํ๋ ์๋ ์์ด์.
๊ทธ๋๊ฐ ๋๋ฉด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ฐธ์กฐ๋ฅผ ๋ ์ฝ๊ฒ ์ถ์ ํ๊ณ ๋๋ฒ๊น ํ ์ ์๊ฒ ๋ ๊ฑฐ์์.
๐ ๋ง๋ฌด๋ฆฌ
๊ฐ๋จํ ์ ๋ฆฌํ๋ฉด:
**experimental_taintObjectReference**๋ React์ ์คํ์ ๊ธฐ๋ฅ ์ค ํ๋๋ก, ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ์ถ์ ํ๊ณ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น
ํ๋ ๋๊ตฌ์
๋๋ค.
ํ์ฌ๋ React ํ์ด ๊ฐ๋ฐ ๊ณผ์ ์์๋ง ์ฌ์ฉํ๊ณ ์์ผ๋, ๋๋ฌด ๊ฑฑ์ ํ์ง ์์ผ์ ๋ ๋ผ์. ๐