JavaScript๋ฅผ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ๊ฐ๋ ์ด๋ฐ ์์ํ ๋ฌธ๋ฒ์ ๋ณด๊ฒ ๋ฉ๋๋ค:
(() => {
// ๋ญ๊ฐ ์คํ๋๋ ์ฝ๋
})();
์ฒ์ ๋ณด๋ฉด ์ด๊ฒ ๋๋์ฒด ๋ญ์ง.....? ์ถ์๋ฐ์, ์ฆ์ ์คํ ํจ์ ํํ์ ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฌธ๋ฒ์ ๋๋ค.
์ด๋ฒ๊ธ์์๋ IIFE๊ฐ ๋ฌด์์ธ์ง, ์ ์ฐ๋์ง, ์ธ์ ์ ์ฉํ์ง ์ ๋ฆฌํด๋ณด๋ก ํ๊ฒ ์ต๋๋ค.
๐ ๋ชฉ์ฐจ
์ฆ์ ์คํ ํจ์ ํํ์์ด๋?
์ฆ์ ์คํ ํจ์ ํํ์(IIFE)์ ์ ์ํ์๋ง์ ๋ฐ๋ก ์คํ๋๋ ํจ์๋ฅผ ๋งํฉ๋๋ค.
โ ๋ฌธ๋ฒ ํํ
(fucntion() {
console.log("์ฆ์ ์คํ๋ฉ๋๋ค!");
})();
๋๋ ํ์ดํํจ์ ๋ฒ์ ์ผ๋ก๋ ์ธ ์ ์์ต๋๋ค:
(() => {
console.log("์ด๊ฒ๋ ์ฆ์ ์คํ!");
})();
๐ ์ ์ฌ์ฉํ๋ ๊ฑธ๊น?
- ํ๋ฒ ๋ง ์คํ๋๋ ์ด๊ธฐํ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ ์ถ์ ๋
- ์ ์ญ ๋ณ์ ์ค์ผ์ ๋ฐฉ์งํ๊ณ , ์ค์ฝํ๋ฅผ ์ ํํ๊ณ ์ถ์ ๋
- ์ผํ์ฑ ํจ์์ธ๋ฐ ๊ตณ์ด ๋ฐ์ ๊บผ๋ด์ ๋ณ์๋ก ๋ง๋ค๊ธฐ ๊ท์ฐฎ์ ๋
โ ์์ ์ฝ๋
const result = ( (usimNum) => {
if (usimNum == null) return false;
const parsedUsim = Number(usimNum);
if (isNaN(parsedUsim)) return false;
const usimString = String(parsedUsim);
return usimString.length === 6 && /^\d{6}/.test(usimString);
})(searchParms.usimNum);
๐ก ์ด๊ฒ ํ๋ ์ผ?
searchParams?.usimNum ๊ฐ์ ๋ฐ์์
- null ๋๋ undefined์ธ์ง ํ์ธํ๊ณ
- ์ซ์๋ก ๋ณํ ๊ฐ๋ฅํ์ง ์ฒดํฌํ๊ณ
- 6์๋ฆฌ ์ซ์์ธ์ง ์ ๊ทํํ์์ผ๋ก ๊ฒ์ฌํ ๋ค
- ๊ทธ ๊ฒฐ๊ณผ๋ฅผ result์ ์ ์ฅํฉ๋๋ค.
์ฆ, result ํจ์๋ฅผ ์ ์ํ์๋ง์ ๋ฐ๋ก ์คํํ๊ณ , ๊ฒฐ๊ณผ๋ง ๋ณ์์ ๋ด์ต๋๋ค.
๐์์ฝ
- IIFE๋ ์ ์ํ์๋ง์ ์ฆ์ ์คํ๋๋ ํจ์์ด๋ค.
- ๋ณดํต ์ผํ์ฑ ์ด๊ธฐํ๋ ์ค์ฝํ ๊ฒฉ๋ฆฌ๊ฐ ํ์ํ ๋ ์ ์ฉํ๋ค
- ๊ดํธ๋ก ํจ์ ์ ์ฒด๋ฅผ ๊ฐ์ธ๊ณ , ๋์ ()๋ฅผ ๋ถ์ด๋ฉด ๋๋ค.