๐Ÿ“– ์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฌธ์ œ์ 

c_yjยท2022๋…„ 6์›” 26์ผ
0

DeepDive

๋ชฉ๋ก ๋ณด๊ธฐ
11/42
post-thumbnail

์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฌด๋ถ„๋ณ„ํ•œ ์‚ฌ์šฉ์€ ์œ„ํ—˜ํ•˜๋‹ค. ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ด์œ ๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค๋ฉด ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

โœ”๏ธ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ

๋ณ€์ˆ˜๋Š” ์„ ์–ธ์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ณ , ํ• ๋‹น์„ ํ†ตํ•ด ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ ์–ธ์  ๊ฐ€ ์†Œ๋ฉธํ•œ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜๋Š” ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ์žˆ๋‹ค.
๋ณ€์ˆ˜์— ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ์—†๋‹ค๋ฉด ํ•œ๋ฒˆ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜์ง€ ์•Š๋Š” ํ•œ ์˜์›ํžˆ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ ์œ ํ•˜๊ฒŒ ๋œ๋‹ค..

โญ๏ธ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ

์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ํ•จ์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ์ผ์น˜ํ•œ๋‹ค.

โญ๏ธ ์ „์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ

var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ์ „์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋Š” ์ „์—ญ ๊ฐ์ฒด์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ์ผ์น˜ํ•œ๋‹ค.

โœ”๏ธ ์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฌธ์ œ์ 

โญ๏ธ ์•”๋ฌต์  ๊ฒฐํ•จ

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

โญ๏ธ ๊ธด ์ƒ๋ช… ์ฃผ๊ธฐ

์ „์—ญ ๋ณ€์ˆ˜๋Š” ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ๊ธธ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌ์†Œ์Šค๋„ ์˜ค๋žœ ๊ธฐ๊ฐ„ ์†Œ๋น„ํ•œ๋‹ค. ๋˜ํ•œ ์ „์—ญ ๋ณ€์ˆ˜์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„๋„ ๊ธธ๊ณ  ๊ธฐํšŒ๋„ ๋งŽ๋‹ค.

โญ๏ธ ์Šค์ฝ”ํ”„ ์ฒด์ธ ์ƒ์—์„œ ์ข…์ ์— ์กด์žฌ

์ „์—ญ ๋ณ€์ˆ˜๋Š” ์Šค์ฝ”ํ”„ ์ฒด์ธ ์ƒ์—์„œ ์ข…์ ์— ์กด์žฌํ•œ๋‹ค. ์ด๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๊ฒ€์ƒ‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ฆ‰ ์ „์—ญ ๋ณ€์ˆ˜์˜ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๊ฐ€์žฅ ๋А๋ฆฌ๋‹ค.

โญ๏ธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์˜ค์—ผ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์  ์ค‘ ํ•˜๋‚˜๋Š” ํŒŒ์ผ์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค ํ•ด๋„ ํ•˜๋‚˜์˜ ์ „์—ญ ์Šค์ฝ”ํ”„๋ฅผ ๊ณต์œ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ํŒŒ์ผ ๋‚ด์—์„œ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ๋ช…๋ช…๋œ ์ „์—ญ ๋ณ€์ˆ˜๋‚˜ ์ „์—ญ ํ•จ์ˆ˜๊ฐ€ ๊ฐ™์€ ์Šค์ฝ”ํ”„ ๋‚ด์— ์กด์žฌํ•  ๊ฒฝ์šฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

โœ”๏ธ ์ „์—ญ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ์„ ์–ต์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฌด๋ถ„๋ณ„ํ•œ ์‚ฌ์šฉ์€ ์œ„ํ—˜ํ•˜๋‹ค. **์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ด์œ ๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค๋ฉด ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋ณ€์ˆ˜์˜ ์Šค์ฝ”ํ”„๋Š” ์ข์„์ˆ˜๋ก ์ข‹๋‹ค

โญ๏ธ ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜

๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜๋กœ ๊ฐ์‹ธ๋ฉด ๋ชจ๋“  ๋ณ€์ˆ˜๋Š” ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜์˜ ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค.

(function () {
  var foo = 10; // ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜์˜ ์ง€์—ญ ๋ณ€์ˆ˜
  // ...
}());

console.log(foo); // ReferenceError: foo is no defined

โญ๏ธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ์ฒด

์ „์—ญ์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์—ญํ• ์„ ๋‹ด๋‹นํ•  ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ „์—ญ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๋ณ€์ˆ˜๋ฅผ ํ”„๋กœํผํ‹ฐ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

var MYAPP = {} ; // ์ „์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ์ฒด

MYAPP.name = "Lee";

console.log(MYAPP.name); // Lee

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์‹๋ณ„์ž ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ํšจ๊ณผ๋Š” ์žˆ์œผ๋‚˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ์ „์—ญ ๋ณ€์ˆ˜์— ํ•ด๋‹น๋˜๋ฏ€๋กœ ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€๋Š” ์•Š๋‹ค.

โญ๏ธ ๋ชจ๋“ˆ ํŒจํ„ด

๋ชจ๋“ˆ ํŒจํ„ด์€ ํด๋ž˜์Šค๋ฅผ ๋ชจ๋ฐฉํ•ด์„œ ๊ด€๋ จ์ด ์žˆ๋Š” ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ๋ชจ์•„ ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜๋กœ ๊ฐ์‹ธ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์„ ๋งŒ๋“ ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ ํŒจํ„ด์€ ํด๋กœ์ €๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘๋œ๋‹ค.
๋ชจ๋“ˆ ํŒจํ„ด์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ „์—ญ ๋ณ€์ˆ˜์˜ ์–ต์ œ๋Š” ๋ฌผ๋ก  ์บก์ˆ ํ™”๊นŒ์ง€ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

โญ๏ธ ES6 ๋ชจ๋“ˆ

ES6 ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋”๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ES6 ๋ชจ๋“ˆ์€ ํŒŒ์ผ ์ž์ฒด์˜ ๋…์ž์ ์ธ ๋ชจ๋“ˆ ์Šค์ฝ”ํ”„๋ฅผ ์ œ๊ณตํ•œ๋‹ค. script ํƒœ๊ทธ์— type="module" ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋กœ๋“œ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์€ ๋ชจ๋“ˆ๋กœ์„œ ๋™์ž‘ํ•œ๋‹ค.

<script type="module" src="app.js"></script>
profile
FrontEnd Developer

0๊ฐœ์˜ ๋Œ“๊ธ€