javascript (6) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [JS] setTimeout ์ฌ์ฉ๋ฒ๊ณผ await / sleep ๋ง๋ค๊ธฐ JavaScript์์ setTimeout์ ๋น๋๊ธฐ(async)๋ก ํน์ ์๊ฐ ํ์ ๋ก์ง์ ์ํ์ํฌ ์ ์๋ค. setTimeout ์ํ ์์ console.log('start');// async๋ก 3์ด(3,000ms)๋ค์ {}์์ ๋ก์ง ์ํsetTimeout(() => { console.log('call it after 3s');}, 3000);console.log('end') setTimeout ์ํ ๊ฒฐ๊ณผ>>> start>>> end// ...์ฝ 3์ด ๋ค...>>> call it after 3s setTimeout์ await๋ฅผ ์ฌ์ฉํ๊ธฐ setTimeout await ์ฌ์ฉconsole.log('start');// async๋ก 3์ด(3,000ms)๋ค์ {}์์ ๋ก์ง ์ํawait setTimeout(() .. [JS] ๋ณด์ ํคํจ๋ ์ ๋ ฅ error ์์ธ์ฒ๋ฆฌ(ft. isNaN) ํ์ฌ์์ ์ด์ํ๊ณ ์๋ ์ฑ์ ๋ณด์ ํคํจ๋๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค์์ ์๋ชป๋ ์ ๋ ฅ ๊ฐ์ผ๋ก ์ธํ ์ค๋ฅ์ ํธ๋ฌ๋ธ ์ํ ์ ์งํํ์ต๋๋ค. ์๋ฒ์์ input ๊ฐ ๊ฒ์ฆ์ ํตํด์ ์ ๋ฌด ์ค๋ฅ๋ฅผ ๋ฑ์ด๋ด ์๋ชป๋ ์ ๋ณด๊ฐ ์ ๋ฐ์ดํธ ๋์ง๋ ์์์์ง๋ง, ํ๋ฉด ์์ค(front end)์์ ์์ธ์ฒ๋ฆฌ ๋ฏธํก์ผ๋ก ์๋ชป๋ input ๊ฐ์ ์๋ฒ(back end) ์ธก์ผ๋ก ๋ณด๋ด๊ณ ์์์ ํ์ธํ์ต๋๋ค. ๐ฎ ๋ฌธ์ ์ํฉ๋ณด์ ํคํจ๋์ ์ฌ์ฉํ๋ ์ด๋ฒคํธ์ value๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์์ numberic์ ๊ฒ์ฆ์ด ๋์ง ์์์ ์ซ์ํ ๊ฐ๋ง ๋ค์ด์์ผํ๋ ๋ถ๋ถ์ ์ค์ string์ด ๋ค์ด์ค๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ์์ต๋๋ค. ๐ ๏ธ ์กฐ์น๋ฐฉ๋ฒํคํจ๋ ์ด๋ฒคํธ๋ฅผ ํตํด์ ๋ค์ด์ค๋ value ๊ฐ์ ํ๋ฉด์์ isNaN๋ฅผ ์ฌ์ฉํด ํ๋ฒ ๋ ์์ธ์ฒ๋ฆฌ ํ์์ต๋๋ค. ๊ธฐ์กด ๋ก์ง์ ๊ฒฝ์ฐ, value๊ฐ s.. [JS] Object ๋ณ์ ๋ฐ์ดํฐ ์ถ๊ฐ, ๋ฌธ์์ด(String)์ ์ด์ฉํ ๋์ ์ ๊ทผ ๋ฐฉ๋ฒ ๐ฅธ JavaScript Object ๊ฐ์ฒด ๋ฌธ์์ด์ ์ด์ฉํด ๋์ ์ผ๋ก ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ ํ๊ธฐ ์๋ฐ์คํฌ๋ฆฝํธ์ Object ๊ฐ์ฒด๋ key, value ํํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๐ค ํ๋กํผํฐ ์ ๊ทผ๋ฒ์ผ๋ก ๋ฐ์ดํฐ ์ถ๊ฐ, ๋์ฒด ํ๊ธฐ var object = {}; object.arr = [];// obect์ arr๊ฐ ์๋ค๋ฉด ๋น ๋ฐฐ์ด([])์ ์ถ๊ฐ, ์กด์ฌํ๋ค๋ฉด ๋์ฒด console.log(object); // { arr: [] } object.arr.push('first');// object ์์ arr์ ๋ฌธ์์ด 'first' ์ถ๊ฐ console.log(object.arr); // [ 'first' ] object.arr = [];// ๊ธฐ์กด์ ์๋ arr๋ฅผ ๋น ๋ฐฐ์ด๋ก ๋์ฒด console.log(object.arr); /.. [JS] ์๋ฐ์คํฌ๋ฆฝํธ์ ์์๊ณผ prototype ์ด๋ฒ์ ํ์ฌ์์ ๋ฐฐ์น๋ฐ์ ํ์ ๋ชจ๋ฐ์ผ ์๋น์ค ํ์ด์๋ค. ๋ค์ดํฐ๋ธ ์ฑ ์๋์ ์น ๋ทฐ๋ฅผ ์ ๊ณตํ๋๋ฐ ๋น๋ถ๊ฐ์ ํ๋ก ํธ ๋ถ๋ถ์ ๋ค๋ฃจ๊ฒ ๋ ๊ฒ ๊ฐ๋ค. JS๋ DOM ์กฐ์ ์ธ์๋ ๋ค๋ค๋ณผ ๊ธฐํ๊ฐ ์์๊ธฐ์ ์ด๋ฒ์ prototype์ ๋ํ ๊ฐ๋ ๋ ์ฒ์ ์๊ฒ ๋์๋ค. JS๋ prototype ๊ธฐ๋ฐ ์ธ์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค๋๋ฐ ๊ธฐ๋ณธ๋ ๋ชฐ๋๋ ๊ฑฐ์์๋ค... ํ ๋์ JS๋ฅผ ์ด์ฌํ ๊ณต๋ถํด์ผํ ๊ฒ ๊ฐ๋ค. prototype์ JS์์ ๊ฐ์ฒด์ ์์์ ๋ค๋ฃจ๋ ๊ฐ๋จํ๋ฉด์, ์ค์ํ ๊ฐ๋ ์ด์๋ค. ์ฌ์ค JS๋ ์ด๋ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ผ๊ธฐ๋ ํ๋ค. ๋ ์ญ์ JS๋ต๊ฒ ๊ต์ฅํ ์ฌํํ๋ค. ๐ง ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ์์ฑ function MyObject(์ธ์) { this.property1 = ... this.property2 = ์ธ์ } class MyOb.. [JavaScript] String-boot ์น ์์ผ(WebSocket)์ ์ด์ฉํ ์ค์๊ฐ ์ฑํ ๊ตฌํ - Session Storage ํ์ฉํ๊ธฐ ์๊ฐ ์ WebSocket์ ์ฌ์ฉํ์๋? Spring-boot WebSocket ์ฌ์ฉ๋ฒ(์ค์ ๋ฒ) ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑํด๋ณด๊ธฐ ๋ฐ์ํ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ใด HTTP session ๊ฐ์ ธ์ค๊ธฐ -> interception ์ฌ์ฉ ใด DB๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ์กด ๋ฉ์์ง ์ ์ฅํ๊ธฐ -> Session Storage ์ฌ์ฉํ๊ธฐ ์ต๊ทผ ์์ฑ ์ค์ธ ๊ฐ์ธ ํ๋ก์ ํธ์์ ์น์ ์ ์ํ ํด๋ผ์ด์ธํธ์ ์ค์๊ฐ ์ฑํ ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ค. ๐ค ์ WebSocket์ ์ฌ์ฉํ์๋? ์ฌ๊ธฐ์ ๋งํ๋ ์น ์์ผ์ Spring Framework์ STOMP๊ฐ ์๋ ์์ JavaScript๋ฅผ ํ์ฉํ ์์ ์ ๋๋ค. jquery๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. WebSocket์ด ํ์ํ๋ ์ด์ ์์๋งํ๋ฏ ์ค์๊ฐ ๋ผ์ด๋ธ ์ฑํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ถ์๋ค. ํ์ง๋ง, ๊ธฐ.. [JavaScript] ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ disabled, display ์์ฑ ์ถ๊ฐ, ํด์ (๋ณ๊ฒฝ) ๊ฐํน ์๋ฐ์คํฌ๋ฆฝํธ์์ disabled ์์ฑ๊ณผ display ์์ฑ์ ๋ณ๊ฒฝํ ๋ ํท๊ฐ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ํ์ํ ๋ ์ฐพ์๋ณด๊ธฐ ์ํด์ ๊ธ์ ์๋๋ค. JavaSctript๋ก disabled ์์ฑ ํ์ฑํ or ํด์ ํ๊ธฐ function disabledFalse() { document.querySelector('#name').disabled = false; document.querySelector('#email').disabled = false; document.querySelector('#phone').disabled = false; document.querySelector('#message').disabled = false; } ์ ์ฒ๋ผ ๋ด๊ฐ ์ํ๋ ์ ํ์๋ฅผ ์ ํํด์ค ํ .disabled ์์ฑ์ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค... ์ด์ 1 ๋ค์