Promise ๊ฐœ๋…๋ถ€ํ„ฐ ํ™œ์šฉ๊นŒ์ง€

    โ“ Promise - js์—์„œ ์ œ๊ณตํ•˜๋ฉฐ, ๋น„๋™๊ธฐ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” object - ์ •ํ•ด์ง„ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ํ›„ ์„ฑ๊ณต ์‹œ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€์™€ ๊ฒฐ๊ณผ๊ฐ’ ์ „๋‹ฌ - ๊ธฐ๋Šฅ ์ˆ˜ํ–‰ ์‹œ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์—๋Ÿฌ ์ „๋‹ฌ - ๋น„๋™๊ธฐ์ ์ธ ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Callbackํ•จ์ˆ˜ ๋Œ€์‹ ์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ โ— Point - 1. State: process๊ฐ€ heavyํ•œ operation์„ ์ˆ˜ํ–‰ ์ค‘์ธ์ง€, ๊ธฐ๋Šฅ ์ˆ˜ํ–‰์„ ์„ฑ๊ณต/์‹คํŒจ ํ–ˆ๋Š”์ง€ - 2. Producer(์ •๋ณด์ œ๊ณต์ž) / Consumer(์ •๋ณด์‚ฌ์šฉ์ž)์˜ ์ฐจ์ด์  Promise๋Š” class โžก new ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์„ฑ์ž: executor๋ผ๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜ ์ „๋‹ฌ executor ์•ˆ์—์„œ๋Š” ๋‹ค์‹œ resolve์™€ reject ์ฝœ๋ฐฑํ•จ์ˆ˜ ์ „๋‹ฌ resolve: ๊ธฐ๋Šฅ ์ •์ƒ ์ˆ˜ํ–‰ ํ›„ ..

    ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ์‹œ์ž‘, ์ฝœ๋ฐฑ ์ดํ•ดํ•˜๊ธฐ

    1. ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ 1-1. synchronous javascript๋Š” synchronous(๋™๊ธฐ์ )์ด๋‹ค. hoisting์ด ๋œ ์ดํ›„๋ถ€ํ„ฐ, ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑํ•œ ์ˆœ์„œ์— ๋งž์ถฐ์„œ ํ•˜๋‚˜์”ฉ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. hoisting: var, function ์„ ์–ธ๋“ค์ด ์ž๋™์ ์œผ๋กœ ์ตœ์ƒ๋‹จ์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ ์ •ํ•ด์ง„ ์ˆœ์„œ์— ๋งž๊ฒŒ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ console.log('1'); console.log('2'); console.log('3'); 1-2. asynchronous ์–ธ์ œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋ ์ง€ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ setTimeout์€ ๋ธŒ๋ผ์šฐ์ € API์ด๋ฏ€๋กœ, ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋ฐ”๋กœ console.log('3')์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. console.log('1'); setTimeout(functio..

    JSON ๊ฐœ๋…์ •๋ฆฌ

    - HTTP Client์™€ Server๊ฐ€ ์–ด๋–ป๊ฒŒ Hypertext๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ •์˜ํ•œ ๊ฒƒ Client๊ฐ€ data request, Server๋Š” ์ ์ ˆํ•œ response ์ „์†ก - AJAX (Asynchronous JavaScript And XML) HTTP๋ฅผ ์ด์šฉํ•ด์„œ Server๋กœ๋ถ€ํ„ฐ data ๋ฐ›์•„์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์›นํŽ˜์ด์ง€์—์„œ ๋™์ ์œผ๋กœ Server์™€ data ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ  ex) XHR (XMLHttpRequest), fetch() API - XML Mark up ์–ธ์–ด ์ค‘ ํ•˜๋‚˜ HTML๊ณผ ๊ฐ™์ด data๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋ถˆํ•„์š”ํ•œ ํƒœ๊ทธ๋“ค์ด ๋งŽ์ด ๋“ค์–ด๊ฐ€์„œ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๊ณ , ๊ฐ€๋…์„ฑ์ด ๋‚˜๋น ์ง„๋‹ค. - JSON (JavaScript Object Notation) { ke..

    ์œ ์šฉํ•œ 10๊ฐ€์ง€ ๋ฐฐ์—ด ํ•จ์ˆ˜๋“ค

    // Q1. make a string out of an array { const fruits = ['apple', 'banana', 'orange']; const result = fruits.join(' '); console.log(result); } // Q2. make an array out of a string { const fruits = '๐ŸŽ, ๐Ÿฅ, ๐ŸŒ, ๐Ÿ’'; const result = fruits.split(', '); console.log(result); } // Q3. make this array look like this: [5, 4, 3, 2, 1] { const array = [1, 2, 3, 4, 5]; const result = array.reverse(); console.log..

    ๋ฐฐ์—ด ๊ฐœ๋…๊ณผ APIs

    Object - ์„œ๋กœ ์—ฐ๊ด€๋œ ํŠน์ง•๊ณผ ํ–‰๋™๋“ค์„ ๋ฌถ์–ด๋†“๋Š” ๊ฒƒ ์ž๋ฃŒ๊ตฌ์กฐ - ๋น„์Šทํ•œ type์˜ object๋“ค์„ ๋ฌถ์–ด๋†“๋Š” ๊ฒƒ(dynamically typed language) - ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๊ฒฝ์šฐ์—๋Š” ๋™์ผํ•œ type์˜ object๋งŒ์„ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค. 1. Declaration const arr1 = new Array(); const arr2 = [1, 2]; 2. Index position const fruits = ['๐ŸŽ', '๐ŸŒ']; console.log(fruits); // ['๐ŸŽ', '๐ŸŒ'] console.log(fruits.length); // 2 console.log(fruits[0]); // ๐ŸŽ console.log(fruits[1]); // ๐ŸŒ console.log(fruits[2]); // und..

    Object

    1. Literals and properties const obj1 = {}; // 'object literal' syntax const obj2 = new Object(); // 'object constructor' syntax function print(person) { console.log(person.name); console.log(person.age); } const ellie = { name: 'ellie', age: 4 }; print(ellie); // js๋Š” object๋ฅผ ์ •์˜ํ•œ ํ›„์—๋„ property ์ถ”๊ฐ€ ๊ฐ€๋Šฅ ellie.hasJob = true; console.log(ellie.hasJob); // true // property ์‚ญ์ œ ๋˜ํ•œ ๊ฐ€๋Šฅ delete ellie.hasJob; ..

    ํด๋ž˜์Šค์™€ ์˜ค๋ธŒ์ ํŠธ์˜ ์ฐจ์ด์ 

    class - ์—ฐ๊ด€์žˆ๋Š” data๋“ค์„ ํ•œ๊ณณ์— ๋ฌถ์–ด๋†“๋Š” ์ปจํ…Œ์ด๋„ˆ - ์†์„ฑ(fields), ํ–‰๋™(methods) - data class: ๊ด€๋ จ์žˆ๋Š” data(field)๋งŒ ์ •์˜๋œ ํด๋ž˜์Šค - ์บก์Аํ™”: ํด๋ž˜์Šค ๋‚ด์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ณด์—ฌ์ง€๋Š” ๋ณ€์ˆ˜, ์™ธ๋ถ€์—์„œ ๋ณด์—ฌ์ง€๋Š” ๋ณ€์ˆ˜๋ฅผ ๋‚˜๋ˆ” - ์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ 1. Class ๋ถ•์–ด๋นต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ‹€ template(ํ‹€)๋งŒ ์ •์˜, ์‹ค์ œ data๋Š” ๋“ค์–ด์žˆ์ง€ ์•Š๋‹ค. ํ•œ ๋ฒˆ๋งŒ ์„ ์–ธํ•œ๋‹ค. 2. Object ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์„œ ์‹ค์ œ data๋ฅผ ๋„ฃ์–ด์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ฑ๋œ ์ƒˆ๋กœ์šด instance ์—ฌ๋Ÿฌ ๋ฒˆ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. 3. javascript์˜ class ES6์— ๋„์ž…๋˜์—ˆ๋‹ค ๊ธฐ์กด์˜ prototype์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฌธ๋ฒ•๋งŒ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. (syntactical sugar) 4. Clas..

    Function

    1. Function - ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. - ํ•œ ๊ฐ€์ง€์˜ task๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ value๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. - object์˜ ์ผ์ข…์ด๋‹ค. 1-1. Function declaration function name(param1, param2) { body... return; } 2. Parameters premitive parameters: ๋ฉ”๋ชจ๋ฆฌ์— value๊ฐ€ ๊ทธ๋Œ€๋กœ ์ €์žฅ, value๊ฐ€ ์ „๋‹ฌ object parameters: ๋ฉ”๋ชจ๋ฆฌ์— reference๊ฐ€ ์ €์žฅ, reference๊ฐ€ ์ „๋‹ฌ 3. Default parameters (added in ES6) function showMessage(message, from = 'unknown') { // from์ด undefined์ผ ๋•Œ, default ๊ฐ’ ๋ช…..