JS

[JavaScript] ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํ‘œํ˜„์‹(IIFE) ์ด๋ž€?

hyonie 2025. 4. 2. 16:21

JavaScript๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ€๋” ์ด๋Ÿฐ ์ƒ์†Œํ•œ ๋ฌธ๋ฒ•์„ ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค:

(() => {
  // ๋ญ”๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
})();

 

์ฒ˜์Œ ๋ณด๋ฉด ์ด๊ฒŒ ๋„๋Œ€์ฒด ๋ญ์ง€.....? ์‹ถ์€๋ฐ์š”, ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํ‘œํ˜„์‹ ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ๊ธ€์—์„œ๋Š” IIFE๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์™œ ์“ฐ๋Š”์ง€, ์–ธ์ œ ์œ ์šฉํ•œ์ง€ ์ •๋ฆฌํ•ด๋ณด๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 


์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์ด๋ž€?

์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํ‘œํ˜„์‹(IIFE)์€ ์ •์˜ํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

โœ… ๋ฌธ๋ฒ• ํ˜•ํƒœ

(fucntion() {
  console.log("์ฆ‰์‹œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค!");
})();

 

๋˜๋Š” ํ™”์‚ดํ‘œํ•จ์ˆ˜ ๋ฒ„์ „์œผ๋กœ๋„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

(() => {
  console.log("์ด๊ฒƒ๋„ ์ฆ‰์‹œ ์‹คํ–‰!");
})();

 

 

๐Ÿ” ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?

  1. ํ•œ๋ฒˆ ๋งŒ ์‹คํ–‰๋˜๋Š” ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋–„
  2. ์ „์—ญ ๋ณ€์ˆ˜ ์˜ค์—ผ์„ ๋ฐฉ์ง€ํ•˜๊ณ , ์Šค์ฝ”ํ”„๋ฅผ ์ œํ•œํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  3. ์ผํšŒ์„ฑ ํ•จ์ˆ˜์ธ๋ฐ ๊ตณ์ด ๋ฐ–์— ๊บผ๋‚ด์„œ ๋ณ€์ˆ˜๋กœ ๋งŒ๋“ค๊ธฐ ๊ท€์ฐฎ์„ ๋•Œ

 

 

 

 

โœ” ์˜ˆ์ œ ์ฝ”๋“œ

 

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๋Š” ์ •์˜ํ•˜์ž๋งˆ์ž ์ฆ‰์‹œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.
  • ๋ณดํ†ต ์ผํšŒ์„ฑ ์ดˆ๊ธฐํ™”๋‚˜ ์Šค์ฝ”ํ”„ ๊ฒฉ๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค
  • ๊ด„ํ˜ธ๋กœ ํ•จ์ˆ˜ ์ „์ฒด๋ฅผ ๊ฐ์‹ธ๊ณ , ๋์— ()๋ฅผ ๋ถ™์ด๋ฉด ๋œ๋‹ค.