๐ Front-End/JavaScript
async/await ๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ ๋ ๋น๊ต์ ์ฝ๊ณ ๋ช
ํํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. promise ์ฌ์ฉ ํ๊ธฐ ์ (๋ฌธ์ ์ ) function fetchUser(){ // ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋๋ฐ 10์ด ์ ๋ ๊ฑธ๋ฆฐ๋ค๊ณ ๊ฐ์ return 'hyunho'; } const user = fetchUser() console.log(user) ์์์ฒ๋ผ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ฝ๋๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ผ๋ฉด, ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋๊ธฐ์ ์ผ๋ก ์ฝ๋๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์, ์ฆ ํ์ค ํ์ค์ฉ ํ์ค์ด ๋๋์ผ ๊ทธ ๋ค์ ์ค๋ก ๋์ด ๊ฐ๋๋ค. fetchUser() ํจ์๊ฐ ์ ์ธ๋ ๊ณณ์ผ๋ก ๊ฐ์ ํจ์์ ์ฝ๋ ๋ธ๋ก์ ์คํํ๋๋ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋๋ฐ 10์ด๊ฐ ๊ฑธ๋ฆฌ๋๊น 10์ด๋์ ๋จธ๋ฌด๋ฅด๊ณ ์๊ณ , ๊ทธ๋ฆฌ๊ณ ๋์์ผ 'hyunho' ๊ฐ ๋ฆฌํด์ด..
๐ Front-End/JavaScript
์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ณตํ๋ ๋น๋๊ธฐ๋ฅผ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌ ํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฐ์ฒด ์ ํด์ง ์ฅ์๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๊ณ ๋์ ์ ์์ ์ผ๋ก ๊ธฐ๋ฅ์ด ์ํ์ด ๋์ด์ง๋ฉด ์ฑ๊ณต์ ๋ฉ์ธ์ง์ ํจ๊ป ์ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ ๋ฌ ํฉ๋๋ค. ๋ง์ฝ, ๊ธฐ๋ฅ์ ์ํํ๋ค๊ฐ ์์์น ๋ชปํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด error ๋ฅผ ์ ๋ฌ ํฉ๋๋ค. ์ฌ์ฉํ๋ ์ด์ ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ฑฐ๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๊ณผ์ ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ฐ ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ฉด ์์ ์ผ๋ค์ ์ฒ๋ฆฌํ๋ ๋์ ๋ค์ ๋ผ์ธ์ ์ฝ๋๊ฐ ์คํ๋์ง ์๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ผ ๋ค์ promise ๋ฅผ ํตํด ๋น๋๊ธฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. promise ์ ์ํ promise๋ state์ result 2๊ฐ์ง ์จ๊น ํ๋กํผํฐ๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. result๋ resolve(value)๊ฐ ํธ์ถ๋๋ฉด value..
๐ Front-End/JavaScript
Asynchronous Javascript And Xml(๋น๋๊ธฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์ xml)์ ์ฝ์ AJAX ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด์ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋ ํต์ ๊ธฐ๋ฅ ์
๋๋ค. Ajax ๋ฅผ ์ฌ์ฉํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ์กด ํ์ด์ง์ ํ๋ฉด ๋ฐ ๋์์ ๋ฐฉํดํ์ง ์์ผ๋ฉด์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋น๋๊ธฐ์ ์ผ๋ก ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์์ต๋๋ค XMLHttpRequest API๋ ๋น๋๊ธฐ ํต์ ์ ์์ฃผ ์ฌ์ฉ๋๋ฉฐ, ์ต๊ทผ์๋ fetch API๊ฐ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ๋น๋๊ธฐ ํต์ ์์ฒญ์ ๋ณด๋ธ ํ ์๋ต๊ณผ๋ ์๊ด์์ด ๋์ํ๋ ๋ฐฉ์ ์นํ์ด์ง๋ฅผ ๋ฆฌ๋ก๋ ํ์ง ์๊ณ ๋ ํต์ ์ด ๊ฐ๋ฅํ ๊ตฌ์กฐ AJAX ์ ์ฅ์ ์ํธ์์ฉ์ฑ์ด ์ข์์ง๋๋ค. ์๋ฒ์ ์๋ก์ด ์ปจํ
์ธ ๋ฅผ ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์๋ก๋ํ ํ์ ์์ด ๋..
๐ Front-End/JavaScript
๋ด๋ถํจ์๊ฐ ์ธ๋ถํจ์์ ๋งฅ๋ฝ(context)์ ์ ๊ทผํ ์ ์๋ ๊ฒ์ ๊ฐ๋ฆฌํต๋๋ค. ์ดํ์ ํ๊ฒฝ(Lexical Environment) // (1) // one : ์ด๊ธฐํ X, addOne : function let one; // (2) one : undefined, addOne : function one = 1; // (3) one : 1, addOne : function -> ์ ์ญ Lexical function addOne(num){ console.log(one + num); } addOne(5); // (4) ํจ์๊ฐ ์คํ๋๋ ์๊ฐ ์๋ก์ด Lexical ํ๊ฒฝ์ด ๋ง๋ค์ด์ง๋๋ค. num : 5 (1) : ์ฝ๋๊ฐ ์คํ๋๋ฉด ์คํฌ๋ฆฝํธ ๋ด์์ ์ ์ธํ ๋ณ์๋ค์ด Lexical ํ๊ฒฝ ์ ์ฌ๋ผ๊ฐ๋๋ค. (4) ์์ ํจ์๊ฐ ๋๊ฒจ๋ฐ..
๐ Front-End/JavaScript
ES6 ๋ถํฐ ์ถ๊ฐ ๋์์ต๋๋ค. ์ ์ ํจ์์ ํ ์ข
๋ฅ์ด๋ฉฐ, ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ
ํ๋ฆฟ(ํ) ์
๋๋ค. ํด๋์ค ์์๋ ์์ฑ(field), ํ๋(method) ์ด ์์ต๋๋ค. class ๋ ๊ฐ์ฒด์ ๋ฐ์ดํฐ ์ ์ด๋ฅผ ์กฐ์ํ๋ ๋ฉ์๋ ๋ฅผ ํ๋๋ก ์ถ์ํ ํฉ๋๋ค. ๋ฌธ๋ฒ class Person{ constructor(name, age){ // ์์ฑ this.name = name; // ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํ ํ๊ธฐ ์ํ ๊ฐ this.age = age; } // ํ๋ speak(){ console.log(`${this.name} : hello`) } } // object , ์๋ก์ด object๋ฅผ ๋ง๋ค ๋ new ํค์๋๋ฅผ ์ฌ์ฉ ํฉ๋๋ค. const hyunho = new Person('hyunho', 26) console.log(hyun..
๐ Front-End/JavaScript
ํ์ํ ์ฌ๋ฃ๋ค์ ๋ฃ์ด์ฃผ๊ณ ์ฐ์ด๋ด๋ ๋ถ์ด๋นต ํ๊ณผ ๊ฐ์ต๋๋ค. ๋ฌธ๋ฒ function User(name, age){ // ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก this.name = name; this.age = age; } let user1 = new User("Mike", 30); let user2 = new User("Jan", 17); let user3 = new User("Tom", 20); new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํธ์ถ ์ฌ์ฉํ๋ ์ด์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด { ... } ์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ํ์ง๋ง ์ผ์ผ์ด ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ณ ์ผ๊ด์ฑ ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๋์ ์๋ฆฌ function User(name, age){ // this = {}; -> ๋น ๊ฐ์ฒด๊ฐ ์์์ ์ผ๋ก ๋ง๋ค์ด์ง // ์๋ก์ด ํ๋กํผํฐ..
๐ Front-End/JavaScript
๋จผ์ , ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ํด ์์์ผ ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์์ง ์๋ฐ์คํฌ๋ฆฝํธ ์์ง ์์๋ Memory Heap ๊ณผ Call Stack ๋ก ๋๋์ด ์์ต๋๋ค. Memory Heap ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค ๋, ์ฆ ๋ณ์๋ฅผ ์ ์ธํด์ ์ค๋ธ์ ํธ๋ฅผ ํ ๋นํ๊ฑฐ๋ ๋ฌธ์ ๋๋ ์ซ์๋ฅผ ํ ๋นํ๊ฒ ๋๋ฉด ์ ๋ถ ๋ฉ๋ชจ๋ฆฌ ํ์ ์ ์ฅ ๋ฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ผ์ด๋๋ ๊ณณ Call Stack ํจ์๋ฅผ ์คํํ๋ ์์์ ๋ฐ๋ผ์ ์ฐจ๊ณก์ฐจ๊ณก ์์๋๋ ๊ฒ ์ฝ๋ ์คํ์ ๋ฐ๋ผ ํธ์ถ ์คํ์ด ์์ด๋ ๊ณณ LIFO(Last In First Out) : ์ ์ผ ๋์ค์ ๋ค์ด์จ ๊ฒ์ด ์ ์ผ ์ฒ์์ผ๋ก ๋๊ฐ๋๋ค. ๋ฐํ์ ํ๊ฒฝ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด ์์ฒด์๋ ๋ฉํฐ ์ค๋ ๋ฉ์ด ์์ต๋๋ค. Process ์ด์์ฒด์ ์์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ ๋
๋ฆฝ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ์คํ ํฉ๋๋ค. ๊ฐ๊ฐ์ ..
๐ Front-End/JavaScript
๋ธ๋ผ์ฐ์ ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด, capturing -> bubbling ์์ผ๋ก ์ด๋ฒคํธ๋ฅผ ๊ฐ์ง ํฉ๋๋ค. ์ด๋ฒคํธ ๋ฒ๋ธ๋ง (Event Bubbling) ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ ํน์ ํ๋ฉด ์์์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ํด๋น ์ด๋ฒคํธ๊ฐ ๋ ์์์ ์์์๊ฒ ์ ๋ฌ๋์ด ๊ฐ๋ ํน์ฑ์ ์๋ฏธํฉ๋๋ค. ์์์ ํ๋ฉด ์์๋? HTML ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ต๋๋ค.์ฌ๊ธฐ์๋ ํธ๋ฆฌ ๊ตฌ์กฐ์์ผ๋ก ํ ๋จ๊ณ ์์ ์๋ ์์๋ฅผ ์์ ์์๋ผ๊ณ ํ๋ฉฐ body ํ๊ทธ๋ฅผ ์ต์์ ์์๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค. const one = document.querySelector(".one"); const two = document.querySelector(".two"); const three = document.querySelector(".three"); one.ad..