๐ช Programming
[CS] ์ง๋ฒ ๊ณ์ฐ ๋ฐฉ๋ฒ — 10์ง์ โ 2์ง์ ๋ณํ
[CS] ์ง๋ฒ ๊ณ์ฐ ๋ฐฉ๋ฒ — 10์ง์ โ 2์ง์ ๋ณํ
2024.04.282์ง๋ฒ์ ์ฌ์ฉํ๋ ์ด์ 2์ง๋ฒ์ 0~1๋ก ์ซ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ ๊ธฐ ์ ํธ๋ก ์๋ํ๋ ๊ธฐ๊ณ์ธ ์ปดํจํฐ๋ 2์ง๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋๋ค. ์ ๊ธฐ์ ์ ํธ๋ก ์๋ฏธ๋ฅผ ์ ๋ฌํ ์ ์๋ ์ต์ ๋จ์๋ ON, OFF์ด๋ค. ์ ๊ธฐ ์ ํธ๊ฐ ์๋ ์ํ๋ฅผ 1, ์๋ ์ํ๋ฅผ 0์ผ๋ก ์ค์ ํ๋ค. ์ด๋ ๊ฒ ๋จ 2๊ฐ์ง ์ํ๋ง 2์ง์๋ก ํํํ๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ์ ํํ๊ธฐ ๋๋ฌธ์ด๋ค. 2์ง์๋ฅผ ์ฌ์ฉํ๋ฉด 0๊ณผ 1๋ก ๋จ์ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ด ์๋๊ฐ ๋น ๋ฅด์ง๋ง ์์ ์ซ์๋ ๋งค์ฐ ๊ธธ์ด์ง๋ ๋จ์ ์ด ์๋ค. ๋ ๋ง์ ์ ํธ๋ฅผ ์ฌ์ฉํ ์๋ ์์ง๋ง, 2๊ฐ ์ด์์ ์ ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํํ ์ ํธ๋ฅผ ์ธก์ ํ๋๋ฐ ๋น์ฉ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ ํ์ฌ๊น์ง๋ 2์ง์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ. ๊ฐ ์ง๋ฒ์ ํน์ง2์ง์ : Binary Number | ไบ่ฟๅถ (0~1๋ก ์ซ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ)3์ง์ : T..
[React] ๋ฆฌ์กํธ ๋ง์ฐ์ค ๋๋๊ทธ ๊ฐ๋ฅํ ์์ ๋ง๋ค๊ธฐ / ๊ธฐํ ํ๋กํผํฐ
[React] ๋ฆฌ์กํธ ๋ง์ฐ์ค ๋๋๊ทธ ๊ฐ๋ฅํ ์์ ๋ง๋ค๊ธฐ / ๊ธฐํ ํ๋กํผํฐ
2024.04.27์์ ์์์ ์ฝํ
์ธ ๊ฐ ๋ถ๋ชจ ์์๋ณด๋ค ํฌ๋ค๋ฉด, ๋ถ๋ชจ ์์์ ์คํฌ๋กค์ด ์๊ธฐ๊ณ , ๋ง์ฐ์ค ํ ๋ก ์คํฌ๋กคํ ์ ์๋ค. ๋ง์ฐ์ค ํ ์ธ์๋ click / move ์ด๋ฒคํธ๋ฅผ ์ด์ฉํด ๋ง์ฐ์ค ๋๋๊ทธ๋ก ์คํฌ๋กคํ๋๋ก ๋ง๋ค ์ ์๋ค. TL;DRโถ ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ์ ๋`clientX`, `clientY` (๋ทฐํฌํธ ๊ธฐ์ค)์ขํ์, ์์์ ์คํฌ๋กค ์์น `scrollLeft`, `scrollTop` ์ ์ฅํด๋ฆญ ์ํ `true`๋ก ๋ณ๊ฒฝ(CSS) `cursor: grabbing user-select: none` โท ํด๋ฆญํ ์ํ์์ ๋ง์ฐ์ค๋ฅผ ์ด๋(๋๋๊ทธ)ํ์ ๋โ ์ด๋์ ๋ฉ์ถ ์ง์ (clientX/Y)๊ณผ โก๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ ์ง์ **(clientX/Y)**์ ๋บ ๊ฐ ๊ณ์ฐ — ์คํฌ๋กคํ ๋ฒ์(์์์ ํ์ฌ ์คํฌ๋กค ์์น)์ (์คํฌ๋กคํ ๊ฐ)์ ๋บ ์์น๋ก ์คํฌ..
[JS] ์๋ฐ์คํฌ๋ฆฝํธ URL ๊ฐ์ฒด / searchParams
[JS] ์๋ฐ์คํฌ๋ฆฝํธ URL ๊ฐ์ฒด / searchParams
2024.04.27URL ๊ฐ์ฒด ํ์ฌ ํ์ด์ง์ URL์ด ์๋์ ๊ฐ๋ค๊ณ ๊ฐ์ ํ์ ๋... ์ฐธ๊ณ ๋ก %20 ์ ๋น์นธ(space) 1๊ฐhttps://example.com/?name=Jonathan%20Smith&age=18 url ๊ฐ์ฒด์ search ์์ฑ์ ์ด์ฉํด ๋ชจ๋ ์ฟผ๋ฆฌ ์คํธ๋ง ๋ด์ฉ์ ๊ฐ์ ธ์ฌ ์ ์๋คconst url = new URL(window.location.href); // ํ์ฌ urlurl.search; // '?name=Jonathan%20Smith&age=18' name age ๊ฐ์ ํน์ ์ฟผ๋ฆฌ ์คํธ๋ง๋ง ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ฉด URLSearchParams ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค. get์ผ๋ก ๊ฐ์ ์กฐํํ๊ณ append(๊ธฐ์กด ๊ฐ์ ์ด์ด๋ถ์ด๊ธฐ) ํน์ set(๊ธฐ์กด๊ฐ ๊ต์ฒด)์ผ๋ก ์๋ก์ด ๊ฐ์ ์ถ๊ฐํ ์๋ ์๋ค.url.searchPara..
[JS] ์๋ฐ์คํฌ๋ฆฝํธ Map / Set ์๋ฃ๊ตฌ์กฐ
[JS] ์๋ฐ์คํฌ๋ฆฝํธ Map / Set ์๋ฃ๊ตฌ์กฐ
2024.04.27MapMap์ ํญ์ `map` ์ ์ฉ ๋ฉ์๋(`set`, `get` ๋ฑ)๋ฅผ ์ฌ์ฉํ๋ค. `map[key] = 2` ํํ๋ก ์ฌ์ฉํ๋ฉด `map`์ ์ผ๋ฐ ๊ฐ์ฒด๋ก ์ทจ๊ธํ๋ฏ๋ก ๋ง์ ์ ์ฝ์ด ์๊ธด๋ค. TL;DRโถ key-value๋ก ์ด๋ฃจ์ด์ง ์์๊ฐ ์๋ ์ปฌ๋ ์
(์งํฉ) โญ๏ธ โท ์ฝ์
์์ ๊ธฐ์ต โธ ์ค๋ณต key ๋ถ๊ฐ — ์ด๋ฏธ ์กด์ฌํ๋ key์ ๋ํ value๋ฅผ ์ถ๊ฐํ๋ฉด ํด๋น key์ value๋ฅผ ๋ฎ์ด์let map = new Map([['one', 1]]);map.get('one'); // 1map.set('one', 111);map.get('one'); // 111 โน Map ๋ด์ฅ ๋ฉ์๋ forEach ์ง์(๋ฐฐ์ด forEach ๋ฉ์๋์ ์ ์ฌ) / for of ์ํ ๊ฐ๋ฅmap.forEach((value, key, map) ..
[Web] ์ธ์
vs ์ฟ ํค vs ํ ํฐ
[Web] ์ธ์ vs ์ฟ ํค vs ํ ํฐ
2024.04.27TL;DR๐ก Authentication์ ์ธ์ฆ(์๋ฒ์ ์ ์ ์ธ์ง), Authorization์ ๊ถํ๋ถ์ฌ(ํน์ ํ ํ๋ ํ์ฉ) ์ฟ ํค : HTTP ํ๋กํ ์ฝ์ ๋ฌด์ํ์ฑ(Stateless)์ ๋ณด์ํด์ฃผ๋ ๋๊ตฌ๋ค. ์ฟ ํค ์์ฒด๋ ์ธ์ฆ์๋จ์ด ์๋๋ค.์ธ์
: ์๋ฒ๊ฐ(์ธ์
DB) ์ธ์ฆ์ ๋ณด๋ฅผ ๊ฐ์ง๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฒ๊ฐ ์ฟ ํค์ ๋ด์ ๋ณด๋ด์ฃผ๋ ์ธ์
ID๋ง ๊ฐ์ง๋ค.ํ ํฐ : ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ์ ๋ณด๋ฅผ ๊ฐ์ง๋ค. ์๋ฒ๋ ํ ํฐ์ด ์ ํจํ์ง๋ง ํ์ธํ๋ค.Authentication๊ณผ Authorization ์ฐจ์ด์ Authentication(์ธ์ฆ / ์ ์ํ์ธ) : ํ์ฌ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ํ์ธํ๋ ๊ณผ์ . ํ์ฌ ๊ฑด๋ฌผ์ ์๋ก๋ค๋ฉด 1์ธต ์๋ด ๋ฐ์คํฌ์์ ๋ฐฉ๋ฌธ์๊ฐ ํด๋น ๊ฑด๋ฌผ์ ์ถ์
ํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๊ณผ์ .Authorization(ํ๊ฐ / ๊ถํ๋ถ์ฌ)..
[JS] ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ฅผ ํ๋ณํ๋ 6๊ฐ์ง ๋ฐฉ๋ฒ
[JS] ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ฅผ ํ๋ณํ๋ 6๊ฐ์ง ๋ฐฉ๋ฒ
2024.04.27navigator.userAgent๋ธ๋ผ์ฐ์ API์์ ์ ๊ณตํ๋ userAgent ๋ฌธ์์ด์ ํ์ธํ๋ ๋ฐฉ๋ฒ. userAgent๋ ์ ์ ๋๋ฐ์ด์ค์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ navigator.userAgent ์์ฑ์ผ๋ก ์ ๊ทผํ ์ ์๋ค. userAgent ๋ฌธ์์ด์ด mobi, android iphone ๋ฑ ํค์๋๋ฅผ ๋ด๊ณ ์๋ค๋ฉด ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ก ์ ์ํ๋ค๊ณ ๋ณผ ์ ์๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด์ง๋ง ์ฌ์ฉ์๊ฐ ์ง์ userAgent ๊ฐ์ ์์ ํ ์ ์๊ธฐ ๋๋ฌธ์ 100% ์ ๋ขฐํ ์ ์๋ค.// ๋ฐฉ๋ฒ 1// ์ ๊ท์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ค. i ํ๋๊ทธ๋ก ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ก ํ ์ ์๋คif (/Mobi|Android|iPhone/i.test(navigator.userAgent)) { // ํ์ฌ ์ฅ์น๋ ๋ชจ๋ฐ..
[JS] ES Modules ๋ชจ๋ (Import / Export ์์คํ
)
[JS] ES Modules ๋ชจ๋ (Import / Export ์์คํ )
2024.04.26Intro1๊ฐ ํ์ผ์ ๋ชจ๋ ์ฝ๋๊ฐ ๋ค์ด๊ฐ ๊ฒ ๋ณด๋ค ์ฝ๋๋ค์ด ์๊ฐ ์ชผ๊ฐ์ ธ ์๋๊ฒ ๋ ์ข๋ค.๋ชจ๋์ ๋ณ์์ ํจ์๋ฅผ ๊ตฌ์ฑํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.๋ชจ๋์ ์ ์์๋๋ฉด ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ ๋ฆฌํ ์ ์๋ค.๋ชจ๋ ๋๋ถ์ ์ฝ๋๋ค์ ์์ ํ์ผ๋ก ๋๋ ์ ์๊ณ , import / export ํ ์ ์๋ค.๋ชจ๋์ ํจ์์ ๋ณ์๋ฅผ ๋ชจ๋ ์ค์ฝํ์ ๋ฃ๊ณ , ๋ชจ๋ ์ค์ฝํ๋ฅผ ํตํด ๋ชจ๋ ํจ์ ์ฌ์ด์์ ๋ณ์๋ฅผ ๊ณต์ ํ ์ ์๋ค.๋ค์ด๋๋ฏน ๋ชจ๋์ ์ด์ฉํ๋ฉด ์ดํ๋ฆฌ์ผ์ด์
๋ก๋ฉ์ ๋ ๋น ๋ฅด๊ฒ ํ ์ ์๋ค. Named Exportimport { name } from "file"; ํ์ผ ํน์ ๋ชจ๋์ด ์ํ๋ ๋งํผ์ named exports๋ฅผ ๊ฐ์ง ์ ์๋คimport ํ๋ ค๋ ์ด๋ฆ์ export ํ๋ ํจ์(๋ณ์) ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํ๋ค // math.jsexport..
[Git] SSH ๊ณต๊ฐํค ๋ง๋ค๊ธฐ / Credential ์ธ์ฆ ์์คํ
[Git] SSH ๊ณต๊ฐํค ๋ง๋ค๊ธฐ / Credential ์ธ์ฆ ์์คํ
2024.04.26Credential ์ ์ฅ์ / HTTPS ํ๋กํ ์ฝGit ๋ฆฌ๋ชจํธ ์ ์ฅ์์ ํต์ ํ ๋ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ Git(๊ธฐ๋ณธ ํ๋กํ ์ฝ), SSH, HTTPS ๋ฐฉ์์ด ์๋ค. Git ๊ธฐ๋ณธ ํ๋กํ ์ฝ์ ์ธ์ฆ ๊ธฐ๋ฅ์ด ๋ฏธ์ฝํ์ฌ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๊ณ , ์ฃผ๋ก SSH๋ HTTPS๋ฅผ ์ฌ์ฉํ๋ค. HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉด ๋งค๋ฒ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ์
๋ ฅํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๋๋ฐ Git์ ์ด๋ฅผ ์ํด ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ์ฅํด๋๊ณ ์๋์ผ๋ก ์
๋ ฅํด์ฃผ๋ Credential ์์คํ
์ ์ ๊ณตํ๋ค. Credential ๊ธฐ๋ฅ์์ ์ ๊ณตํ๋ ์ต์
์ ์๋ 3๊ฐ์ง๊ฐ ์๋ค. cache ๋ชจ๋ : ์ธ์ฆ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ ์ฅ(๊ธฐ๋ณธ 15๋ถ)store ๋ชจ๋ : ์ธ์ฆ ์ ๋ณด๋ฅผ ํ
์คํธ ํ์ผ๋ก Disk์ ์ ์ฅ. ์ฌ์ฉ์ ํ ๋๋ ํ ๋ฆฌ์ ์ผ๋ฐ ํ
์คํธ ํ์ผ๋ก ์ ์ฅ๋๋ฏ๋ก ์ธ์ฆ ์ ๋ณด ๋
ธ..
[HTML/CSS] focus-within — ์์ ์์๊ฐ ํฌ์ปค์ค ๋์ ๋ ๋ถ๋ชจ ์คํ์ผ ์ง์
[HTML/CSS] focus-within — ์์ ์์๊ฐ ํฌ์ปค์ค ๋์ ๋ ๋ถ๋ชจ ์คํ์ผ ์ง์
2024.04.25focus-within ์ดํด๋ณด๊ธฐ:focus-within์ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์์ ํน์ ํฌ์ปค์ค๋ฅผ ๋ฐ์ ์์(์ฃผ๋ก input ํ๊ทธ)๋ฅผ ํฌํจํ๋ ๋ถ๋ชจ ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. input ๊ฐ์ ํ์ ์์๊ฐ focus ๋์ ๋ ๋ถ๋ชจ ์์์ ์คํ์ผ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ฉด ์ ์ฉํ๋ค. ์๋ ์์ ์์ input ํ๊ทธ๋ฅผ ์์์ผ๋ก ํฌํจํ๋ .wrapper ํด๋์ค ์ด๋ฆ์ ๋ถ๋ชจ ์์๊ฐ ์๋ค. Lorem Ipsum ist ein einfacher Demo-Text für die Print- und Schriftindustrie. Choose text color input ํ๊ทธ๋ฅผ ์ ํํด์ ํ์ฑํ๋๋ฉด(ํฌ์ปค์ค๋ฅผ ๋ฐ์ผ๋ฉด), ํด๋น input ํ๊ทธ๋ฅผ ํฌํจํ๋ ๋ถ๋ชจ ์์์ธ .wrapper ํด๋์ค์ focus-within ์์ฌํด๋..
[JS] ์ด๋ฒคํธ ์ ํ(์บก์ฒ๋ง, ๋ฒ๋ธ๋ง) / ์ด๋ฒคํธ ์์ / ๋ฐ์ดํฐ ์์ฑ
[JS] ์ด๋ฒคํธ ์ ํ(์บก์ฒ๋ง, ๋ฒ๋ธ๋ง) / ์ด๋ฒคํธ ์์ / ๋ฐ์ดํฐ ์์ฑ
2024.04.25์ค์ต์ฉ CodePen์ด๋ฒคํธ ๋ฒ๋ธ๋ง/์บก์ฒ๋ง, `stopPropagation()`, `preventDefault()`๊น์ง ๋ชจ๋ ์ค์ตํ ์ ์๋๋ก ์์ฑ See the Pen Learn Event Propagation ์ด๋ฒคํธ ์ ํ ์ค์ต by ColorFilter (@colorfilter) on CodePen." data-ke-type="html">HTML ์ฝ์
๋ฏธ๋ฆฌ๋ณด๊ธฐํ ์ ์๋ ์์ค ์ด๋ฒคํธ ์ ํ | Event Propagation๋ฒ๋ธ๋ง Bubbling / ์บก์ฒ๋ง Capturing์ ์ฝ๋ํ ์์ ์์ ํ๋จ์ ์๋ span ํ๊ทธ๋ฅผ ํด๋ฆญํ๋ฉด โ "span ์์ญ" → โ "p ์์ญ" → โ "div" ์์ญ ์์ผ๋ก ์ฝ์์ด ์ฐํ๋ค. span ์์ญ์ ํด๋ฆญํ ์๊ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํด์ ์ต์์์ ์๋ ์์๊น์ง ..
[HTML/CSS] ์๋งจํฑ ํ๊ทธ Semantic Tag
[HTML/CSS] ์๋งจํฑ ํ๊ทธ Semantic Tag
2024.04.25Semantic(่ฏญไน)์ "์๋ฏธ๊ฐ ์๋"์ด๋ผ๋ ๋ป. ๋ฌผ์ ๋ง์๋ "์ปต", ๋ฌธ์ ์ฌ๋ "์์ก์ด"์ฒ๋ผ ์ผ์ ์ํ์์ ์ฝ๊ฒ ๋ณผ ์ ์๋ ์ฌ๋ฌผ๋ค์ด ๊ฐ๊ฐ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ฒ๋ผ HTML์ ์ฌ๋ฌ ํ๊ทธ๋ค๋ ๊ฐ๊ฐ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์๋งจํฑ ํ๊ทธ์ ์ฅ์ SEO : ์ ๋ชฉ ``, ๋ถ์ ๋ชฉ `` ๊ฐ์ ์๋ฉํฑ ํ๊ทธ๋ฅผ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ฉด ๊ฒ์์์ง์ด ํด๋น ์ฌ์ดํธ๋ฅผ ๋ ์ ์ดํดํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฒ์ ์ต์ ํ์ ์ ๋ฆฌํ๋ค. Accessbility(์น์ ๊ทผ์ฑ) : ์๋งจํฑ ํ๊ทธ๋ฅผ ์ ์ฌ์ฉํ๋ฉด ์คํฌ๋ฆฐ ๋ฆฌ๋(์นํ์ด์ง๋ฅผ ์์ฑ์ผ๋ก ์ฝ์ด์ฃผ๋)๋ ํค๋ณด๋๋ง ์ฌ์ฉํด์ ์น์ฌ์ดํธ๋ฅผ ์ด์ฉํ๋ ์ฌ๋๋ค๋ ํฐ ๋ฌธ์ ์์ด ์ฌ์ฉํ ์ ์๋ค. Maintainability : `` ํ๊ทธ๋ง ์ฌ์ฉํด์ ๊ฐ๋ฐํ ์น์ฌ์ดํธ๋ณด๋ค ํ ๋์ ์์๋ณด๊ธฐ ์ฌ์ด ์๋งจํฑ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ค๋..
[JS] ์๋ฉด ์ ์ฉํ ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ฌธ๋ฒ
[JS] ์๋ฉด ์ ์ฉํ ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ๋ฌธ๋ฒ
2024.04.25Numeric Separators์ซ์๋ฅผ ์
๋ ฅํ ๋ ์ธ๋์ค์ฝ์ด _๋ฅผ ์ด์ฉํด ์ซ์๋ฅผ ๊ตฌ๋ถํด์ ๊ฐ๋
์ฑ์ ๋์ผ ์ ์๋ค. KRW ํํ์ฒ๋ผ ์๋ฆฌ์๊ฐ ๋ง์ ์ซ์๋ฅผ ์์ฑํ ๋ ์ ์ฉconst cost = 100_000_000;console.log(cost); // 100000000 _ ์ธ๋๋ฐ ํ๊ฐ๋ง ์ฌ์ฉ ๊ฐ๋ฅ ex) 100__000 โ์ซ์ ๋ง์ง๋ง์ ์ฌ์ฉ ๋ถ๊ฐ ex) 100_; โ๊ฐ์ฅ ์ ์ซ์๊ฐ 0์ผ๋ ์ฌ์ฉ ๋ถ๊ฐ ex) 0_1; โ replaceAllreplaceAll(substr, newSubstr)replaceAll(substr, replacerFunction) ๋ฌธ์์ด์์ ์ํ๋ ๋ถ๋ถ์ "๋ชจ๋" ์ง์ ํ ๋ฌธ์๋ก ๋ณ๊ฒฝํ ์ ์๋ค. ์ ๊ท์๋ ์ฌ์ฉ ๊ฐ๋ฅ.const sayHello = 'Hello, John';sayHello..