๐Ÿ‘ฉ‍๐Ÿ’ป 93

[React.js Hooks] React Hook useEffect has a missing dependency: 'dispatch'. Either include it or remove the dependency array react-hooks/exhaustive-deps issue

๋ฌธ์ œ ์ƒํ™ฉ useEffect๋ฅผ ์“ฐ๋ฉด์„œ ์ž์ฃผ ๋งŒ๋‚˜๋Š” ์—๋Ÿฌ ํ•ธ๋“ค๋ง์„ ํ•ด๋ณด์ž. ๋ฌธ์ œ ์›์ธ ๋ฐ ํ•ด๊ฒฐ useEffect๋Š” ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ componentDidMount()์™€ componentDidUpdate() ๋ผ์ดํ”„ ์‚ฌ์ดํด ๋ฉ”์†Œ๋“œ ๋‘ ๊ฐœ๋ฅผ ํ•ฉ์นœ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๋ฐฐ์› ๋‹ค. ๋”ฐ๋ผ์„œ, useEffect ํ•จ์ˆ˜์˜ ๋‘ ๋ฒˆ์งธ ์ธ์ž์— ๋นˆ ๋ฐฐ์—ด์„ ๋„ฃ๊ฑฐ๋‚˜, ์—…๋ฐ์ดํŠธ ํ•˜๊ณ ์ž ํ•˜๋Š” state๋ฅผ ๋„ฃ์–ด์ฃผ์–ด ๋ Œ๋”๋ง์˜ ํšŸ์ˆ˜๋ฅผ ์ œํ•œํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์œ„ ์—๋Ÿฌ๋Š” ํ•ด๋‹น state๊ฐ€ ๋น ์กŒ๊ฑฐ๋‚˜, ์ž˜๋ชป ๋“ค์–ด๊ฐ”๊ฑฐ๋‚˜ ํ•ด์„œ ๋‚˜์˜ค๋Š” ์—๋Ÿฌ์ด๋‹ค. ๋ฌธ์ œ์˜ ์›์ธ์ด ๋œ ์ฝ”๋“œ๋Š” App.js์™€ Snackbar.js ์ปดํฌ๋„ŒํŠธ์—์„œ์˜€๋‹ค. App.js์—์„œ๋Š” Redux๋ฅผ ํ†ตํ•ด ๋ฐ˜์‘ํ˜• ์ปดํฌ๋„ŒํŠธ ๋นŒ๋”ฉ์„ ์œ„ํ•ด size๋ฅผ store์— ๋“ฑ๋กํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๋ฆฌํŒฉํ† ๋ง์„ ํ•˜๋‹ค๊ฐ€ ์ƒ๊ฒผ๋‹ค. func..

[react] redux๋กœ ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ #์‹œ์ž‘ํ•˜๋ฉฐ 2

์‹œ์ž‘ํ•˜๋ฉฐ 1ํŽธ์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ ๊ธ€์—์„œ๋Š” redux-actions๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, redux์™€ react-redux ๋ชจ๋“ˆ๋กœ๋„ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„๊นŒ ์‹ถ์—ˆ๋‹ค. ํŒจํ„ด ์—ญ์‹œ ์ข€ ๋” ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ฆ๊ฒจ๋ณด๋Š” ์œ ํŠœ๋ฒ„์˜ Redux ๊ฐ•์˜๋ฅผ ํ•œ ๋ฒˆ ๋“ค์–ด๋ดค๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ store โ””modules โ”” index.js โ”” test.js โ””config.js โ””index.js ๊ธฐ์กด์—๋Š” ์œ„ ๊ฐ™์€ ๊ตฌ์„ฑ์ด์—ˆ๋‹ค. ์ด๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ actions์™€ reducers๋กœ ๊ตฌ๋ถ„ํ–ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ • 1 step reducer ์ƒ์„ฑ reducers ํด๋” ๋‚ด์— counter์™€ ๋กœ๊ทธ์ธ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” isLoggedIn reducer๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค. // src/reducers/counter.js const counterReduce..

[react] redux๋กœ ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ #์‹œ์ž‘ํ•˜๋ฉฐ

์‹œ์ž‘ํ•˜๋ฉฐ App์ด ์ ์  ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด์„œ ์ƒํƒœ ๊ด€๋ฆฌํ•  ํ•„์š”๋ฅผ ๊ณ„์† ๋Š๋ผ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—์•ผ ๋„์ž…ํ–ˆ๋‹ค. ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๊ณ , ๊ฐ„๋‹จํ•˜๊ฒŒ +/- ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์นด์šดํŠธ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ Redux์— ์ ‘๊ทผํ•ด๋ดค๋‹ค. ํ•„์š” ๋ชจ๋“ˆ ๋‹ค์šด๋กœ๋“œ yarn add react-redux redux redux-actions yarn์„ ํ†ตํ•ด ์œ„ dependencies๋ฅผ ๋ฐ›์•˜๋‹ค. ํด๋” ๊ตฌ์„ฑ ์ตœ์ข… ํด๋” ๊ตฌ์„ฑ์€ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋˜์–ด ์žˆ๋‹ค. src/store ๋‚ด config.js, index.js ํŒŒ์ผ์„ ๊ฐ€์ง€๋ฉฐ, modules ํด๋”๋ฅผ ๋”ฐ๋กœ ๋‘์—ˆ๋‹ค. store 1. config.js ํŒŒ์ผ ์ƒ์„ฑ ํ•ด๋‹น ํŒŒ์ผ์€ ์—ฌ๋Ÿฌ store๋ฅผ ๋ชจ์•„ ์™ธ๋ถ€ ์ปดํฌ๋„ŒํŠธ์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. store๋Š” state๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์ข…์˜ ๋ณด๊ด€์ฒ˜. // src/config.js..

[CSS] ์š”์†Œ๋ฅผ fadeoutํ•œ ๋’ค์—๋„ ์—ฌ์ „ํžˆ clickableํ•  ๋•Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋ฌธ์ œ ์ƒํ™ฉ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ์œ„์˜ ๋ฌธ๋‹จ์ด fade out ๋˜๋ฉด์„œ ์‚ฌ๋ผ์ ธ์•ผ ํ•˜๋Š”๋ฐ, ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋“œ๋ž˜๊ทธํ•˜๋ฉด draggable ํ•˜๊ณ , ๋ณต์‚ฌ๊นŒ์ง€ ๋œ๋‹ค. ์ฝ”๋“œ .fade { animation: fade ease 1s forwards; } @keyframes fade { from { opacity: 1; } to { opacity: 0; } } ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์œ„ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ”๊พผ๋‹ค. @keyframes fade { from { opacity: 1; pointer-events: all; } to { opacity: 0; pointer-events: none; } } ๋” ์ด์ƒ Clickable ํ•˜์ง€ ์•Š๋‹ค. pointer-events CSS ์†์„ฑ์€ ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ๊ฐ€ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ํฌ์ธํ„ฐ ์ด๋ฒคํŠธ์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ..

[CSS] Attribute Selector

์†์„ฑ์„ ์ด์šฉํ•œ CSS ์…€๋ ‰ํ„ฐ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์„œ ์žŠ์–ด๋ฒ„๋ ธ๋Š”๋ฐ, CSS Diner๋ผ๋Š” ๊ท€์—ฌ์šด ๊ฒŒ์ž„์„ ์ฐพ์€ ๊น€์— Attribute๋งŒ์„ ํ†ตํ•ด ์…€๋ ‰ํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋‘๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. A[attribute] a[href] input[disabled] input[type='checkbox'] ํƒœ๊ทธ ๋„ค์ž„, ํด๋ž˜์Šค ๋„ค์ž„, ID ๋“ฑ๋“ฑ ๋‹ค๋ฅธ CSS ์„ ํƒ์ž์™€ Attribute Selector๋ฅผ ํ•จ๊ป˜ ์“ฐ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์œ„ ์˜ˆ์‹œ๋Š” href='anything'์ธ a ํƒœ๊ทธ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ disabled ์†์„ฑ์„ ๊ฐ€์ง„ input์„ ์„ ํƒํ•œ๋‹ค. [Attribute] [value] { .. } value๋ผ๋Š” attribute๋ฅผ ๊ฐ€์ง„ ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค. ^, $, * [attribute^='value'] .toy[category^='S..

[Programmers] JavaScript, ์™„์ „ ํƒ์ƒ‰, ๋ชจ์˜๊ณ ์‚ฌ ๋ฌธ์ œ

๋ฌธ์ œ 1, 2, 3๋ฒˆ ํ•™์ƒ์ด ์žˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ •๋‹ต์ง€๊ฐ€ ๋ฐฐ์—ด๋กœ ์ฃผ์–ด์ง€๊ณ , ๊ฐ ํ•™์ƒ์€ ๋‚˜๋ฆ„์˜ ์ฐ๋Š” ํŒจํ„ด์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์ด๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ๋งž์ถ˜ ํ•™์ƒ๋“ค์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ์ฝ”๋“œ ํ’€์ด ์ฒซ ๋ฒˆ์งธ ํ•จ์ˆ˜ solution(answers)๋Š” padEnd๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค. ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ ๋ฌธ์ œ์—์„œ padEnd๋ฅผ ์ฒ˜์Œ ์•Œ๊ฒŒ ๋ผ์„œ ์—ฐ์Šต ๊ฒธ ์‚ฌ์šฉํ•ด๋ดค๋‹ค. ์šฐ์„  ๊ฐ ํ•™์ƒ๋“ค์˜ ์ฐ๋Š” ํŒจํ„ด์„ students ๋ณ€์ˆ˜์— ๋‹ด๋Š”๋‹ค. map์„ ๋Œ๋ฉฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง„ answer์˜ length๋งŒํผ, student๋ผ๋Š” ๊ฐ ํ•™์ƒ๋“ค์˜ ์ฐ๋Š” ํŒจํ„ด์„ ๋ฐ˜๋ณตํ•ด์„œ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. ๋งŒ์ผ ๋ฌธ์ œ๊ฐ€ 8๋ฌธ์ œ๋ผ ํ•˜๋ฉด 1..

[Programmers] JavaScript, 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ (toString(), parseInt(), reduce())

programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ์ž์—ฐ์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, n์„ 3์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๊ณ , ์ด๋ฅผ ์•ž๋’ค๋กœ ๋’ค์ง‘๋Š”๋‹ค. ์ด๋ฅผ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์ฝ”๋“œ ํ’€์ด 10์ง„๋ฒ•์„ 2์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋กœ์ง๊ณผ ๋™์ผํ•˜๋‹ค. 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๋Œ€์‹  3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ num์— ๋‹ด๋Š” ์‹์ด๋‹ค. n์ด 3๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•ด num += n์„ ์žŠ์ง€ ๋ง๊ณ  ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. 10์ง„๋ฒ•์„ 3์ง„๋ฒ•์œผ๋กœ๋งŒ ๋ฐ”๊พธ๋Š” ๋ฐ ๊ทธ์น˜์ง€ ์•Š๊ณ  ์ด๋ฅผ ๋’ค์ง‘๊ธฐ ๋•Œ๋ฌธ์— ์œ„ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ผ๋‹ค. parseInt()๋Š” ๋ฌธ์ž์—ด ์ธ์ž๋ฅผ ๊ตฌ๋ฌธ๋ถ„์„ํ•ด ํŠน์ • ์ง„์ˆ˜์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ธ์ž๊ฐ€ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๋’ค์ง‘ํžŒ 3์ง„๋ฒ•์€ ๋ฌธ์ž์—ด์ด๊ณ , ์ด..

[Programmers] JavaScript, ํƒ์š•๋ฒ•, ์ฒด์œก๋ณต ๋ฌธ์ œ (Destructuring Assignment/fill)

programmers.co.kr/learn/courses/ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ•์˜ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ํƒ์š•๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ์š” ํƒ์š•๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜๋Š” ๋ฌธ์ œ. ํƒ์š•๋ฒ•(Greedy Algorithm)์€ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(๋˜๋Š” ๋™์  ๊ณ„ํš๋ฒ•, Dynmaic Programming) ์‚ฌ์šฉ ์‹œ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์€ ์ผ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์—์„œ ๊ณ ์•ˆ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‘ ๋ฐฉ๋ฒ•์€ ์„œ๋กœ ์ฐจ์ด์ ์ด ์กด์žฌํ•˜๋ฉฐ, ๋ณด์™„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ™œ์šฉ์ด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋™์  ๊ณ„ํš๋ฒ•์€ ์ „์ฒด ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜์œ„ ๋ฌธ์ œ๋กœ ์ชผ๊ฐœ์–ด ํ’€๊ณ , ํ•˜์œ„ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ฒฐํ•ฉํ•ด ์ตœ์ข… ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ํ”ผ๋ณด๋‚˜์น˜์˜ ์ˆ˜์—ด์ด ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ด๋‹ค. ์ด๋Ÿฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์€ ํšจ์œจ์„ ์œ„ํ•ด ํ•จ์ˆ˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ €์žฅํ•˜๋ฉฐ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์„ ์ฐพ๋Š”๋‹ค. ..

[Programmers] JavaScript์—์„œ ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž๊ฐ€ ๊ตฌ๋ถ„ ์—†์ด ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด s์—์„œ p์™€ y์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , ๊ฐœ์ˆ˜๊ฐ€ ๋™์ผํ•˜๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋•Œ p์™€ y๊ฐ€ ๋ชจ๋‘ ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด ํ•ญ์ƒ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (๊ฐœ์ˆ˜ ๋น„๊ต ์‹œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X) programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ์ฝ”๋“œ ํ’€์ด str.match(์ •๊ทœ์‹) ๋ฉ”์„œ๋“œ๋Š” ์ผ์น˜ํ•˜๋Š” ์ •๊ทœ์‹ ๋ฌธ์ž๊ฐ€ ์žˆ์„ ๋•Œ ์ด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์—†์œผ๋ฉด null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฌธ์ œ์—์„œ p๋‚˜ y๊ฐ€ ํ•˜๋‚˜๋„ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—” ํ•ญ์ƒ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ„๊ธฐ์—๋Š” str.match([p|y]/gi) === null ์กฐ๊ฑด์œผ๋กœ ๋ถ„๊ธฐํ•ด์ค€๋‹ค. ํ•˜๋‚˜๋ผ๋„..

[Programmers] JavaScript์—์„œ ์‹œ์ € ์•”ํ˜ธ๋ฌธ ๋งŒ๋“ค๊ธฐ (charCodeAt, fromCharCode())

programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ์•ŒํŒŒ๋ฒณ์„ ์ผ์ •ํ•œ ๊ฑฐ๋ฆฌ๋งŒํผ ๋ฐ€์–ด์„œ ์ƒˆ๋กœ์šด ๋ฌธ์ž๋ฅผ ๋งŒ๋“œ๋Š” ์‹œ์ € ์•”ํ˜ธ. ์•”ํ˜ธํ™” ํ•ด์•ผ ํ•  ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๊ณ , ๋ฐ€์–ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ n์ด ์ฃผ์–ด์งˆ ๋•Œ ๋ณ€ํ™˜๋œ ์‹œ์ € ์•”ํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. (๋‹จ, ๊ณต๋ฐฑ์€ ์•„๋ฌด๋ฆฌ ๋ฐ€์–ด๋„ ๊ณต๋ฐฑ์ด๋‹ค. ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž, ๊ณต๋ฐฑ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.) ์ฝ”๋“œ ๋ฌธ์ž์—ด์€ iterableํ•œ ๊ฐ์ฒด์ด๋ฏ€๋กœ for of ๋ฌธ๋ฒ•์œผ๋กœ ๋ฌธ์ž ํ•˜๋‚˜ ํ•˜๋‚˜๋ฅผ ๊ฒ€์‚ฌํ–ˆ๋‹ค. ๊ณต๋ฐฑ์ผ ๊ฒฝ์šฐ์—๋Š” ๋นˆ ๊ณต๋ฐฑ์„ ๋ฐ˜ํ™˜๋˜์–ด์•ผ ํ•  ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์ธ newStr์— ๋”ํ•ด์ฃผ๊ณ , continue๋กœ ๋‹ค์Œ ๋ฐ˜๋ณต๋ฌธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. String.prototype.charCodeAt..