๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?

Language52

[JavaScript] ๋งˆ์šฐ์Šค ๋ฐ ํœ  ์ด๋ฒคํŠธ (onMouseEnter, onMouseLeave, onWheel) [JavaScript] ๋งˆ์šฐ์Šค ๋ฐ ํœ  ์ด๋ฒคํŠธ (onMouseEnter, onMouseLeave, onWheel)ํšŒ์‚ฌ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ ํ•˜๋ฉด์„œ ํšŒ์‚ฌ ์ž์ฒด ์ปดํฌ๋„ŒํŠธ ํˆดํŒ ์ŠคํŽ™๋•Œ๋ฌธ์—,๋งˆ์šฐ์Šค๊ฐ€ ํ…์ŠคํŠธ ์œ„์— ์กด์žฌ ํ•˜์ง€ ์•Š์Œ์—๋„ ํœ  ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ํˆดํŒ์ด ๊ณ„์† ๋– ์žˆ๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค. ๊ทธ๋ž˜์„œ tooltip์ด ๋– ์•ผ ํ•˜๋Š” ํ…์ŠคํŠธ์— onMouseEnter, onMouseLeave, onWheel ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. onMouseEnter ์ด๋ฒคํŠธonMouseEnter ์ด๋ฒคํŠธ๋Š” ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๊ฐ€ ํŠน์ • ์š”์†Œ์— ์ฒ˜์Œ์œผ๋กœ ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ.์ด ์ด๋ฒคํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ ์š”์†Œ ์œ„๋กœ ์ด๋™์‹œํ‚ฌ ๋•Œ ํŠธ๋ฆฌ๊ฑฐ ๋œ๋‹ค.onMouseEnter๋Š” ํ•ด๋‹น ์š”์†Œ์˜ ์ž์‹ ์š”์†Œ์—๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ „ํŒŒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ .. 2024. 5. 20.
[JavaScript] ํŒ์—… ์ฐฝ ๊ตฌํ˜„ - window.open [JavaScript] ํŒ์—… ์ฐฝ ๊ตฌํ˜„ - window.openํ”„๋กœ์ ํŠธ์—์„œ ๊ธฐํš ๋ช…์„ธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋…๋ฆฝ๋œ ํŒ์—… ์ฐฝ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋‹ค.JavaScript์˜ window.open ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒ์—…์ฐฝ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. window.open ๋ฉ”์„œ๋“œ์ƒˆ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์ด๋‚˜ ํƒญ์„ ์—ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œwindow.open(url, windowName, [windowFeatures]);- url : ํŒ์—… ์ฐฝ์— ๋กœ๋“œํ•  ํŽ˜์ด์ง€ URL- windowName :  ํŒ์—… ์ฐฝ์˜ ์ด๋ฆ„. ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ฐฝ์ด ์ด๋ฏธ ์—ด๋ ค์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ฐฝ์„ ์žฌ์‚ฌ์šฉ.- windowFeatures : ํŒ์—… ์ฐฝ์˜ ํŠน์„ฑ์„ ์ •์˜ํ•˜๋Š” ๋ฌธ์ž์—ด. ์ฝ”๋“œ ์˜ˆ์‹œ์•ฝ๊ด€ ๋ณด๊ธฐ Reference Window: open() method - Web APIs | MDNThe open() m.. 2024. 5. 20.
[JavaScript] javascript ์•Œ์•„๋‘˜ ๊ฒƒ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2023. 1. 31.
[JavaScript] LocalStorage์™€ SessionStorage Local Storage์™€ Session Storage ๐Ÿฐ ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด(web storage object)์ธ localStorage์™€ sessionStorage๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด์— ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•˜๊ณ (sessionStorage์˜ ๊ฒฝ์šฐ) ์‹ฌ์ง€์–ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„(localStorage์˜ ๊ฒฝ์šฐ) ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ๋‚จ์•„ ์žˆ์Œ ์ฟ ํ‚ค ๋Œ€์‹  ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ด์œ ? ์ฟ ํ‚ค์™€ ๋‹ค๋ฅด๊ฒŒ ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋Š” ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์‹œ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜์ง€ ์•Š์Œ ์ฟ ํ‚ค๋ณด๋‹ค ๋” ๋งŽ์€ ์ž๋ฃŒ ๋ณด๊ด€ ๊ฐ€๋Šฅ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ตœ์†Œ 2MB ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ ๊ฐœ๋ฐœ์ž๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด ์›น ์Šคํ† ๋ฆฌ์ง€ ๊ตฌ์„ฑ ๋ฐฉ์‹์„ ์„ค์ • ์ฟ ํ‚ค์™€ ๋˜ ๋‹ค๋ฅธ ์ ์€ ์„œ๋ฒ„๊ฐ€ HTTP ํ—ค๋”๋ฅผ ํ†ตํ•ด ์Šคํ† ๋ฆฌ.. 2023. 1. 29.
[JavaScript] async / await 2 ์—๋Ÿฌ ์ฒ˜๋ฆฌ ์—๋Ÿฌ๋Š” ํ˜ธ์ถœ์ž(caller) ๋ฐฉํ–ฅ์œผ๋กœ ์ „ํŒŒ ์ฝœ ์Šคํƒ์˜ ์•„๋ž˜ ๋ฐฉํ–ฅ(์‹คํ–‰ ์ค‘์ธ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ํ‘ธ์‹œ๋˜๊ธฐ ์ง์ „์— ํ‘ธ์‹œ๋œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ๋ฐฉํ–ฅ)์œผ๋กœ ์ „ํŒŒ ํ•˜์ง€๋งŒ, ๋น„๋™๊ธฐ ํ•จ์ˆ˜์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒƒ์€ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— try…catch๋ฌธ์„ ์‚ฌ์šฉํ•ด ์—๋Ÿฌ๋ฅผ ์บ์น˜ํ•  ์ˆ˜ ์—†์Œ try{ setTimeout(()=>{ throw new Error('Error!') },1000) } catch(e) [ cosole.log('์บ์น˜ํ•œ ์—๋Ÿฌ',e) } async/await์—์„œ๋Š” ์—๋Ÿฌ ์ฒ˜๋ฆฌ์— try...catch ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜์™€๋Š” ๋‹ฌ๋ฆฌ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋Š” ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ์ถœ์ž๊ฐ€ ๋ช…ํ™•. const fetch = require(.. 2023. 1. 26.
[JavaScript] async / await 1 async / await ์™œ ์‚ฌ์šฉํ•  ๊นŒ? Promise ์ฒด์ด๋‹์€ ์ฝœ๋ฐฑ ์ง€์˜ฅ์„ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ–ˆ์ง€๋งŒ, Promise ์ฒด์ด๋‹ ๋˜ํ•œ ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง ES2017์— ์ฒ˜์Œ์— ๋“ฑ์žฅํ•œ async, await๋Š” syntactic sugar๋กœ Promise ์‚ฌ์šฉ์„ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ณ  ์„ธ๋ จ๋˜๊ฒŒ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌ async ํ‚ค์›Œ๋“œ๋Š” ํ•จ์ˆ˜ ์•ž์— ๋ถ™์ž„ ํ•จ์ˆ˜ ์•ž์— async ๋ถ™๊ฒŒ ๋˜๋ฉด promise๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์˜๋ฏธ async/ await ํ”„๋กœ๋ฏธ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ ํ”„๋กœ๋ฏธ์Šค์˜ then/catch/finally ํ›„์† ์ฒ˜๋ฆฌ ๋ฉ”์„œ๋“œ์— ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํ›„์† ์ฒ˜๋ฆฌํ•  ํ•„์š” ์—†์ด ๋™๊ธฐ ์ฒ˜๋ฆฌ์ฒ˜๋Ÿผ ํ”„๋กœ๋ฏธ์Šค๋ฅผ ์‚ฌ์šฉ asyncํ•จ์ˆ˜ await ํ‚ค์›Œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ async ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ async ํ•จ์ˆ˜๋Š” .. 2023. 1. 25.
[JavaScript] Event-onChange onChange? ์ž‘์„ฑํ•œ JS๋ฅผ ํ†ตํ•ด ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚ฌ๋Š”์ง€ ๊ฐ์ง€ input ํƒœ๊ทธ์˜ ํฌ์ปค์Šค๋ฅผ ๋ฒ—์–ด๋‚ฌ์„๋•Œ (์ฆ‰, ์ž…๋ ฅ์ด ๋๋‚ฌ์„๋•Œ) ๋ฐœ์ƒ cf.onInput() input ํƒœ๊ทธ ์•ˆ์˜ ๊ฐ’๋“ค์ด ๋ณ€๊ฒฝ ๋ ๋•Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ React์—์„œ input์˜ onChange ํ•œ ๋ฒˆ์— ๊ด€๋ฆฌํ•˜๊ธฐ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ๊ตฌํ˜„์‹œ ์—ฌ๋Ÿฌ๊ฐœ์˜ input์„ ๊ด€๋ฆฌ ์ด๋ฅผ ๋ชจ๋‘ ๋‹ค๋ฅธ state๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ง! //๊ฐ๊ฐ์˜ state๋กœ ๊ด€๋ฆฌ ์‹œ import React,{useState} from'react' export default function App(){ const [id,setId] = useState('') const [pw,setPw] = useState('') const [nickname,setNickname].. 2023. 1. 22.
[JavaScript] Event-onFocus, onBlur focus, blur? //์˜ˆ์‹œ ์ฝ”๋“œ ์ด๋ฉ”์ผ: focus ์ด๋ฒคํŠธ๋Š” ์š”์†Œ๊ฐ€ ํฌ์ปค์Šค๋ฅผ ๋ฐ›์„ ๋•Œ, blur ์ด๋ฒคํŠธ๋Š” ํฌ์ปค์Šค๋ฅผ ์žƒ์„ ๋•Œ ๋ฐœ์ƒ blur ํ•ธ๋“ค๋Ÿฌ์—์„  ํ•„๋“œ์— ์ด๋ฉ”์ผ์ด ์ž˜ ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์ž˜ ์ž…๋ ฅ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์—๋Ÿฌ๋ฅผ ๋ณด์—ฌ์คŒ focus ํ•ธ๋“ค๋Ÿฌ์—์„œ๋Š” ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆจ๊น€ focus์™€ blur ์ด๋ฒคํŠธ๋Š” ๋ฒ„๋ธ”๋ง ๋˜์ง€ ์•Š์Œ. ์บก์ฒ˜๋ง์ด๋‚˜ focusin ,focusout ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฒคํŠธ ์œ„์ž„ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ ํ˜„์žฌ ํฌ์ปค์Šค๋œ ์š”์†Œ๋Š” document.activeElement๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ focus ๊ฐ€๋Šฅํ•œ HTML์š”์†Œ ๋Œ€ํ™”ํ˜• ์š”์†Œ a button details input select textarea ์ด์™ธ์˜ ์š”์†Œ๋Š” ๋น„๋Œ€ํ™”ํ˜• ์š”์†Œ๋กœ ์นญํ•จ. ๐Ÿ’ก ๋น„๋Œ€ํ™”ํ˜• ์š”์†Œ์—๋„ ๊ฐ•์ œ๋กœ tabindex๋ฅผ ์‚ฌ์šฉํ•ด ํฌ์ปค์‹ฑ.. 2023. 1. 20.
[JavaScript] ๋น„๋™๊ธฐ ๋™๊ธฐ ์ฒ˜๋ฆฌ์™€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ JavaScript ์—”์ง„ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(signle thread) ๋ฐฉ์‹ cf. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋กœ ๋™์ž‘! ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํƒœ์Šคํฌ๋งŒ ์‹คํ–‰ ์ฒ˜๋ฆฌ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋ธ”๋กœํ‚น(์ž‘์—…์ค‘๋‹จ)์ด ๋ฐœ์ƒ ๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ๐Ÿ’ก ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ ๊นŒ์ง€ ๋‹ค์Œ์— ์‹คํ–‰๋  ํƒœ์Šคํฌ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ์‹ ํƒœ์Šคํฌ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์‹คํ–‰ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋จ ์•ž์„  ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ดํ›„ ํƒœ์Šคํฌ๋“ค์ด ๋ธ”๋กœํ‚น ๋จ /* ๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ * ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํƒœ์Šคํฌ๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ ๊นŒ์ง€ ๋‹ค์Œ์— ์‹คํ–‰๋  ํƒœ์Šคํฌ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ๋ฐฉ์‹ */ //ํ•จ์ˆ˜ sleep์€ delay๊ฐ€ ๊ฒฝ๊ณผํ•œ ํ›„์— ์ฝœ๋ฐฑํ•จ์ˆ˜(func) ํ˜ธ์ถœ function sleep(func, delay){ //Date.now()๋Š” ํ˜„์žฌ ์‹œ๊ฐ„์„ .. 2023. 1. 17.
[JavaScript] API API ์‹œ์Šคํ…œ์ด ๋งŒ๋“ค์–ด ๋†“์€ ์„œ๋น„์Šค ์ฐฝ๊ตฌ REST API REpresentational State Transfer ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€(๋ฐ์ดํ„ฐ) ํ˜•์‹ HTTP ๋ฉ”์„œ๋“œ(POST, GET, PUT, DELETE)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ CRUD๋ฅผ ์ ์šฉ JSON Server๋ฅผ ์ด์šฉํ•œ REST API ์‹ค์Šต 1. JSON Server ์„ค์น˜ mkdir json-server-exam && cd json-server-exam npm init -y npm install json-server --save-dev 2. db.json ํŒŒ์ผ ์ƒ์„ฑ /json-server-exam/db.json { "todos":[ { "id":1, "content":"HTML", "completed":true }, { "id".. 2023. 1. 16.