Skip to content

javascript_in_depth_1

kyusung edited this page Apr 19, 2017 · 1 revision

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šค์ฝ”ํ”„์™€ ํด๋กœ์ €

์Šค์ฝ”ํ”„

์Šค์ฝ”ํ”„๋ž€

์Šค์ฝ”ํ”„(scope)๋ž€ ํ˜„์žฌ ์œ„์น˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋“ค์˜ ๋ฒ”์œ„๋ฅผ ๋œปํ•œ๋‹ค.
์–ด๋– ํ•œ ๋ณ€์ˆ˜๊ฐ€ ์Šค์ฝ”ํ”„์•ˆ์— ์„ ์–ธ๋˜์–ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ์Šค์ฝ”ํ”„ ์•ˆ์—์„œ๋Š” ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•ด์„œ ์ฝ๊ฑฐ๋‚˜ ์“ธ์ˆ˜ ์žˆ๊ณ , ์Šค์ฝ”ํ”„ ๋ฐ–์—์„œ๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

์Šค์ฝ”ํ”„์˜ ํ•จ์ •

์Šค์ฝ”ํ”„ ์ƒ์„ฑ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ ์˜ˆ์ œ
์˜ˆ์ œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋Š” ์Šค์ฝ”ํ”„๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์œ ์ง€๋˜๋Š” ๋ฐฉ๋ฒ• ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์™€๋Š” ๋‹ค๋ฅธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์ง• ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šค์ฝ”ํ”„์™€ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ์ž˜ ์•Œ์•„์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค.

์ƒ์„ฑ๋˜๋Š” ์Šค์ฝ”ํ”„ ์ฒด์ธ
foo-loop๋ฅผ ๋Œ๋ฉด์„œ addEventListener()๋กœ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•  ๋•Œ ์ต๋ช…ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๋ฉด์„œ ์ด๋•Œ๋ถ€ํ„ฐ ์Šค์ฝ”ํ”„๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์Šค์ฝ”ํ”„ ์ฒด์ธ(scope-chain)์„ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. ๊ฐ <div>์˜ ํด๋ฆญ ์ด๋ฒคํŠธ์— ์„ค์ •๋˜์—ˆ๋˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋“ค์€ ๋ชจ๋‘ ๊ฐ™์€ ์Šค์ฝ”ํ”„์˜ ๋ณ€์ˆ˜์ธ i๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. 3๋ฒˆ์งธ ๋ฃจํ”„๋ฅผ ๋Œ๊ณ ๋‚˜์„œ ๋งˆ์ง€๋ง‰์— i++๊ฐ€ ๋˜๊ณ ๋‚˜๋ฉด ๋ณ€์ˆ˜ i์˜ ๊ฐ’์ด 3์ด ๋˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋“ค์€ ๊ฐ’์ด 3์ธ i๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์ค‘์— ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚˜๋ฉด alert() ํ•จ์ˆ˜๋Š” ๊ฐ’์ด 3์ธ i๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋˜์–ด ๋ชจ๋‘ ๋˜‘๊ฐ™์ด "You clicked div #3"์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์Šค์ฝ”ํ”„์˜ ์ƒ์„ฑ

for-loop ๋ธ”๋ก ์Šค์ฝ”ํ”„ ์‹œํ—˜ ์˜ˆ์ œ
์˜ˆ์ œ์™€ ๊ฐ™์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ชจ๋“  ๊ฐ’์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด์ฒ˜๋Ÿผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ์ผ๋ฐ˜์ ์ธ ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š”๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํŠน์ • ๊ตฌ๋ฌธ์ด ์‹คํ–‰๋  ๋•Œ ์Šค์ฝ”ํ”„๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ์Šค์ฝ”ํ”„ ์ฒด์ธ์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ๋ฌธ

  • function
  • with
  • catch

1) function
function ๋ธ”๋ก ์Šค์ฝ”ํ”„ ์‹œํ—˜ ์˜ˆ์ œ

2) catch
catch๋Š” ๋‚ด๋ถ€๋กœ ์ „๋‹ฌ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๊ณ , ์™ธ๋ถ€์—์„œ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

3) with
with ๊ตฌ๋ฌธ์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์€ ๊ฐ์ฒด๋ฅผ ์Šค์ฝ”ํ”„์ฒด์ธ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋™์ž‘ํ•œ๋‹ค.

with (object) {
    statement;
}

์ธ์ž๋กœ ๋ฐ›์€ object๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๋“ค์€ ์Šค์ฝ”ํ”„ ์ฒด์ธ์— ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๋‹น ๋ณ€์ˆ˜๋“ค์„ ๋กœ์ปฌ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

with๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ์˜ˆ์ œ

์ƒ์„ฑ๋˜๋Š” ์Šค์ฝ”ํ”„ ์ฒด์ธ

with๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ด์œ 

  • with ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์†Œ์Šค์˜ ๋ชจํ˜ธ์„ฑ
function doSomething(value, obj) {
    with (obj) {
        console.log(value);
        value = "which scope is this?";
    }
}

value๊ฐ€ ์–ด๋–ค value๋ฅผ ๋งํ•˜๋Š”์ง€ ์•Œ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. doSomething์—์„œ ์‚ฌ์šฉํ•˜๋Š” value์ด๊ฑฐ๋‚˜, obj ๋‚ด๋ถ€์˜ value์ด๊ฑฐ๋‚˜ ๋‘˜์ค‘ ํ•˜๋‚˜์ธ๋ฐ, ์ด ๋ถ€๋ถ„์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด obj์˜ ๊ตฌ์กฐ๋ถ€ํ„ฐ ํŒŒ์•…ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ƒ๊ธด๋‹ค.

  • ECMAScript 6 ํ‘œ์ค€์—์„œ with ๊ตฌ๋ฌธ ์ œ์™ธ
  • with ๊ตฌ๋ฌธ์œผ๋กœ DOM ์Šคํƒ€์ผ ์„ค์ • ๋ฌธ์ œ์™€ ๋Œ€์•ˆ
var s = document.getElementById("myDiv").style;
s.background = "yellow";
s.color = "red";
s.border = "1px solide black";

DOM์˜ ํ•˜์œ„ ์†์„ฑ์—๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด์„œ ์†์„ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์Šค์ฝ”ํ”„์˜ ์ง€์†์„ฑ

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

1) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ
ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฌธ์ œ ํ•ด๊ฒฐ
์ƒ์„ฑ๋˜๋Š” ์Šค์ฝ”ํ”„ ์ฒด์ธ

with ๊ตฌ๋ฌธ์™€ ๋น„์Šทํ•œ ์Šค์ฝ”ํ”„์ฒด์ธ์„ ์ƒ์„ฑํ•œ๋‹ค. ํ•˜์ง€๋งŒ with๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ชจํ˜ธ์„ฑ์„ ๋ฐฐ์ œํ•˜๊ณ , ์™„๋ฒฝํ•˜๊ฒŒ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ์Šค์ฝ”ํ”„๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•„์š”ํ•  ๋•Œ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ๋งŽ์ด ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์„ฑ์—์„œ๋Š” ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์•ผ ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ์‹์ด๋‹ค.

2) ํด๋กœ์ €๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ œํ•ด๊ฒฐ
ํด๋กœ์ €๋ฅผ ์ด์šฉํ•œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฌธ์ œ ํ•ด๊ฒฐ

IIFE๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•จ์ˆ˜(function)์„ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.
๋ฐ˜ํ™˜๋œ ํ•จ์ˆ˜๋Š” index ๋ณ€์ˆ˜๋ฅผ ์ƒ์œ„ ์Šค์ฝ”ํ”„ ์ฒด์ธ์— ์ถ”๊ฐ€ํ•œ ๋’ค addEventListener() ํ•จ์ˆ˜์˜ 2๋ฒˆ์งธ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

์ƒ์„ฑ๋˜๋Š” ์Šค์ฝ”ํ”„ ์ฒด์ธ

ํด๋กœ์ €

ํด๋กœ์ €๋ž€

ํŠน์ • ํ•จ์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๋“ค์ด ์„ ์–ธ๋œ ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„(lexical scope)๋Š” ๊ณ„์† ์œ ์ง€๋˜๋Š”๋ฐ, ๊ทธ ํ•จ์ˆ˜์™€ ์Šค์ฝ”ํ”„๋ฅผ ๋ฌถ์–ด์„œ ํด๋กœ์ €๋ผ๊ณ  ํ•œ๋‹ค.

ํด๋กœ์ € ์ดํ•ดํ•˜๊ธฐ

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํด๋กœ์ €

count ๋ณ€์ˆ˜๋Š” outer() ํ•จ์ˆ˜์˜ ๋กœ์ปฌ ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ๋งˆ์น˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ ํ”ํžˆ ๋งํ•˜๋Š” 'private ๋ณ€์ˆ˜'์™€ ๋น„์Šทํ•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ count ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜ inner๋ฅผ outer() ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์ง€์ •ํ•˜๊ณ , ์ด๋ฅผ ๊ธ€๋กœ๋ฒŒ ์˜์—ญ์— ์žˆ๋Š” increas ๋ณ€์ˆ˜์— ํ• ๋‹นํ•จ์œผ๋กœ์จ, outer() ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ๋„ increase ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด count ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

ํด๋กœ์ €์˜ ์‹ค์ œ ํ™œ์šฉ ์˜ˆ

ํด๋กœ์ €๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋ชจ๋“ˆ์—์„œ private์œผ๋กœ ๋‚˜์˜ ๋ณ€์ˆ˜๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋‚˜ static ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ผ์ƒ์ ์œผ๋กœ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์— ์ถ”๊ฐ€์ ์ธ ๊ฐ’๋“ค์„ ๋„˜๊ฒจ์ค˜์„œ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜ ์ฒ˜์Œ์— ์ดˆ๊ธฐํ™”ํ–ˆ๋˜ ๊ฐ’์„ ๊ณ„์† ์œ ์ง€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋„ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋กœ์ €์˜ ์‹ค์ œ ํ™œ์šฉ ์˜ˆ์ œ

  • ํด๋กœ์ €๋กœ ํ•œ๋ฒˆ๋งŒ DOM ํƒ์ƒ‰ํ•˜๊ณ  appendDiv๋ฅผ ๊ณ„์† ๋ณด๊ด€ํ•˜์—ฌ ํ™œ์šฉ
  • <div>,<img>๋“ฑ ๋…ธ๋“œ/ํ…œํ”Œ๋ฆฟ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ  ํ•„์š”์‹œ์— ๋ณต์ œ ์ƒ์„ฑํ•˜์—ฌ ํ™œ์šฉ
  • ํ•˜๋‚˜์˜ <div>์—๋งŒ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์„ค์ •ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฒคํŠธ ๋ธ๋ฆฌ๊ฒŒ์ด์…˜ ํŒจํ„ด
  • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๋Œ€์ƒ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ
  • callback ๋ณ€์ˆ˜๋ฅผ ํ™œ์š”ํ•˜์—ฌ ๋Œ€์ƒ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ์ฝœ๋ฐฑํ•จ์ˆ˜ ํ˜ธ์ถœํ•˜๊ธฐ
  • HTML5 ์ŠคํŽ™์— ๋งž๋Š” ์‚ฌ์šฉ์ž ์ •์˜ 'data-์†์„ฑ' ์‚ฌ์šฉํ•˜๊ธฐ ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•˜๊ธฐ

ํด๋กœ์ €๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„

  • ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฐ™์€ ์ž‘์—…์„ ํ•  ๋•Œ
  • ๊ฐ™์€ ์ดˆ๊ธฐํ™” ์ž‘์—…์ด ์ง€์†์ ์œผ๋กœ ํ•„์š”ํ•  ๋•Œ
  • ์ฝœ๋ฐฑํ•จ์ˆ˜์— ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ

ํด๋กœ์ €์˜ ๋‹จ์ 

1) ํด๋กœ์ €๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋ชจํ•œ๋‹ค. setTimeout()์ด๋‚˜ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋“ฑ์œผ๋กœ ๋“ฑ๋กํ–ˆ๋˜ ํ•จ์ˆ˜๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ„์† ๋‚จ์•„์žˆ๊ฒŒ ๋˜๋ฉด, ํ•ด๋‹นํ•˜๋Š” ํด๋กœ์ €๋„ ๊ฐ™์ด ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ„์† ๋‚จ์•„์žˆ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ํด๋กœ์ €๋ฅผ ๊ณ„์† ์ƒ์„ฑํ•˜๋Š” ์„ค๊ณ„๋Š” ์ง€์–‘ํ•ด์•ผ ํ•œ๋‹ค. ํด๋กœ์ €๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” ํ•˜๋‚˜์˜ ์ปค๋‹ค๋ž€ ํด๋กœ์ €๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๊ฐ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋“ค์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋ถ„์„ํ•œ ๋‹ค์Œ ํšจ์œจ์ ์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ์ข‹๋‹ค.

2) ์Šค์ฝ”ํ”„ ์ƒ์„ฑ๊ณผ ์ดํ›„ ๋ณ€์ˆ˜ ์กฐํšŒ์— ๋”ฐ๋ฅธ ํผํฌ๋จผ์Šค ์†ํ•ด๊ฐ€ ์žˆ๋‹ค. ํด๋กœ์ € ํ•˜์œ„์— ์žˆ๋Š” ํ•จ์ˆ˜์—์„œ ์ƒ์œ„์— ์žˆ๋Š” ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๊ณ ์ž ํ•  ๋•Œ ํด๋กœ์ €๋กœ ์ƒ์„ฑํ•œ ์Šค์ฝ”ํ”„๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ตœ๊ทผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„๋“ค์ด ์ด๋Ÿฌํ•œ ์Šค์ฝ”ํ”„์ฒด์ธ ๋‚ด์˜ ๋ณ€์ˆ˜ ํƒ์ƒ‰์— ๋Œ€ํ•œ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ณ  ์žˆ์–ด์„œ ์Šค์ฝ”ํ”„ ์ฒด์ธ์ด ํ•˜๋‚˜๋‚˜ ๋‘ ๊ฐœ์ด๋ฉด ํฐ ์ฐจ์ด๋Š” ์—†๋‹ค. ํ•˜์ง€๋งŒ ๊ณผํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ์Œ“์—ฌ์„œ ํผํฌ๋จผ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

์Šค์ฝ”ํ”„ ์ฒด์ธ ํƒ์ƒ‰

Clone this wiki locally