๐Ÿคต๐Ÿผ์–•๊ณ  ์–•์€ ๊ฐœ๋ฐœ์ž์˜ ํฌํŠธํด๋ฆฌ์˜ค ๋งŒ๋“ค๊ธฐ 4๐Ÿคต๐Ÿผ

๋ฌธ์„ยท2021๋…„ 3์›” 14์ผ
0

๐Ÿ‘ ํ‚ค๋ณด๋“œ๋กœ ์กฐ์ž‘ํ•˜๊ธฐ

ํ‚ค๋ณด๋“œ๋กœ ์‰ฝ๊ฒŒ ํฌํด์„ ๊ตฌ๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž.

ํ™ˆ ํ™”๋ฉด์ด๋‹ค. ์งค์„ ๋„ฃ์œผ๋ ค๋‹ค๊ฐ€ ๊ท€์ฐฎ์•„์„œ ํฌ๊ธฐ. ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์„ ํƒ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

function OnKeyPress(key,history) {
   useEffect(() => {
     function onKeyup(e) {        
       if (e.key === key) {
           history.push("/Select");
       }
     }
     window.addEventListener('keyup', onKeyup);
     return () => window.removeEventListener('keyup', onKeyup);
   }, []);
}


์ด ํ™”๋ฉด์—์„œ๋Š” ๋ฐฉํ–ฅํ‚ค์™€ ์—”ํ„ฐ๋กœ ํ•ด๋‹นํ•˜๋Š” ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋””์ž์ธ ๋Šฅ๋ ฅ๊ณผ css ๋Šฅ๋ ฅ์ด 0์— ์ˆ˜๋ ดํ•ด์„œ ์—ฌ๊ธฐ์ €๊ธฐ์—์„œ ์งœ์ง‘๊ธฐํ•ด์„œ ๋งŒ๋“  ํ™”๋ฉด์ด๋‹ค. ์ขŒ์ธก๋ถ€ํ„ฐ ๊ธฐ์ˆ  ์Šคํƒ, ํ”„๋กœ์ ํŠธ, ๊ฒฝ๋ ฅ(๊ฒฝํ—˜)์„ ์˜๋ฏธํ•œ๋‹ค. ์„ค๋ช…์„ ์•ˆํ•ด๋„ ์•Œ ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์ •ํ™•ํ•œ ์‹ฌ๋ณผ์ด๋‹ค?

useEffect(() => {
       adminButton();
       function onKeyup(e) {
           let to_find = null;
           if (e.key === 'Enter') {

               history.push("/" + dict[idx][3]);
           }
           if (['ArrowRight', 'ArrowLeft'].includes(e.key)) {

               if (e.key === 'ArrowRight') {
                   idx = (idx + 4) % 3;
               } else if (e.key === 'ArrowLeft') {
                   idx = (idx + 2) % 3
               }

               for (let i = 0; i < 3; i++) {
                   if (i === idx) {
                       to_find = dict[idx];
                       console.log(to_find[0])
                       document.getElementById(to_find[0]).className = to_find[1];
                   } else {

                       to_find = dict[i];

                       document.getElementById(to_find[0]).className = to_find[2];
                   }
               }
           }


       }
       window.addEventListener('keyup', onKeyup);
       return () => window.removeEventListener('keyup', onKeyup);
   }, []);
}

์ขŒ์šฐ์ธก ํ™”์‚ดํ‘œ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ณ ๋ฅด๊ณ  ์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ ๋ทฐ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. dict์—๋Š” ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ด๋ฆ„์ด ๋‹ด๊ฒจ์žˆ๊ณ  ์ด๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์˜ url๊ณผ ๊ฐ™์•„์„œ dict์˜ value๋ฅผ ํ†ตํ•ด ํ•ด๋‹นํ•˜๋Š” ๋ทฐ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘ ์ปจํ…์ธ  ๋ณด์—ฌ์ฃผ๊ธฐ


ํ”„๋กœ์ ํŠธ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋ทฐ๋‹ค. ๊ฐ๊ฐ์˜ ์ปจํ…์ธ ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ์„ค๋ช…์ด ๋‚˜์˜จ๋‹ค. ๋‚˜๋ฌด๋Š” ํ”„๋กœ์ ํŠธ ์ด๋ฏธ์ง€๊ฐ€ ๋”ฐ๋กœ ์—†๊ฑฐ๋‚˜ ์—ฐ๊ตฌ์‹ค ํ˜น์€ ํšŒ์‚ฌ์—์„œ ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ๋‹ค.

modal ํ™”๋ฉด์œผ๋กœ ์„ค๋ช…์ด ๋‚˜์˜จ๋‹ค. ๋ญ”๊ฐ€ ์ต์ˆ™ํ•œ ๋ ˆ์ด์•„์›ƒ์ธ๋ฐ markdown ์œผ๋กœ ์ž‘์„ฑํ•˜์˜€๋‹ค. react-markdown ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋งˆํฌ๋‹ค์šด์„ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ์ดํ›„ ์ƒˆ๋กœ์šด ํ™”๋ฉด์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋„ˆ๋ฌด ํŽธํ•˜๋‹ค. ์•„์ง ์ปค์Šคํ…€ ์–ด๋“œ๋ฏผ์„ ๋งŒ๋“ค์ง€๋Š” ๋ชปํ–ˆ๋Š”๋ฐ ์•„๋ž˜์˜ ์žฅ๊ณ  ์–ด๋“œ๋ฏผ ํ™”๋ฉด์„ ๋ณด์ž.

์žฅ๊ณ ์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•ด์ฃผ๋Š” admin์ด๋‹ค. ์—ฌ๊ธฐ์— ์ž…๋ ฅ๋งŒ ํ•ด์ฃผ๋ฉด ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค. Stack ์€ list ํ˜•ํƒœ์˜ ๊ธฐ์ˆ  ์Šคํƒ์„ ๋ฐ›์•„ ๊ธฐ์ˆ  ์Šคํƒ์— ํ•ด๋‹น๋˜๋Š” image๋กœ ๋ชจ๋‹ฌ์ฐฝ์—์„œ ๋ณด์—ฌ์ฃผ๊ณ  Markdown content๋Š” markdown ๋ฌธ๋ฒ•์œผ๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋ชจ๋‹ฌ ์ฐฝ์—์„œ ๋งˆํฌ๋‹ค์šด ์ปจํ…์ธ ๋กœ ๋ณด์—ฌ์ค€๋‹ค. ์•„๋ž˜ Image๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ธ๋„ค์ผ. ์ด์ œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋กœ๋“œ ํ•  ๋•Œ ๋‹จ์ˆœํžˆ ์–ด๋“œ๋ฏผ์—์„œ ๋‚ด์šฉ๋งŒ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค!

https://whoami-moonseok.herokuapp.com/

0๊ฐœ์˜ ๋Œ“๊ธ€