๐Ÿ‘ฉ๐Ÿป์•ˆ๋…•ํ•˜์„ธ์š” ์›นํŒฉ ๋‹ค๋ค„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ! ์ œ๊ฐ€ ์›นํŒฉ์„ ๊ณต๋ถ€ํ•˜๋Š” ์ด์œ ๋Š” ์ข€ ๋” ํšจ์œจ์ ์ธ ์ž‘์—… ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ์ธ๋ฐ์š”! ์›นํŒฉ์˜ ์ข‹์€์  ์„ธ ๊ฐ€์ง€๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•ด๋“œ๋ฆด๊ฒŒ์š”.

  1. ํŒŒ์ผ ๋‹จ์œ„์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ ๊ด€๋ฆฌ์˜ ํ•„์š”์„ฑ (๋ชจ๋“ˆ๋ฒˆ๋“ค๋ง)
  2. ์›น ๊ฐœ๋ฐœ ์ž‘์—… ์ž๋™ํ™” ๋„๊ตฌ (HTML,CSS,JS,์ด๋ฏธ์ง€ ์••์ถ• + CSS ์ „์ฒ˜๋ฆฌ๊ธฐ ๋ณ€ํ™˜)
  3. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น ๋ฅธ ๋กœ๋”ฉ ์†๋„์™€ ๋†’์€ ์„ฑ๋Šฅ

์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณด๋„๋ก ํ• ๊ฑฐ์—์š”.

๋จผ์ € ํŒŒ์ผ ๋‹จ์œ„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ ๊ด€๋ฆฌ ํ•„์š”์„ฑ์„ ์•Œ์•„๋ณด์ž๋ฉด, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•˜๋ ค๋ฉด HTML,CSS,JS,์ด๋ฏธ์ง€,ํฐํŠธ ๋“ฑ ๋งŽ์€ ํŒŒ์ผ๋“ค์ด ํ•„์š”ํ•˜์ฃ  ! ์ด๊ฒŒ ๋ชจ๋‘ ๋‹ค ๋ชจ๋“ˆ์ด๋ผ๊ณ  ์ง€์นญํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋ง์ด๋ž€ ์ˆ˜๋งŽ์€ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ณ‘ํ•ฉ ๋ฐ ์••์ถ• ํ•ด์ฃผ๋Š” ๋™์ž‘์„ ์˜๋ฏธํ•ด์š”. ๊ทธ๋ฆฌ๊ณ  ์›นํŒฉ ๋‹ค๋ค„๋ณด๋ฉด์„œ ์ž์ฃผ ๋“ค์–ด๋ณด์…จ์„ '๋นŒ๋“œํ•˜๋‹ค = ๋ฒˆ๋“ค๋ง = ๋ณ€ํ™˜ํ•˜๋‹ค' ์ด ์„ธ ๊ฐ€์ง€ ๋œป์ด ๋‹ค ๊ฐ™์€ ๋œป์ž…๋‹ˆ๋‹ค. ๐Ÿ™Œ

์›น ๊ฐœ๋ฐœ ์ž‘์—… ์ž๋™ํ™” ๋„๊ตฌ๋ž€ HTML,CSS,JS,์ด๋ฏธ์ง€ ์••์ถ•๊ณผ CSS ์ „์ฒ˜๋ฆฌ๊ธฐ ๋ณ€ํ™˜ ํ•ด์ฃผ๋Š” ์ผ๋“ค์„ ์ž๋™ํ™” ํ•ด์ฃผ๋Š” ๋„๊ตฌ๋“ค์ด ํ•„์š”ํ–ˆ๋Š”๋ฐ ๊ทธ๋ž˜์„œ ๊ทธ๋ŸฐํŠธ์™€ ๊ฑธํ”„๋ผ๋Š” ๊ฒƒ์ด ๋“ฑ์žฅํ–ˆ์–ด์š”. ์ฐธ๊ณ ๋กœ ๊ฑธํ”„๋Š” ์ฒซ ํšŒ์‚ฌ ๋•Œ ์‚ฌ์šฉํ•ด๋ดค๋Š”๋ฐ ์ง„์งœ ํŽธํ•˜๋”๋ผ๊ตฌ์š”... ํ•˜์ง€๋งŒ ์ €๋Š” ๋‹ค์ˆ˜๊ฐ€ ์„ ํƒํ•œ ์›นํŒฉ์„ ๋ฐฐ์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค !!

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น ๋ฅธ ๋กœ๋”ฉ ์†๋„์™€ ๋†’์€ ์„ฑ๋Šฅ์„ ์œ„ํ•œ ์ด์œ ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ์›น์‚ฌ์ดํŠธ๋ฅผ ์ ‘๊ทผํ•  ๋•Œ 3์ดˆ ์ด๋‚ด๋กœ ์›น ์‚ฌ์ดํŠธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋“ค์€ ํ•ด๋‹น ์‚ฌ์ดํŠธ๋ฅผ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ์ง‘์ค‘๋ ฅ์„ ์žƒ๊ฒŒ ๋ผ์š”. ๊ทธ๋ž˜์„œ ์›น์‚ฌ์ดํŠธ ๋กœ๋”ฉ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋…ธ๋ ฅ๋“ค์„ ํ•ด์•ผ ๋˜๋Š”๋ฐ, ๊ทธ ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๋…ธ๋ ฅ์ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„๋กœ ์š”์ฒญํ•˜๋Š” ํŒŒ์ผ ์ˆซ์ž๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘์—…ํ•œ ํŒŒ์ผ์€ ๋งŽ์€๋ฐ ํŒŒ์ผ ์ˆ˜๋ฅผ ์ค„์—ฌ์ค€๋‹ค๋ผ... ์ •๋ง ์‹ ๋ฐ•ํ•œ ๊ฑฐ ๊ฐ™์•„์š”.

 

๐Ÿฅ ์›นํŒฉ์„ ์•Œ์•„๊ฐ€๊ธฐ ์ „, ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐœ๋… ์ •๋ฆฌ ํ•˜๊ณ  ๊ฐ‘์‹œ๋‹ค.

 


 

IIFE (Immediately Invoked Function Expression)

์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ํ‘œํ˜„์€ ์ •์˜๋˜์ž๋งˆ์ž ์ฆ‰์‹œ ์‹คํ–‰๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋ฅผ ๋งํ•ด์š”.
(function () {
    statements
})();

์œ„์ฒ˜๋Ÿผ ์ฒซ ๋ฒˆ์งธ ๊ด„ํ˜ธ๋กœ ๋‘˜๋Ÿฌ์‹ธ์ธ ์ต๋ช…ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ „์—ญ ์Šค์ฝ”ํ”„์— ๋ถˆํ•„์š”ํ•œ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด ์˜ค์—ผ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, IIFE ๋‚ด๋ถ€ ์•ˆ์œผ๋กœ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋“ค์ด ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด์—์š”. ๋‘ ๋ฒˆ์งธ ๊ด„ํ˜ธ๋Š” ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ํ•จ์ˆ˜๋ฅผ ์ฆ‰์‹œ ํ•ด์„ํ•ด์„œ ์‹คํ–‰์‹œ์ผœ์ค˜์š”.

 

๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ ์ŠคํŽ™

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ช…์„ธ๊ฐ€ AMD, CommonJS ์ž…๋‹ˆ๋‹ค. CommonJS๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ™˜๊ฒฝ์—์„œ ๋ชจ๋“ˆํ™” ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. export ํ‚ค์›Œ๋“œ๋กœ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค๊ณ  require() ํ•จ์ˆ˜๋กœ ๋ถˆ๋Ÿฌ๋“ค์ด๋Š” ๋ฐฉ์‹์ด์ง€์š”. ๋Œ€ํ‘œ์ ์ธ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ํ”Œ๋žซํผ์ธ Node.js์—์„œ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๋‚ด๋ณด๋‚ผ ๋•Œ (export)

export function sum(a,b) { return a + b;}

 

๊ฐ€์ ธ์˜ฌ ๋•Œ (import)

import * as math from './math.js'

 

AMD : ๋น„๋™๊ธฐ๋กœ ๋กœ๋”ฉ๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์„ ๋งํ•ด์š”.

UMD : AMD ๊ธฐ๋ฐ˜์œผ๋กœ CommonJS ๋ฐฉ์‹๊นŒ์ง€ ์ง€์›ํ•˜๋Š” ํ†ตํ•ฉ ํ˜•ํƒœ์—์š”. ๊ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐ์ž์˜ ์ŠคํŽ™์„ ์ œ์•ˆํ•˜๋‹ค๊ฐ€ ES2015 ์—์„œ ํ‘œ์ค€๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ๋‚ด๋†“์•˜์–ด์š”. ์ง€๊ธˆ์€ ๋ฐ”๋ฒจ๊ณผ ์›นํŒฉ์„ ์ด์šฉํ•ด ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด์ง€์š”.

 

<script type="module" src="src/math.js"></script>

HTML ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด script ๊ตฌ๋ฌธ ์•ˆ์— type="module" ์„ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•œ๋‹ต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿด ๋•Œ๋Š” ์„œ๋ฒ„๋ฅผ ๋Œ๋ ค์•ผ ๋˜๋Š”๋ฐ npm์œผ๋กœ lite-server ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด ์ค˜์•ผํ•ด์š”.

$npx lite-server

์„ค์น˜๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ํ•ด์ฃผ๊ณ  ํ˜„์žฌ ํด๋”๋ฅผ ์„œ๋ฒ„๋กœ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค ! 

 


 

์—”ํŠธ๋ฆฌ / ์•„์›ƒํ’‹

์›นํŒฉ์€ ์—ฌ๋Ÿฌ๊ฐœ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๋ฒˆ๋“ค๋Ÿฌ๋ผ๊ณ  ํ–ˆ์ž–์•„์š”. ํ•˜๋‚˜์˜ ์‹œ์ž‘์ ์œผ๋กœ๋ถ€ํ„ฐ ์˜์กด์ ์ธ ๋ชจ๋“ˆ์„ ์ „๋ถ€ ์ฐพ์•„๋‚ด์„œ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ ๋งŒ๋“ค์–ด์ค˜์š”. app.js ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด math.js ํŒŒ์ผ์„ ์ฐพ์€ ๋’ค ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์ด์˜ˆ์š”. ์œ„์— ์‚ฌ์ง„์„ ๋ณด๋ฉด ์ข€ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒ๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์—”ํŠธ๋ฆฌ์™€ ์•„์›ƒํ’‹์ด ๋ญ๋ƒํ•˜๋ฉด, ์—”ํŠธ๋ฆฌ๋Š” ์™ผ์ชฝ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ๋œปํ•˜๊ณ (=์‹œ์ž‘์ ) ์•„์›ƒํ’‹์€ ์˜ค๋ฅธ์ชฝ์— ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ ๋œปํ•ด์š”. ์›นํŒฉ ๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ๊ฐœ๋…๋“ค์„ ์•Œ์•„๋ดค๋Š”๋ฐ์š”. ๋‹ค์ŒํŽธ์€ ์‹ค์ „์œผ๋กœ ์„ค๋ช…ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

+ Recent posts