๐Ÿ”ค Language/๐ŸŸจ JavaScript

    JS. ์ •๊ทœํ‘œํ˜„์‹ ํŒจํ„ด(ํ‘œํ˜„)

    ํŒจํ„ด(ํ‘œํ˜„) ^ab / ab$ ์ค„ ์‹œ์ž‘์— ์žˆ๋Š” ab์™€ ์ผ์น˜ / ์ค„ ๋์— ์žˆ๋Š” ab์™€ ์ผ์น˜ let str = ` 010-1234-5678 kurt5451@naver.com https://www.omdbapi.com/?apikey=7035c60c&s=frozen The quick brown fox jumps over the lazy dog. abbcccdddd d hxyp http://localhost:1234 ๋™ํ•ด๋ฌผ๊ณผ_๋ฐฑ๋‘์‚ฐ์ด ๋งˆ๋ฅด๊ณ  ๋‹ณ๋„๋ก ํ•˜๋А๋‹˜์ด ๋ณด์šฐํ•˜์‚ฌ ` console.log( str.match(/d$/gm) // ['d', 'd'] ) console.log( str.match(/^k/gm) // ['k'] ) $(๋‹ฌ๋Ÿฌ) ๊ธฐํ˜ธ๋Š” ํ•œ ์ค„๋งˆ๋‹ค ๋ฌธ์žฅ ๋์— d๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ์ฐพ๋Š” ํŒจํ„ด์ด๋‹ค. d๊ฐ€ ๋์— ์žˆ๋Š” ..

    JS. ์ •๊ทœํ‘œํ˜„์‹ ํ”Œ๋ž˜๊ทธ(์˜ต์…˜)

    ํ”Œ๋ž˜๊ทธ(flags) ํ”Œ๋ž˜๊ทธ ์„ค๋ช… g ๋ชจ๋“  ๋ฌธ์ž ์ผ์น˜(global) i ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ ์•Š๊ณ  ์ผ์น˜ (ignore case) m ์—ฌ๋Ÿฌ ์ค„ ์ผ์น˜ (multi line) u ์œ ๋‹ˆ์ฝ”๋“œ(unicode) y lastIndex ์†์„ฑ์œผ๋กœ ์ง€์ •๋œ ์ธ๋ฑ์Šค์—์„œ๋งŒ 1ํšŒ ์ผ์น˜(sticky) ํ”Œ๋ž˜๊ทธ ์‹ค์Šต g(global) ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜๋ฉด์„œ ๋ฌธ์ž๊ฐ€ ์ผ์น˜ํ•˜๋Š”๊ฒŒ ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ๋ฐฐ์—ด์˜ ํ˜•์‹์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค. let str = ` 010-1234-5678 kurt5451@naver.com https://www.omdbapi.com/?apikey=7035c60c&s=frozen The quick brown fox jumps over the lazy dog. abbcccdddd ` const regexp = /the/g conso..

    JS. ์ •๊ทœํ‘œํ˜„์‹ ๋ฉ”์†Œ๋“œ(method)

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”์†Œ๋“œ ์ •๊ทœํ‘œํ˜„์‹์„ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ์ด๋‹ค. ๋ฉ”์†Œ๋“œ ๋ฌธ๋ฒ• ์„ค๋ช… test ์ •๊ทœ์‹.test(๋ฌธ์ž์—ด) ์ผ์น˜ ์—ฌ๋ถ€(Boolean) ๋ฐ˜ํ™˜ match ๋ฌธ์ž์—ด.match(์ •๊ทœ์‹) ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์˜ ๋ฐฐ์—ด(Array) ๋ฐ˜ํ™˜ replace ๋ฌธ์ž์—ด.replace(์ •๊ทœ์‹, ๋Œ€์ฒด๋ฌธ์ž) ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๋Œ€์ฒด search ๋ฌธ์ž์—ด.search(์ •๊ทœ์‹) ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด์˜ ์ธ๋ฑ์Šค(Number) ๋ฐ˜ํ™˜ exec ์ •๊ทœ์‹.exec(๋ฌธ์ž์—ด) ์ผ์น˜ํ•˜๋Š” ํ•˜๋‚˜์˜ ์ •๋ณด(Array) ๋ฐ˜ํ™˜ split ๋ฌธ์ž์—ด.split(์ •๊ทœ์‹) ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋ถ„ํ• ํ•˜์—ฌ ๋ฐฐ์—ด(Array)๋กœ ๋ฐ˜ํ™˜ toString ์ƒ์„ฑ์ž_์ •๊ทœ์‹.toString() ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋ฐฉ์‹์˜ ์ •๊ทœ์‹์„ ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹์˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”์†Œ๋“œ ์‹ค์Šต ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”์†Œ๋“œ๋ฅผ ์‹ค์Šต์„ ํ†ตํ•˜์—ฌ..

    JS. ์ •๊ทœ์‹ ์ƒ์„ฑ

    ์ •๊ทœ์‹ ์ •๊ทœ์‹์€ ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋ฐฉ์‹๊ณผ ๋ฆฌํ„ฐ๋Ÿด(Literal) ๋ฐฉ์‹ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋ฐฉ์‹ RegExp ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. new RegExp('ํ‘œํ˜„', '์˜ต์…˜') new RegExp('[a-z]', 'gi') ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋ฐฉ์‹์˜ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์˜ ์ฝ”๋“œ์™€ ๊ฐ™๋‹ค. const str = ` 010-1234-5678 kurt5451@naver.com https://www.omdbapi.com/?apikey=7035c60c&s=frozen The quick brown fox jumps over the lazy dog. abbcccdddd ` const regexp = new RegExp('the', 'gi') console.log(str.match(regex..

    JS. ์ •๊ทœํ‘œํ˜„์‹(Regex)

    ์ •๊ทœํ‘œํ˜„์‹ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋Œ€์ฒดํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ผ์ข…์˜ ํ˜•์‹ ์–ธ์–ด ๊ฐ„๋‹จํ•œ ๋ฌธ์ž ๊ฒ€์ƒ‰๋ถ€ํ„ฐ ์ด๋ฉ”์ผ, ํŒจ์Šค์›Œ๋“œ ๊ฒ€์‚ฌ ๋“ฑ์˜ ๋ณต์žกํ•œ ๋ฌธ์ž ์ผ์น˜ ๊ธฐ๋Šฅ ๋“ฑ์„ ์ •๊ทœ์‹ ํŒจํ„ด์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๊ทœํ‘œํ˜„์‹์€ ํฌ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฌธ์ž ๊ฒ€์ƒ‰ ๋ฌธ์ž ๋Œ€์ฒด ๋ฌธ์ž ์ถ”์ถœ ์ •๊ทœํ‘œํ˜„์‹ ์‹ค์Šต npm init -y ํ„ฐ๋ฏธ๋„์— ์œ„ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  package.json์„ ์ƒ์„ฑํ•œ๋‹ค. npm i parcel-bundler -D parcel-bundler๋ฅผ ๊ฐœ๋ฐœ์ž์šฉ์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค. ์„ค์น˜ํ•˜๋ฉด .cache, dist ํŒŒ์ผ๊ณผ package-lock.json ํŒŒ์ผ์ด ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค. npm run dev ํ„ฐ๋ฏธ๋„์— ์œ„ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์ „์— package.json ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. "scripts": { "dev": "parcel ind..

    JS. OMDB API

    OMDB API ์•„๋ž˜ ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ์˜ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋ฐ›์•„์˜ค๋Š” ์ž‘์—…์„ ํ•  ๊ฒƒ์ด๋‹ค. http://www.omdbapi.com/ OMDb API - The Open Movie Database www.omdbapi.com Query String ์ฃผ์†Œ?์†์„ฑ=๊ฐ’&์†์„ฑ=๊ฐ’&์†์„ฑ=๊ฐ’ ์ฃผ์†Œ ? apiKey = ํ‚ค ๊ฐ’ & S = ์˜ํ™” ์ œ๋ชฉ E.g. ๊ฒจ์šธ์™•๊ตญ ์˜ํ™” ๋ฐ์ดํ„ฐ ์š”์ฒญํ•˜๊ธฐ http://www.omdbapi.com/?apikey=######&s=frozen axios Axios๋Š” ๋ธŒ๋ผ์šฐ์ €, Node.js๋ฅผ ์œ„ํ•œ Promise API๋ฅผ ํ™œ์šฉํ•˜๋Š” HTTP ๋น„๋™๊ธฐ ํ†ต์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์•„๋ž˜ ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ axios ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•œ๋‹ค. https://github.com/axios/axios GitHub - axi..

    JS. Storange

    Storange ์›น ์Šคํ† ๋ฆฌ์ง€์—๋Š” ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ (local Storage)์™€ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ (session Storage)๊ฐ€ ์žˆ๋‹ค. ์ด ๋‘ ์Šคํ† ๋ฆฌ์ง€์˜ ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋ฒ”์œ„ ๋‚ด์—์„œ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๋ณด์กด๋˜๋А๋ƒ์— ์žˆ๋‹ค. ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋Š” ์›นํŽ˜์ด์ง€์˜ ์„ธ์…˜์ด ๋๋‚˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋œ๋‹ค. ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋Š” ์›นํŽ˜์ด์ง€์˜ ์„ธ์…˜์ด ๋๋‚  ๋•Œ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์›Œ์ง€๋Š” ๋ฐ˜๋ฉด์—, Local Storange ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ˜์˜๊ตฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋œ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ž์ฒด์— ๋ฐ˜์˜๊ตฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋˜์ง€๋งŒ, ๋„๋ฉ”์ธ (domain)์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ์ฆ‰, ๊ฐ™์€ ๋„๋ฉ”์ธ์ผ ๊ฒฝ์šฐ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. Session Storange ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋Š”..

    JS. JSON

    JSON JSON(JavaScript Object Notation)์€ ์†์„ฑ-๊ฐ’ ์Œ( attribute–value pairs and array data types (or any other serializable value)) ๋˜๋Š” "ํ‚ค-๊ฐ’ ์Œ"์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ฐ„์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํฌ๋งท์ด๋‹ค. ๋น„๋™๊ธฐ ๋ธŒ๋ผ์šฐ์ €/์„œ๋ฒ„ ํ†ต์‹  (AJAX)์„ ์œ„ํ•ด, ๋„“๊ฒŒ๋Š” XML(AJAX๊ฐ€ ์‚ฌ์šฉ)์„ ๋Œ€์ฒดํ•˜๋Š” ์ฃผ์š” ๋ฐ์ดํ„ฐ ํฌ๋งท์ด๋‹ค. ํŠนํžˆ, ์ธํ„ฐ๋„ท์—์„œ ์ž๋ฃŒ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ๊ทธ ์ž๋ฃŒ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. SON์˜ ๊ณต์‹ ์ธํ„ฐ๋„ท ๋ฏธ๋””์–ด ํƒ€์ž…์€ application/json์ด๋ฉฐ, JSON์˜ ํŒŒ์ผ ํ™•์žฅ์ž๋Š” .json์ด๋‹ค. ์ž๋ฃŒํ˜• ์ˆ˜(Number) ๋ฌธ์ž์—ด(String): 0๊ฐœ..

    JS. Lodash ์‚ฌ์šฉ๋ฒ•

    Lodash ๊ณต์‹ ๋ฌธ์„œ https://lodash.com/ Lodash _.defaults({ 'a': 1 }, { 'a': 3, 'b': 2 });_.partition([1, 2, 3, 4], n => n % 2);DownloadLodash is released under the MIT license & supports modern environments. Review the build differences & pick one that’s right for you.InstallationIn lodash.com documentation์„ ํด๋ฆญํ•˜๋ฉด, Lodash์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ๊ฐ€ ์žˆ๋‹ค. Lodash ์œ ์šฉํ•œ ๋ฉ”์†Œ๋“œ uniqBy(a, b) ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ ๋‚ด์— ์žˆ๋Š” ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ œ..

    JS. ๋ฐ์ดํ„ฐ ์‹ค์Šต ๊ฐ€์ ธ์˜ค๊ธฐ, ๋‚ด๋ณด๋‚ด๊ธฐ

    ๋‚ด๋ณด๋‚ด๊ธฐ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜, ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋งจ ์•ž์— export๋ฅผ ๋ถ™์ด๋ฉด ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฌด์–ธ๊ฐˆ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด ์ด์— ๋Œ€ํ•œ ๋ชฉ๋ก์„ ๋งŒ๋“ค์–ด import ๋ฅผ ๋ถ™์ด๋ฉด ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. import as / export as as๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์„œ ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋ณ„์นญ์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. export default ๋‚ด๋ณด๋‚ด๊ณ ์ž ํ•˜๋Š” ๊ฐœ์ฒด ์•ž์— export default ๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด, 'ํ•ด๋‹น ๋ชจ๋“ˆ์—” ๊ฐœ์ฒด๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๋‹ค'๋Š” ์‚ฌ์‹ค์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. export named ๋ฐ์ดํ„ฐ์˜ ์ด๋ฆ„์„ ๋ฐ˜๋“œ์‹œ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” ํ†ต๋กœ, ์ด๋ฆ„์„ ์ง€์ •ํ•œ ํ†ต๋กœ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“ˆ(Module) JavaScript ํŒŒ์ผ๋กœ ์–ด๋””์„ ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ๋งŒ๋“  ํŒŒ์ผ์„ ๋ชจ๋“ˆ(Mo..