๐Ÿ“’ ์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ

๐Ÿ”์ˆ˜์—…๋ชฉ์ฐจ

[1-1] JavaScript

3๏ธโƒฃ JavaScript


โœ… JavaScript๋ž€?


์›น ํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

โœ… ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜


์›นํŽ˜์ด์ง€์˜ ๊ธฐ๋ณธ์€ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ฐ€์žฅ ํšจ์œจ ์ ์ธ ๋ฐฉ๋ฒ•์€ ์–ด๋”˜๊ฐ€์— ์ €์žฅํ•˜๊ณ  ์ถœ๋ ฅํ•˜์—ฌ ์ •์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ ์ด๋‹ค.
์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ์ด์šฉ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

โฉ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ž€?

  • ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜ : ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ , ๊บผ๋‚ด ์“ฐ๋Š” ์ƒ์ž
  • ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š” ํ•˜๋‹ค.

โฉ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜์˜ ์ข…๋ฅ˜์™€ ํŠน์ง•




โœ… ์˜ˆ์•ฝ์–ด


๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜์‹ค๋•Œ๋Š” ์˜ˆ์•ฝ์–ด๋ฅผ ์ œ์™ธํ•œ ๋ณ€์ˆ˜๋ช…์„ ์„ ์–ธํ•˜์…”์•ผ ๋œ๋‹ค.
๐Ÿ“š JavaScript์˜ˆ์•ฝ์–ด




โœ… ๋ฐ์ดํ„ฐํƒ€์ž…


๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋ผ ํ•จ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜ ์ด๋ฉฐ, ์ž๋ฃŒํ˜•์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.
๐Ÿ“š ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ข…๋ฅ˜
๐Ÿ“š ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž




โœ… ๋ฐฐ์—ด(Array)


์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ์™€ ํ•จ๊ป˜ ์ €์žฅํ•˜๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉ
element : ๋ฐฐ์—ด ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋“ค ํ•˜๋‚˜ํ•˜๋‚˜
index : ๊ฐ ์š”์†Œ์— ์ˆœ์„œ๋ฅผ ๋ถ€์—ฌ

โฉ ๋ฐฐ์—ด property

  • ๋ฐฐ์—ด์€ ๊ณ ์œ ํ•œ property, ์ฆ‰ ์†์„ฑ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด ์†์„ฑ์„ ํ†ตํ•ด์„œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๊ฑฐ๋‚˜, ๋ฐฐ์—ด์— ๋‚ด์žฅ๋œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ฐฐ์—ด์„ ํ™•์žฅํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โฉ ๋ฐฐ์—ด Method

  • ๋ฉ”์„œ๋“œ๋Š” ์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ช…๋ น์–ด ์ด๋ฉฐ, ๋ฐฐ์—ด์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ๊ธฐ๋Šฅ
  • ๐Ÿ“š ARRAY METHOD ์ •๋ฆฌ



โœ… ๊ฐ์ฒด(object)


๊ฐ์ฒด๋Š” key๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์ธ์ง€ ๋ช…์‹œํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
๊ฐ์ฒด ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋“ค ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ํ”„๋กœํผํ‹ฐ(property) ๋ผ๊ณ  ํ•œ๋‹ค.

โฉ ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ(property)์— ์ ‘๊ทผ

  • key๊ฐ’์— ์ ‘๊ทผํ•ด์„œ value๋ฅผ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค.
    • Dot notation(์  ํ‘œ๊ธฐ๋ฒ•)
    • Bracket notation(๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•)

โฉ ๊ฐ์ฒด Method




โœ… ํ•จ์ˆ˜(function)


ํ•จ์ˆ˜ ๋ž€ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ ํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋„๊ตฌ
๐Ÿ“š HTML์˜ ํƒœ๊ทธ์—๋Š” ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
๐Ÿ“š ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ HTML์˜ ๊ฐ์ฒด ๊ฐ€์ ธ์˜ค๊ธฐ

โฉ ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด

  • return : ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜น์€ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ์™ธ๋ถ€๋กœ ๊ฑด๋„ค์ค„ ์ˆ˜ ์žˆ๋‹ค.

โฉ ํ•จ์ˆ˜ ์„ ์–ธ ์ข…๋ฅ˜

  • ํ•จ์ˆ˜ ์„ ์–ธ์‹

    function ํ•จ์ˆ˜์ด๋ฆ„(param1, param2, ...){
        // ...code here
        return ๊ฒฐ๊ณผ๊ฐ’
    }
  • ํ•จ์ˆ˜ ํ‘œํ˜„์‹

    const ํ•จ์ˆ˜์ด๋ฆ„ = function(param1, param2, ...){
    	// ...code here
    	return ๊ฒฐ๊ณผ๊ฐ’
    }
  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜

    const ํ•จ์ˆ˜์ด๋ฆ„ = ( param1, param2, ... )=>{
        // ...code here
        return ๊ฒฐ๊ณผ๊ฐ’
    }



โœ… localhost


localhost : ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ ์ž์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ip ์ฃผ์†Œ, 127.0.0.1๊ณผ ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธ

โฉ DNS

โฉ port




โœ… ๋น„๊ต ์—ฐ์‚ฐ์ž


๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ๋น„๊ต ํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž
๋น„๊ต์—ฐ์‚ฐ์ž์—๋Š” ๋‘๊ฐ€์ง€์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์ง€๋งŒ, ์‹ค๋ฌด์—์„œ๋Š” ์—„๊ฒฉํ•œ ๋น„๊ต์—ฐ์‚ฐ์ž ๋งŒ์„ ์‚ฌ์šฉ ํ•œ๋‹ค.

โฉ ์›์‹œ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž…

  • ์›์‹œ ํƒ€์ž…์˜ ์ข…๋ฅ˜ : String, Number, Boolean, Bigint, undefined, Symbol, null
  • ์ฐธ์กฐ ํƒ€์ž…์˜ ์ข…๋ฅ˜ : ์›์‹œ ํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋‚˜๋จธ์ง€๊ฐ€ ์ฐธ์กฐ ํƒ€์ž…

โฉ ์›์‹œ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž…์˜ ํŠน์„ฑ

  • ์›์‹œ ํƒ€์ž…์˜ ํŠน์ง• : ๋ถˆ๋ณ€์„ฑ ์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

  • ์ฐธ์กฐ ํƒ€์ž…์˜ ํŠน์ง• : ๊ฐ€๋ณ€์„ฑ ์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋Š” ์ฐธ์กฐ๋งŒ ํ•ด์˜ฌ ๋ฟ ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ ์ด๋‹ค.




โœ… ์กฐ๊ฑด๋ฌธ


์ž‘์„ฑํ•œ ์กฐ๊ฑด์ด ์ฐธ์ผ๊ฒฝ์šฐ ์ง€์ •ํ•œ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ

โฉ ifโ€ฆelse

  • if ๋ฌธ์€ ํŠน์ • ์กฐ๊ฑด์ด ์ฐธ์ผ๋•Œ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ ํ•˜๋ฉฐ, ๊ฑฐ์ง“์ผ๊ฒฝ์šฐ ์—๋Š” else ๋ฌธ์„ ์‹คํ–‰ ํ•˜๊ฒŒ ๋œ๋‹ค.



โœ… ๋ฐ˜๋ณต๋ฌธ


๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ์˜ ์–‘์„ ํš๊ธฐ์ ์œผ๋กœ ์••์ถ•ํ•˜๊ณ  ๋ฐ˜๋ณต์ ์ธ ์ผ์˜ ์ˆ˜ํ–‰์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.

โฉ for

for(์ตœ์ดˆ์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ๋ฌธ){
	// ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•  ์ฝ”๋“œ
}

โฉ while

์ตœ์ดˆ์‹
while( ์กฐ๊ฑด์‹ ){
	// ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•  ์ฝ”๋“œ
	์ฆ๊ฐ์‹
}

โฉ for-of

  • for-of๋ฌธ์€ ๋ฐฐ์—ด์— ์ฃผ๋กœ ์‚ฌ์šฉ
const arr = [1, 2, 3, 4, 5]

for(let el of arr) {
    console.log(el)
}

โฉ for-in

  • for-in๋ฌธ์€ ๊ฐ์ฒด์—์„œ ์‚ฌ์šฉ
const obj = {
    name : "otter",
    gender : "male"
}

for(let key in obj) {
    console.log(key)
}

โฉ setInterval

โฉ clearInterval




โœ… ์ „๋‹ฌ์ธ์ž, ๋งค๊ฐœ๋ณ€์ˆ˜


โฉ ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ ์˜์—ญ

  • ํ•จ์ˆ˜, ๋ณ€์ˆ˜ ๋Š” ์ •์˜๋˜์–ด ์žˆ๋Š” ์˜์—ญ ์•ˆ์—์„œ๋งŒ ์กด์žฌํ•œ๋‹ค.
  • ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ์•ˆ์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๊ทธ ๋ฐ–์—์„œ ์ฐธ์กฐ๋  ์ˆ˜๊ฐ€ ์—†๋‹ค.

โฉ ๋งค๊ฐœ๋ณ€์ˆ˜

  • ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ–์œผ๋กœ ๊ฑด๋„ค์ฃผ๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์™ธ๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ ํ›„ ๊ฐ€๊ณต, ํ˜น์€ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

โฉ ์ „๋‹ฌ์ธ์ž

  • ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ, ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ•จ๊ป˜ ์ •์˜ํ•ด์คฌ๋‹ค๋ฉด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณผ์ •์—์„œ ์ „๋‹ฌ์ธ์ž ๋ฅผ ๊ฑด๋„ค์ค„ ์ˆ˜ ์žˆ๋‹ค.
  • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ „๋‹ฌ๋œ ์ „๋‹ฌ์ธ์ž 1, 2๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ one๊ณผ two์— ๋‹ด๊ธฐ๊ฒŒ ๋œ๋‹ค.
  • ์ „๋‹ฌ์ธ์ž๋ฅผ ๋‹ด์•„์ฃผ๋Š” ์ˆœ์„œ ์— ์˜ํ•ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋‹ด๊ธธ ๊ฐ’ ์ด ์ •ํ•ด์ง„๋‹ค.




โœ… ๋ธŒ๋ผ์šฐ์ €์˜ Web Storage


์›น ๋ธŒ๋ผ์šฐ์ €๋Š” Web Storage๋ผ๊ณ  ํ•˜๋Š” ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณต ํ•˜๋Š”๋ฐ, seesionStorage ์™€ localStorage ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โฉ sessionStorage

  • ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์ ‘์†์ด ๋Š์–ด์ง€๋Š” ์ˆœ๊ฐ„๊นŒ์ง€

โฉ localStorage

  • ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ์ €์žฅ ํ•˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €, pc๋ฅผ ์ข…๋ฃŒํ•˜๋”๋ผ๋„ ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ๊ฒŒ ๋œ๋‹ค.

โฉ local storage ์ ‘๊ทผ ๋ฐฉ๋ฒ•




โœ… DOM


์šฐ๋ฆฌ๋Š” document๋ผ๊ณ  ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•ด์™€์„œ HTML ๋ฌธ์„œ๋ฅผ ์กฐ์ž‘ ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์‹ค ์šฐ๋ฆฌ๋Š” HTML ์š”์†Œ๋“ค์„ ์ง์ ‘์ ์œผ๋กœ ์กฐ์ž‘ํ–ˆ๋˜ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
์กฐ๊ธˆ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด, ์šฐ๋ฆฌ๋Š” DOM Element ๋ฅผ ์กฐ์ž‘ํ•œ ๊ฒƒ์ด๋‹ค.

โฉ DOM์ด๋ž€?

  • ๋ธŒ๋ผ์šฐ์ €๋Š” HTML ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜๋Š” ๊ณผ์ •์—์„œ DOM์ด๋ผ๋Š” ํŠธ๋ฆฌ๊ตฌ์กฐ ํ˜•ํƒœ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

  • DOM ํŠธ๋ฆฌ ๊ตฌ์กฐ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๊ฐ ์š”์†Œ๋“ค์€ ๋…ธ๋“œ(Node)




โœ… window.event


โฉ Event

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ window.event๋ฅผ ํ†ตํ•ด window ๊ฐ์ฒด ๋‚ด์˜ event ์†์„ฑ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Event๋ž€, DOM ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ํ‚ค๋ณด๋“œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญ ํ•˜๋Š” ๋“ฑ, ์‚ฌ์šฉ์ž๊ฐ€ ์ทจํ•˜๋Š” ์•ก์…˜ ์„ ๋งํ•œ๋‹ค.
  • ๐Ÿ“š JS์œˆ๋„์šฐ ์ด๋ฒคํŠธ ์ข…๋ฅ˜



โœ… ์Šค์ฝ”ํ”„


โฉ ์ „์—ญ ์Šค์ฝ”ํ”„(Global scope), ์ง€์—ญ ์Šค์ฝ”ํ”„(Local scope)

  • ์ „์—ญ ์Šค์ฝ”ํ”„ : x๋Š” ์ง€์—ญ ์Šค์ฝ”ํ”„์—์„œ ์ฐธ์กฐ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ง€์—ญ ์Šค์ฝ”ํ”„ : y๋Š” ์ „์—ญ ์Šค์ฝ”ํ”„์—์„œ ์ฐธ์กฐ๋  ์ˆ˜ ์—†๋‹ค.

โฉ ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„(Function scope)

  • ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ƒ๊ฒจ๋‚˜๋Š” ์ง€์—ญ ์Šค์ฝ”ํ”„

โฉ ๋ธ”๋ก ์Šค์ฝ”ํ”„

  • ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋Š” ์ฝ”๋“œ ๋ธ”๋ก์— ์˜ํ•ด์„œ ์ƒ์„ฑ๋˜๋Š” ์Šค์ฝ”ํ”„
  • if๋ฌธ, for๋ฌธ, while๋ฌธ ๋“ฑ ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ ๋ธ”๋ก์„ ์ž‘์„ฑํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ƒ์„ฑ




โœ… debugger ์‚ฌ์šฉ๋ฒ•


๐Ÿ“š ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋””๋ฒ„๊น… ์‹œ์ž‘ํ•˜๊ธฐ




โœ… ํ•จ์ˆ˜, ๋ณ€์ˆ˜์˜ ํ˜ธ์ด์ŠคํŒ…


โฉ ํ˜ธ์ด์ŠคํŒ…

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

โฉ ๋ณ€์ˆ˜์˜ ์„ ์–ธ ๋‹จ๊ณ„

  • let๊ณผ const๋Š” ์„ ์–ธ ์ฝ”๋“œ๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ด์ „์— ์ฐธ์กฐ๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ด์œ ๋Š” TDZ(Temporal Dead Zone) ๋•Œ๋ฌธ์ด๋‹ค.

  • let๊ณผ const๋Š” ์„ ์–ธ ๋‹จ๊ณ„์™€ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์‹คํ–‰๋˜๋Š”๋ฐ, ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๊ธฐ ์ „์—, ์ฆ‰ ํ•ด๋‹น ๊ณต๊ฐ„์—์„œ ๋จธ๋ฌด๋ฅด๋Š” ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๋ ค ์‹œ๋„ํ•˜๋ฉด ์ฐธ์กฐ ์—๋Ÿฌ(Reference Error)๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฒŒ ๋œ๋‹ค.

  • ๊ทธ๋Ÿฐ๋ฐ var ํ‚ค์›Œ๋“œ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์„ ์–ธ๋‹จ๊ณ„์™€ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๊ฐ€ ํ•จ๊ป˜ ์ด๋ฃจ์–ด์ง„๋‹ค.



โœ… API


API : ์–ด๋– ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž๊ฐ€ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด ๋‘” ์ธํ„ฐํŽ˜์ด์Šค๋‹ค.

API ๋ช…์„ธ์„œ : ๋ฉ”๋‰ดํŒ

์š”์ฒญ(Request) : ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค ๋ผ๊ณ  ์ „๋‹ฌํ•˜๋Š” ํ–‰์œ„

ํด๋ผ์ด์–ธํŠธ(Client) : ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๋Š” ์‚ฌ๋žŒ

์‘๋‹ต(Response) : ์šฐ๋ฆฌ๊ฐ€ ๋Œ๋ ค ๋ฐ›๊ฒŒ ๋˜๋Š” ์Œ์‹




โœ… HTTP


API์™€ ๊ฐ™์ด ๋‹ค๋ฅธ ์„œ๋ฒ„์™€ ํ†ต์‹ ์„ ํ•  ๋•Œ๋Š” ํŠน์ •ํ•œ ๊ทœ์น™์— ๋งž์ถฐ ๊ทธ ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค.

HTTP : Hyper Text Transfer Protocol์˜ ์•ฝ์ž




โœ… ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์™€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ





โœ… ๋™๊ธฐ, ๋น„๋™๊ธฐ


๋™๊ธฐ : ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ๋™์ž‘์€ ๋Œ€๊ธฐํ•˜๋Š” ์‹คํ–‰ ๋ฐฉ์‹

๋น„๋™๊ธฐ : ํ•˜๋‚˜์˜ ์ž‘์—…์ด ์ง„ํ–‰๋จ๊ณผ ๋™์‹œ์— ๋˜ ๋‹ค๋ฅธ ์ž‘์—…๋„ ํ•จ๊ป˜ ์ง„ํ–‰๋˜๋Š” ์‹คํ–‰ ๋ฐฉ์‹

JavaScript์˜ ์‹คํ–‰ ํ™˜๊ฒฝ ๋‚ด๋ถ€์—๋Š” call stack๊ณผ callback queue๋ผ๊ณ  ํ•˜๋Š” ์˜์—ญ์ด ์กด์žฌํ•œ๋‹ค.

1. ๋จผ์ € ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜๋“ค์€ ๋ชจ๋‘ call stack์— ์Œ“๋Š”๋‹ค.

2. ๋น„๋™๊ธฐ ํ•จ์ˆ˜(Web APIs ํฌํ•จ)๋“ค์€ ๋ชจ๋‘ callback queue์— ์Œ“์ด๊ฒŒ ๋œ๋‹ค.

3. call stack์— ์Œ“์ธ ๊ธฐ๋ณธ ํ•จ์ˆ˜๋“ค์€ ๋จผ์ € ๋‹ด๊ธด ํ•จ์ˆ˜๋“ค์ด ์œ„์— ์Œ“์ธ ํ•จ์ˆ˜๋“ค์˜ ์ข…๋ฃŒ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋œ๋‹ค.

4. callback queue์— ์Œ“์ธ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋“ค์€ call stack์ด ๋น„์›Œ์ ธ ์žˆ๋‹ค๋ฉด, ๊ทธ ๋•Œ call stack์œผ๋กœ ํ•˜๋‚˜์”ฉ ์˜ฎ๊ฒจ์ง„๋‹ค.

โฉ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ

  • Promise : ํ˜„์žฌ๋Š” ์–ป์„ ์ˆ˜ ์—†์ง€๋งŒ ์ถ”ํ›„ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ˆ˜๋‹จ์˜ ์—ญํ• 

  • then() : fetch()๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด JavaScript์—์„œ ๋ฐ”๋กœ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ์ •์ƒ์ ์ธ ์‘๋‹ต์„ ๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๋ฉด ์‘๋‹ต์ด ๋Œ์•„์˜ฌ ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค ์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋•Œ then() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • catch() : then() ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋‹ค๊ฐ€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚œ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” catch() ๋ฉ”์„œ๋“œ๋กœ ๊ทธ ๋ถ„๊ธฐ๋ฅผ ๋‚˜๋ˆ ์ค„ ์ˆ˜ ์žˆ๋‹ค.




โœ… ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น


๐Ÿ“š ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(๋ฐฐ์—ด / ๊ฐ์ฒด)




โœ… ๊ฐ’์˜ ๋ณต์‚ฌ


โฉ ์–•์€ ๋ณต์‚ฌ

const arr = [ 1, 2, 3, 4, 5 ];
const newArr = [ ...arr ];
const obj = {
	name: "otter",
	gender: "male"
}

const newObj = { ...obj }

โฉ ๊นŠ์€ ๋ณต์‚ฌ

  • JSON
    const obj = {
    	name: "otter",
    	gender: "male",
      favoriteFood: {
    		first: "sushi",
    		second: "hamburger"
      }
    }
    
    const copy = JSON.stringify(obj)
    
    console.log(copy)
    // {"name":"otter","gender":"male","favoriteFood":{"first":"sushi","second":"hamburger"}}
profile
1๋…„์ฐจ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด

Powered by GraphCDN, the GraphQL CDN