๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
[React] ReactDOM.render is no longer supported in React 18 ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ React + Typescript ํ™˜๊ฒฝ์—์„œ React Testing library์™€ jest๋ฅผ ์ด์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ ค๋Š” ๋„์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์•ผ ํ•  ๊ฒƒ์€ ๋ณ„ ๊ฑฐ ์•„๋‹ˆ์—ˆ์ง€๋งŒ ํž˜๋“ค๊ฒŒ(?) ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ฐพ์•„์„œ ๊ธฐ๋ก์„ ํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. 1. ๋ฌธ์ œ ๋ฐœ์ƒ CRA typescript๋กœ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•˜๊ณ  ๋‚œ ํ›„์— npm test ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋“ค์ด ์ž˜ ์‹คํ–‰์ด ๋˜๋Š”์ง€ ํ™•์ธ์„ ํ•ด๋ดค๋‹ค. ํ•˜์ง€๋งŒ ReactDOM.render is no longer supported in React 18 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž์ฒด๋Š” PASS๊ฐ€ ๋˜๋ฉด์„œ ์ž˜ ์‹คํ–‰์ด ๋˜์—ˆ์ง€๋งŒ ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋งค์šฐ ์‹ ๊ฒฝ ์“ฐ์˜€๋‹ค. 2. ๋ฐœ์ƒ ์›์ธ Rea..

article thumbnail
[Clean Code] ๋ฏธ์…˜ 5 - Day 22, 23

ํด๋ฆฐ ์ฝ”๋“œ ์ฝ์œผ๋ฉฐ ๋ผˆ๋งž์•˜๋˜ ๋‚ด์šฉ ์ค‘ 3๊ฐ€์ง€ ์ง„๋ฆฌ ๋ฅผ ๊ณ ๋ฅด๊ณ , ์ง„๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๋Š” ์˜ˆ์‹œ ์ด 3๊ฐ€์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ. ์ง„๋ฆฌ 1. try/catch ๋ธ”๋ก์„ ๋ณ„๋„ ํ•จ์ˆ˜๋กœ ๋ฝ‘์•„๋‚ด๋Š” ํŽธ์ด ์ข‹๋‹ค. (p.58) ๋ฌด์—‡์„ ๊ณ ์ณค๋Š”๊ฐ€? ๐Ÿ˜‚ Before const saveAsImageHandler = async () => { const target = document.getElementById('content'); if (!target) return alert('๊ฒฐ๊ณผ ์ €์žฅ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.'); alert( '์ƒˆ๋กœ์šด ์ฐฝ์ด ์—ด๋ฆฌ๋ฉด\nPC์—์„œ๋Š” ์šฐํด๋ฆญ -> ์ด๋ฏธ์ง€ ์ €์žฅํ•˜๊ธฐ\n๋ชจ๋ฐ”์ผ์€ ์ด๋ฏธ์ง€๋ฅผ ๊พน ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”!\n*์ƒˆ๋กœ์šด ์ฐฝ์ด ์•ˆ ์—ด๋ฆฐ๋‹ค๋ฉด ํŒ์—…์„ ํ•ด์ œํ•ด์ฃผ์„ธ์š”*' ); try { const canvas = await html2canvas(target..

article thumbnail
[Clean Code] TIL - Day 20, 21

Day 20, 21 ๐Ÿ”– ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ : 10์žฅ ํด๋ž˜์Šค(p.172 ~ p.192) ๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ์ฒซ๋ฒˆ์งธ ๊ทœ์น™์€ ํฌ๊ธฐ๋‹ค. ํด๋ž˜์Šค๋Š” ์ž‘์•„์•ผ ํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ๊ทœ์น™๋„ ํฌ๊ธฐ๋‹ค. ๋” ์ž‘์•„์•ผ ํ•œ๋‹ค.(p.172) ํด๋ž˜์Šค ์„ค๋ช…์€ ๋งŒ์ผ("if"), ๊ทธ๋ฆฌ๊ณ ("and"), -(ํ•˜)๋ฉฐ("or), ํ•˜์ง€๋งŒ("but")์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ์„œ 25๋‹จ์–ด ๋‚ด์™ธ๋กœ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.(p.175) ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์€ ํด๋ž˜์Šค๋‚˜ ๋ชจ๋“ˆ์„ ๋ณ€๊ฒฝํ•  ์ด์œ ๊ฐ€ ํ•˜๋‚˜, ๋‹จ ํ•˜๋‚˜๋ฟ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.(p.175) ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์ž‘์—…์€ ํ”„๋กœ๊ทธ๋žจ๋งŒ์ด ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™œ๋™์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ค‘์š”ํ•˜๋‹ค.(p.176) "๋„๊ตฌ ์ƒ์ž๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์€๊ฐ€? ์ž‘์€ ์„œ๋ž์„ ๋งŽ์ด ๋‘๊ณ  ๊ธฐ๋Šฅ๊ณผ ์ด๋ฆ„์ด ๋ช…ํ™•ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚˜๋ˆ  ๋„ฃ๊ณ  ์‹ถ์€๊ฐ€? ์•„๋‹ˆ..

article thumbnail
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 'ํƒ€๊ฒŸ ๋„˜๋ฒ„' ๋ฌธ์ œ ํ’€์ด (LV.2)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ DFS ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 'ํƒ€๊ฒŸ ๋„˜๋ฒ„' ๋ฌธ์ œ ํ’€์ด๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค. โ“ ๋ฌธ์ œ ๋ฌธ์ œ ์„ค๋ช… n๊ฐœ์˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •์ˆ˜๋“ค์„ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ์ ์ ˆํžˆ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ์„œ ํƒ€๊ฒŸ ๋„˜๋ฒ„๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [1, 1, 1, 1, 1]๋กœ ์ˆซ์ž 3์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹ค์„ฏ ๋ฐฉ๋ฒ•์„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers, ํƒ€๊ฒŸ ๋„˜๋ฒ„ target์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์ˆซ์ž๋ฅผ ์ ์ ˆํžˆ ๋”ํ•˜๊ณ  ๋นผ์„œ ํƒ€๊ฒŸ ๋„˜๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ ์ฃผ์–ด์ง€๋Š” ์ˆซ..

article thumbnail
[Clean Code] TIL - Day 17,18

Day 17, 18 ๐Ÿ”– ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ : 9์žฅ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(p.153 ~ p.170) ๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ TDD ๋ฒ•์น™ ์„ธ ๊ฐ€์ง€(p.155) ์ฒซ์งธ ๋ฒ•์น™: ์‹คํŒจํ•˜๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๊นŒ์ง€ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‘˜์งธ ๋ฒ•์น™: ์ปดํŒŒ์ผ์€ ์‹คํŒจํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์‹คํ–‰์ด ์‹คํŒจํ•˜๋Š” ์ •๋„๋กœ๋งŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์…‹์งธ ๋ฒ•์น™: ํ˜„์žฌ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ์ •๋„๋กœ๋งŒ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ• ์ˆ˜๋ก ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆฌ๊ธฐ ์‹ญ์ƒ์ด๋‹ค. ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด ๊ธฐ์กด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด, ์ง€์ €๋ถ„ํ•œ ์ฝ”๋“œ๋กœ ์ธํ•ด, ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ ์  ํ†ต๊ณผ์‹œํ‚ค๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.(p.156) ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์‹ค์ œ ์ฝ”๋“œ ๋ชป์ง€์•Š๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.(p.157) ์ฝ”..

article thumbnail
[Clean Code] ๋ฏธ์…˜ - Day 16

๐Ÿ“š ์ถ”์ฒœํ•˜๋Š” TIL @Flynn ๋‹˜ ๋งํฌ: Day11 ๋‚ด๊ฐ€ ์ž‘์„ฑํ–ˆ๋˜ Day11์˜ ๋ฆฌํŒฉํ† ๋ง ๋ถ€๋ถ„ํ•˜๊ณ  ๊ตฌ์กฐ ์ž์ฒด๋Š” ๋น„์Šทํ•˜์ง€๋งŒ ๋‚ด ์ฝ”๋“œ์—์„œ ๋ญ๊ฐ€ ์ข€ ๋” ๋ถ€์กฑํ•œ์ง€ ์•Œ๊ฒŒ ํ•ด์ฃผ์—ˆ๋˜ Flynn๋‹˜์˜ ์ฝ”๋“œ์˜€๋‹ค. ๋ณ€์ˆ˜๋ช…, ํ•จ์ˆ˜๋ช…, ํ•จ์ˆ˜ ๊ธฐ๋Šฅ ๋ถ€๋ถ„์—์„œ ์ตœ~๋Œ€ํ•œ ๋ช…ํ™•ํ•˜๊ฒŒ ์ด๋ฆ„์„ ์ง“๊ณ  ์„ธ๋ถ„ํ™” ํ•œ ๊ฒƒ์„ ๋ณด๊ณ  ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ตฌ๋‚˜ ๋Š๊ผˆ๋˜ Flynn๋‹˜์˜ ์ฝ”๋“œ์˜€๋‹ค. @์นœ์Šˆ ๋‹˜ ๋งํฌ: Day12 ์ง€๊ธˆ๊นŒ์ง€ ์ฝ์œผ๋ฉด์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์ œ์ผ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„์ด '๊ฐ์ฒด์™ธ ์ž๋ฃŒ๊ตฌ์กฐ' ๋ถ€๋ถ„์ด์—ˆ๋Š”๋ฐ ์นœ์Šˆ๋‹˜๊ป˜์„œ๋Š” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ฝ”๋“œ ๋ถ€๋ถ„๋„ ์ธ์šฉํ•˜๊ณ  ์ •๋ฆฌ๋„ ์ž˜ ํ•˜์‹  ๊ฒƒ ๊ฐ™๋‹ค. @Arthur Coker ๋‹˜ ๋งํฌ: Day15 '์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ'์žฅ์—์„œ ์ง์ ‘ ์ฝ๊ณ  ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•œ ๊ฒƒ์„ ์ž‘์„ฑํ•˜๊ณ  ๋ฌธ์ œ์ ๊นŒ์ง€ ์ œ์‹œํ•˜๋Š” ๋ถ€๋ถ„์ด ์ธ์ƒ๊นŠ์—ˆ๋‹ค.

article thumbnail
[Clean Code] TIL - Day 13, 15

Day 13, 15 ๐Ÿ”– ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ : 7์žฅ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ(p.130~p.142) ๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ ๊นจ๋—ํ•œ ์ฝ”๋“œ์™€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ํ™•์‹คํžˆ ์—ฐ๊ด€์„ฑ์ด ์žˆ๋‹ค. ์ƒ๋‹น์ˆ˜ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์€ ์ „์ ์œผ๋กœ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ์— ์ขŒ์šฐ๋œ๋‹ค.(p.130) ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ณด๋‹ค ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ.(p.130) ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ๋Š” try-catch-finally ๋ฌธ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŽธ์ด ๋‚ซ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด try ๋ธ”๋ก์—์„œ ๋ฌด์Šจ ์ผ์ด ์ƒ๊ธฐ๋“ ์ง€ ํ˜ธ์ถœ์ž๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ์ƒํƒœ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.(p.131) ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ์ •๋ณด๋ฅผ ๋‹ด์•„ ์˜ˆ์™ธ์™€ ํ•จ๊ป˜ ๋˜์ง„๋‹ค. ์‹คํŒจํ•œ ์—ฐ์‚ฐ๊ณผ ์‹คํŒจ ์œ ํ˜•๋„ ์–ธ๊ธ‰ํ•œ๋‹ค.(p.135) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ด€์‹ฌ์‚ฌ๋Š” ์˜ค๋ฅ˜๋ฅผ ์žก์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.(p.135) null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฝ”๋“œ๋Š”..

article thumbnail
[Clean Code] TIL - Day 12

Day 12 ๐Ÿ”– ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„ : 6์žฅ ๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ(p.118~p.128) ๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ์ฒด๊ฐ€ ํฌํ•จํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ํฌํ˜„ํ•  ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์‹ฌ๊ฐํ•˜๊ฒŒ ๊ณ ๋ฏผํ•ด์•ผ ํ•œ๋‹ค.(p.119) ๊ฐ์ฒด๋Š” ์ถ”์ƒํ™” ๋’ค๋กœ ์ž๋ฃŒ๋ฅผ ์ˆจ๊ธด ์ฑ„ ์ž๋ฃŒ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ•จ์ˆ˜๋งŒ ๊ณต๊ฐœํ•œ๋‹ค.(p.119) ์ž๋ฃŒ ๊ตฌ์กฐ๋Š” ์ž๋ฃŒ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ณต๊ฐœํ•˜๋ฉฐ ๋ณ„๋‹ค๋ฅธ ํ•จ์ˆ˜๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.(p.119) ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๋Š” ๊ธฐ์กด ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋‹ค. ๋ฐ˜๋ฉด, ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ๋Š” ๊ธฐ์กด ํ•จ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋‹ค.(p.122) ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๋Š” ์ƒˆ๋กœ์šด ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ๊ณ ์ณ์•ผ ํ•œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ๋Š” ์ƒˆ๋กœ์šด ์šด ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ๊ณ ์ณ..

article thumbnail
[Clean Code] ๋ฏธ์…˜ - Day 11

DAY 11 ๐Ÿ”– ๋ฏธ์…˜: ๋”๋Ÿฌ์šด ์ฝ”๋“œ๋ฅผ ๊ณ ์น˜์ž ๐Ÿ’ฉ ๋”๋Ÿฌ์šด ์ฝ”๋“œ const merry = document.querySelector(".js-clock"); function getClock() { const christmas = new Date("2021, 12, 25"); const date = new Date(); const timeGap = christmas - date; const xDay = Math.floor(timeGap / (1000 * 60 * 60 * 24)); const xHours = Math.floor( (timeGap - xDay * 1000 * 60 * 60 * 24) / (1000 * 60 * 60) ); const xMinutes = Math.floor((timeGap % (60..