๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

keyDown/keyUp ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ• ๋•Œ, ์˜์–ด๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ํ•œ๊ตญ์–ด๋กœ ์ž…๋ ฅํ•˜๋ฉด ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๐Ÿค” Why? ์ด ๋ฌธ์ œ๋Š” ํ•œ๊ธ€์˜ ์กฐํ•ฉํ˜• ์ž…๋ ฅ ๋ฐฉ์‹ ๋•Œ๋ฌธ์ด๋ผ๊ณ ํ•œ๋‹ค. ํ•œ๊ธ€ ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ํ‚ค ์ž…๋ ฅ์ด ์กฐํ•ฉ๋˜์–ด ํ•˜๋‚˜์˜ ๊ธ€์ž๋ฅผ ์™„์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์—, key Event๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์ ์—๋Š” ์ž…๋ ฅ์ด ์™„์ „ํžˆ ์™„์„ฑ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.  e.nativeEvent.isComposing  ์ด ์†์„ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ…์ŠคํŠธ ์ž…๋ ฅ ์ค‘์— ๋ฌธ์ž ์กฐํ•ฉ(์˜ˆ: ํ•œ๊ธ€ ์ž์Œ๊ณผ ๋ชจ์Œ ์กฐํ•ฉ)์ด ์ง„ํ–‰ ์ค‘์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ž…๋ ฅ์ด ์™„์„ฑ๋œ ์ƒํƒœ์ธ์ง€๋ฅผ ํ™•์ธํ•˜์—ฌ, ์ž…๋ ฅ์˜ ์™„์„ฑ์ด ๋œ ๊ฒฝ์šฐ์—๋งŒ ๊ฒ€์ƒ‰์ฒ˜๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค. const handleKeyDown: Keyboar..
์˜ˆ์ „์— ์ฝ”๋”ฉ์•Œ๋ ค์ฃผ๋Š”๋ˆ„๋‚˜์˜ ์ฑ„ํŒ…์•ฑ ๋งŒ๋“ค๊ธฐ ์˜์ƒ์„ ๋ณด๊ณ  ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ๋‹จ ์ƒ๊ฐ์—,2์ฃผ ๋ฐฐ์šด ๋ชจ์ž๋ž€ ๋ฐฑ์—”๋“œ ์‹ค๋ ฅ์ด์ง€๋งŒ... ์˜จ์ „ํ•œ ๊ธฐ๋Šฅ์„ ๋‹คํ•˜์ง„ ๋ชปํ•ด๋„ ๊ฐ„๋‹จํ•œ ์ฑ„ํŒ…์•ฑ ๋งŒ๋“ค๊ธฐ์— ๋„์ „์„ ํ•ด๋ณด์•˜๋‹ค! [BackEnd]HTTP๋‹จ๋ฐฉํ–ฅ(ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์‹œ๋งŒ)์—ฐ๊ฒฐ ์ง€์†์„ฑ โŒ ์›น์†Œ์ผ“์–‘๋ฐฉํ–ฅ(๊ฐ์ž๋Œ€ํ™”๋ฅผ ์›ํ• ๋•Œ ์š”์ฒญ ๊ฐ€๋Šฅ)์—ฐ๊ฒฐ ์ง€์†์„ฑโญ•๏ธ ๐Ÿ‘‰๐Ÿป ์›น์†Œ์ผ“์œผ๋กœ ์ง€์†์ ์ธ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๊ณ , ์„œ๋ฒ„๊ฐ€ ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์„๋•Œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ฆ‰์‹œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ์ˆ˜์žˆ๋‹ค.  https://github.com/Yuiii0/chat-server GitHub - Yuiii0/chat-serverContribute to Yuiii0/chat-server development by creating an account on Git..
์ข‹์•„์š”ํ•œ ์ƒํ’ˆ๋“ค์„ ํ”„๋ก ํŠธ๋‹จ์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด, zustand ์Šคํ† ์–ด์— productId๋ฅผ ๋ฐฐ์—ด๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค. ๋งˆ์ดํŽ˜์ด์ง€์—์„œ, ์ข‹์•„์š”ํ•œ ์ƒํ’ˆ productList๋“ค์„ ์œ„ํ•ด์„œ, zustand์—์„œ ๊ด€๋ฆฌํ•˜๊ณ ์žˆ๋Š” productId๋“ค์˜ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ, ํ•ด๋‹น productId๋กœ getProduct ์ฟผ๋ฆฌ๋ฌธ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค.  useQueries์—ฌ๋Ÿฌ๊ฐœ์˜ ๋น„๋™๊ธฐ ์ฟผ๋ฆฌ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ›…์œผ๋กœ, ๊ฐ๊ฐ์˜ ์ฟผ๋ฆฌ๋ฅผ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฐ›์•„ ๊ฐ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ ์ฟผ๋ฆฌ์˜ ๋กœ๋”ฉ ์ƒํƒœ๋‚˜ ์—๋Ÿฌ์ƒํƒœ ๋“ฑ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.  ๋™์  ๋ณ‘๋ ฌ ์ฟผ๋ฆฌ ์ž‘์—…์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ์—, ์ฃผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋น„๋™๊ธฐ ์ฟผ๋ฆฌ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•ด์•ผ ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. const results = useQueries(..
๋ธŒ๋žœ๋“œ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ๋ธŒ๋žœ๋“œ๋ณ„ ์ƒํ’ˆ์„ ๋ธŒ๋žœ๋“œํŽ˜์ด์ง€์—์„œ ๋ณด์—ฌ์ฃผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, brandId์— ๋”ฐ๋ผ ์กฐ๊ฑด๋ถ€ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด fetch๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. brandIdโญ•๏ธ : ๋ธŒ๋žœ๋“œ๋ณ„ ์ƒํ’ˆ fetch (useQueryGetBrand)โŒ : ์ „์ฒด์ƒํ’ˆ fetch (useQueryGetProducts)  ์กฐ๊ฑด๋ฌธ๊ณผ useEffectโ—๏ธReact ํ›…์€ ์ปดํฌ๋„ŒํŠธ์˜ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ๋งŒ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค. ํ›…์˜ ๋™์ž‘์ด ์˜ˆ์ธกํ•  ์ˆ˜๊ฐ€ ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. React๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ ๋ณ€ํ™”๋‚˜ props์— ๋”ฐ๋ผ ๋ฆฌ๋ Œ๋”๋ง ๋˜๊ธฐ๋•Œ๋ฌธ์—, ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์—์„œ ํ˜ธ์ถœํ•˜๊ฒŒ๋˜๋ฉด, ํ•ด๋‹น ์กฐ๊ฑด์ด๋‚˜ ๋ฐ˜๋ณต์— ์˜ํ•ด ๋ฆฌ๋ Œ๋”๋ง์œผ๋กœ ์ฟผ๋ฆฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์ด์ „ ์ฟผ๋ฆฌ๊ฐ€ ์ƒˆ๋กœ์šด ์ฟผ๋ฆฌ๋กœ ๋Œ€์ฒด๋ ์ˆ˜ ์žˆ๊ณ , ์˜ˆ๊ธฐ์น˜..
์œ ์ €๊ฐ€ ์ข‹์•„์š”ํ•œ ์ƒํ’ˆ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค. 1. ์„œ๋ฒ„ API๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ์„œ๋ฒ„์ธก์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ, ๋ณด์•ˆ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„๋„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ ํ•  ์ˆ˜์žˆ๋‹ค. 2. ํ”„๋ก ํŠธ์—”๋“œ ์ „์—ญ ์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ์„œ๋ฒ„์˜ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์—†์ด ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— UI๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๊ด€์„ฑ, ์บ์‹œ๋ฅผ ์ง€์šฐ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์ข‹์•„์š” ์ƒํƒœ ์ •๋ณด๋ฅผ ์žƒ์–ด๋ฒ„๋ฆด์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. โœจ ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์—…์ ์ธ ์›น์•ฑ์—์„  ์„œ๋ฒ„ API๋ฅผ ํ†ตํ•œ ๊ด€๋ฆฌ ๋ฐฉ์‹์„ ์„ ํ˜ธํ•œ๋‹ค!   ์‚ฌ์šฉ์ž๊ฐ€ ์ข‹์•„์š” ๋ฒ„ํŠผ์„ ํ† ๊ธ€ํ•˜์—ฌ , ์ข‹์•„์š” ๋ˆ„๋ฅธ ์ƒํ’ˆ๋“ค์˜ productId๋ฅผ zustand๋กœ ์ „์—ญ๊ด€๋ฆฌํ•˜์—ฌ,๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์ข‹์•„์š”ํ•œ ์ƒํ’ˆ๋“ค์˜ productId์„ ๊ฐ€์ง€๊ณ  apiํ˜ธ์ถœ์„ ํ†ตํ•ด ๊ฐ€์ ธ์™€์„œ ๋„์šฐ๋Š” ..
[Lv2] ํƒ€๊ฒŸ๋„˜๋ฒ„ function solution(numbers, target) { var answer = 0; function dfs(idx,sum){ if(idx 0) { let [x, y, distance] = queue.shift(); // ํ˜„์žฌ ์œ„์น˜ ๋ฐ ์ด๋™ ๊ฑฐ๋ฆฌ // ๋ชฉํ‘œ ์ง€์ ์— ๋„๋‹ฌํ•œ ๊ฒฝ์šฐ if (x === n - 1 && y === m - 1) { return distance; // ํ˜„์žฌ๊นŒ์ง€์˜ ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ } // ์ƒํ•˜์ขŒ์šฐ๋กœ ์ด๋™ ์‹œ๋„ for (const [dx, dy] of dir) { let newX = x + dx; let newY = y + dy; // ์ด๋™ ๊ฐ€๋Šฅํ•œ ์œ„์น˜์ด๊ณ , ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ if (newX >= 0 && newX = 0 && new..
[Lv1] ๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด function solution(arr) { const answer = [arr[0]]; //์ฒซ๋ฒˆ์งธ ์›์†Œ๋Š” ํ•ญ์ƒ ํฌํ•จ for(let i=1;iarr[i]!==arr[i+1]) } ์ •ํ™•์„ฑ: 71.9, ํšจ์œจ์„ฑ: 28.1 [Lv2] ๊ธฐ๋Šฅ๊ฐœ๋ฐœ function solution(progresses, speeds) { var answer = []; const work=[] //1. ์ž‘์—…์ผ ๋ฐฐ์—ด ์ƒ์„ฑ for(let i=0;i< progresses.length;i++){ let left=100-progresses[i]; left=Math.ceil(left/speeds[i]) work.push(left) } //2. ์ˆœํšŒ let deploy=work[0]; let count=0; for(let..
Express.js CR GET //file Data GET app.get("/posts", async (req, res) => { res.json(posts); //JSONํ˜•์‹์œผ๋กœ ์‘๋‹ต๋ณด๋‚ด๊ธฐ }); app.get("/posts/:postId", (req, res) => { const postId = req.params.postId; const post = posts.find((post) => post.id === Number(postId)); res.json(post); }); //axios๋กœ GET app.get("/todos", async (req, res) => { const response = await axios.get( "https://jsonplaceholder.typicode.com/to..
Yuuuki
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (12 Page)