๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Daily/Today I Learned

201212_TIL

by joooing 2020. 12. 13.
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ์ผ


โœ”๏ธ ๊ณ„์‚ฐ๊ธฐ ์™„์„ฑํ•˜๊ธฐ (~Nightmare1)
ํ‚ค๋ณด๋“œ๋กœ ์ž…๋ ฅ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ์™„์„ฑํ–ˆ๋‹ค!! ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ–ˆ์„ ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ addEventListener๋ฅผ ์ด์šฉํ–ˆ๋Š”๋ฐ, ๋งˆ์šฐ์Šค๋Š” click ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ–ˆ์ง€๋งŒ ์ด๋ฒˆ์—๋Š” ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ์‹ถ์–ด์„œ keydown ์ด๋ผ๋Š” event๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์ ์  ๊ธธ์–ด์ง€๊ณ  ๋ณต์žกํ•ด์ง€๋‹ˆ๊นŒ ๋ญ๊ฐ€ ๋ญ”์ง€ ๋‚˜์ค‘์— ๊นŒ๋จน์„ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ถ”๊ฐ€ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…๋„ ๋‚ด์ผ ์ •๋ฆฌํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค ๐Ÿ™‰ ๊ณตํ•™์šฉ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ๋Š” HTML ํŒŒ์ผ๋ถ€ํ„ฐ ๋œฏ์–ด ๊ณ ์ณ์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ ์ผ๋‹จ ์ง€๊ธˆ๊นŒ์ง€ ํ•œ ๊ฒƒ ๋ณต์Šต์ด๋ž‘ ์ •๋ฆฌ๋ถ€ํ„ฐ ๋๋‚ด๊ณ  ์‹œ๊ฐ„์ด ๋‚จ๋Š”๋‹ค๋ฉด ๋„์ „ํ•ด๋ด์•ผ๊ฒ ๋‹ค..!

โœ”๏ธ Flex, classList ๊ฐœ๋… ์ •๋ฆฌ
CSS์—์„œ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” Flex์™€, Javascript์—์„œ ํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ ํ˜น์€ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” classList ๊ฐœ๋…์— ๋Œ€ํ•ด ์ข€ ๋” ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉฐ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ–ˆ๋‹ค. Flex๋Š” ๊ณ„์‚ฐ๊ธฐ์—์„œ ์ˆ˜์ง, ์ˆ˜ํ‰ ์ค‘์•™์ •๋ ฌ์„ ํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๊ณ , classList๋Š”๋ฒ„ํŠผ์„ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๊ณ , ๋‹ค์‹œ ๋งˆ์šฐ์Šค๋ฅผ ๋–ผ๋ฉด ์ƒ‰์ƒ์ด ์›๋ž˜๋Œ€๋กœ ๋Œ์•„์˜ค๋„๋ก ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ–ˆ๋‹ค. (๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ–ˆ์„ ๋• isPressed๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€, ๋งˆ์šฐ์Šค๋ฅผ ๋•Œ๋ฉด isPressed ํด๋ž˜์Šค๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ // isPressedํด๋ž˜์Šค๋Š” ํ…์ŠคํŠธ ์ƒ‰์ƒ์ด ๋ฐ”๋€Œ๋„๋ก CSS ์Šคํƒ€์ผ์„ ์ ์šฉํ•ด๋‘ )

โœ”๏ธ ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ ~1-2์žฅ ์ฝ๊ธฐ
ํ–‰๋™์— ์ฑ…์ž„์ง€๊ธฐ, ์‹ค์ˆ˜ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ํŒ๋‹จ์„ ๋‚ด๋ ธ๋‹ค๋ฉด ์ •์งํ•˜๊ฒŒ ์ธ์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฐฉ์•ˆ์„ ์ œ์‹œํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ธฐ, ๋ถ€ํƒํ•˜๋Š” ๊ฒƒ์„ ์–ด๋ ค์›Œํ•˜์ง€ ๋ง๊ณ  ๋„์›€์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค ์ธ์ •ํ•˜๊ธฐ, '๊นจ์ง„ ์œ ๋ฆฌ์ฐฝ ์ด๋ก '์ฒ˜๋Ÿผ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋†”๋‘์ง€ ๋ง๊ณ  ๋ฐœ๊ฒฌํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ ๊ณ ์น˜์ž!

See the Pen Calculator by kIMJUHYE (@JOOOOOHYE) on CodePen.

 

๐ŸŽ ๋” ๊ณต๋ถ€ํ•  ๊ฒƒ


โœ”๏ธ javascript์—์„œ ๋ณ€์ˆ˜, ๋ฐฐ์—ด ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ• ๋” ์ฐพ์•„๋ณด๊ธฐ
ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ ๋ฐ›์€ ์ž…๋ ฅ๊ฐ’(keyContent)์ด +,-,*,/ ์ค‘ ํ•˜๋‚˜๋ฉด opeator๋กœ ์ธ์‹ํ•˜๊ณ  ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, if(keyContent==='+' || keyContent==='-' || keyContent==='*' || keyContent==='/') ์ด๋Ÿฐ์‹์œผ๋กœ ์กฐ๊ฑด์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” operatorList = ['+','-','*','/'] ๋ผ๋Š” ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ , keyContent๊ฐ’์ด ์—ฌ๊ธฐ์— ํฌํ•จ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋กœ ์กฐ๊ฑด์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ๋ณด๊ธฐ์—๋„ ์ข‹๊ณ  ํšจ์œจ์ (?)์ผ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ๋ณ€์ˆ˜์™€ ๋ฐฐ์—ด์„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

โœ”๏ธ์ฝ”๋“œ ๊ฐœ์„ ํ•˜๊ธฐ
์ผ๋…„ ๋’ค์— ๋‹ค์‹œ๋ด๋„  ์•Œ์•„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ข€ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!

 

 

โœ๏ธ ๋ˆˆ ๋œจ์ž๋งˆ์ž ๋งฅ๋ถ ์ˆ˜๋ฆฌํ•˜๋Ÿฌ ๊ฐ”๋‹ค๊ฐ€(๊ฒฐ๊ตญ ์˜ค๋Š˜ ๋ชป๊ณ ์นจ) ๋ณธ๊ฐ€๋„ ๋‹ค๋…€์˜ค๊ณ  ์—ฌ๊ธฐ์ €๊ธฐ ์ด๋™ํ–ˆ๋”๋‹ˆ ํ•˜๋ฃจ์˜ ๋ฐ˜์ด ๊ฐ€๋ฒ„๋ฆฐ ๋‚ ์ด์—ˆ๋‹ค ๐Ÿ˜ต 

๋ฐ˜์‘ํ˜•

'Daily > Today I Learned' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

201215_TIL  (0) 2020.12.16
201214_TIL  (0) 2020.12.15
201211_TIL  (0) 2020.12.12
201210_TIL  (0) 2020.12.10
201209_TIL  (0) 2020.12.10

๋Œ“๊ธ€