์ „์ฒด ๊ธ€ 62

null ์ฒดํ‚น์‹œ ์œ ์šฉํ•œ ๋ฌธ๋ฒ•(Truthy and Falsy)

์ด๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•๊นŒ์ง€๋Š” ์•„๋‹ˆ์ง€๋งŒ, ์•Œ์•„๋‘ฌ์•ผ ํ•˜๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. function print(person) { console.log(person.name); } const person = { name: 'John' }; print(person); ๋งŒ์•ฝ์— ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ, ๋งŒ์•ฝ print ํ•จ์ˆ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋น„์–ด์ง„ ์ฑ„๋กœ ์‹คํ–‰๋๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. function print(person) { console.log(person.name); } const person = { name: 'John' }; print(); ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋ฑ‰์Šต๋‹ˆ๋‹ค. TypeError: Cannot read property 'name' of undefined ๋งŒ์•ฝ์— print ํ•จ์ˆ˜์—์„œ object ๊ฐ€ ์ฃผ์–ด..

๋ฐฐ์—ด ๋‚ด์žฅํ•จ์ˆ˜ ์ •๋ฆฌ

forEach : ๊ฐ์›์†Œ๋“ค์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ const superheros = ['์•„์ด์–ธ๋งจ', '์บกํ‹ด์•„๋ฉ”๋ฆฌ์นด', 'ํ† ๋ฅด', '๋‹ฅํ„ฐ์ŠคํŠธ๋ ˆ์ธ์ง€']; superheros.forEach(hero => { console.log(hero); }); map: ๊ฐ์›์†Œ๋“ค์„ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ const array = [1, 2, 3, 4, 5, 6, 7, 8]; const square = n => n * n; const squared = array.map(square); console.log(squared); indexOf: ํŠน์ • ์›์†Œ๊ฐ€ ์–ด๋””์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ํ•จ์ˆ˜ const superheros = ['์•„์ด์–ธ๋งจ', '์บกํ‹ด์•„๋ฉ”๋ฆฌ์นด', 'ํ† ๋ฅด', '๋‹ฅํ„ฐ์ŠคํŠธ๋ ˆ์ธ์ง€']; const index ..

Firebase v9๋ถ€ํ„ฐ ๋‹ฌ๋ผ์ง„ ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ

'ํด๋ก ์ฝ”๋”ฉ ํŠธ์œ„ํ„ฐ'๋กœ ๋ฆฌ์•กํŠธ์™€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ ๊ฐ์„ ์ตํžˆ๊ณ  ์žˆ๋˜ ์ค‘ ์ด์ƒํ•˜๋ฆฌ๋งŒํผ ์žฆ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ณด๋‹ˆ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ ๋ฒ„์ „์ด ๋ฐ”๋€Œ๋ฉด์„œ ์‚ฌ์šฉ๋ฒ•๋“ค์ด ๊ต์žฌ์™€ ๋งŽ์ด ๋‹ฌ๋ผ์กŒ๊ธฐ ๋•Œ๋ฌธ์ด์˜€๋Š”๋ฐ, ๋ฒ„์ „์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋˜์ง€๋งŒ 9๋ฒ„์ „๋ถ€ํ„ฐ SDK๋กœ ๋ฐ”๋€Œ๋ฉด์„œ ์šฉ๋Ÿ‰๋„ ์ž‘๊ณ  ํšจ์œจ์„ฑ์ด ์ฆ๊ฐ€๋๋‹ค๊ณ  ํ•˜์—ฌ ๊ทธ๋ƒฅ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ฝ”๋”ฉ์„ ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋“ค์„ ๊ตฌ๊ธ€๋ง๊ณผ ๊ณต์‹๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ˆ˜์ •ํ•œ ๋‚ด์—ญ๋“ค์ž…๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ ์˜ค๋ฅ˜ not found in 'firebase/app’๋ผ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ํ•ด๋ณธ ๊ฒฐ๊ณผ, ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๋ฒ„์ „์ด ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๋ฉด์„œ import๊ฒฝ๋กœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (Firebase/app => firebase/compat/app) ๋‚ด๊ฐ€ ์„ค์น˜ํ•œ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฒ„์ ผ์€ "firebase": "^9.9.4..

Firebase ์„ค์ •ํ•˜๊ธฐ

1. Firebase ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ํ™ˆํŽ˜์ด์ง€ firebase.google.com์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ ๋ฅผ ๋ˆ„๋ฅด๊ณ , ์ด์–ด์„œ ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์ด๋ฆ„์€ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ์ง€์–ด์ค๋‹ˆ๋‹ค. '์•ฝ๊ด€์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค'์— ์ฒดํฌํ•œ ํ›„ ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ๋‚˜์˜จ ํ™”๋ฉด์—์„œ Google์• ๋„๋ฆฌํ‹ฑ์Šค ์‚ฌ์šฉ์„ค์ •์„ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ๊ตญ๊ฐ€์™€ ์ธ์ฆ์ ˆ์ฐจ ํ›„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. '์ƒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค' ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋ฉด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž˜ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‹ค์Œ์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 2. Firebase์— ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ๋กํ•˜๊ธฐ ์ด๋ฏธ์ง€์— ๋ณด์ด๋Š” ๋ชจ์–‘์˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. (๋ฒ„ํŠผ ์ข…๋ฅ˜์—์„œ ๋ณด๋“ ios..

GitHub์™€ ํ”„๋กœ์ ํŠธ ์—ฐ๋™ํ•˜๊ธฐ

React๋กœ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ GitHub์— ์—ฐ๋™ํ•˜์—ฌ ๊ด€๋ฆฌํ•ด๋ณด๋ คํ•ฉ๋‹ˆ๋‹ค. 1. GitHub์— ์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ ์šฐ์„ , github.com์— ๋กœ๊ทธ์ธํ•˜์—ฌ ์™ผ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์— ํ•„์š”ํ•œ ํ•ญ๋ชฉ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. Repository name์—๋Š” ํ”„๋กœ์ ํŠธ๋ช…์„ ์ž…๋ ฅํ•˜๊ณ , Description์—๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์˜ํ•ด์•ผํ•  ์‚ฌํ•ญ์€ 'Public' 'Private' ์„ค์ •์ธ๋ฐ, ์—ฌ๊ธฐ์„œ Private์„ค์ •์„ ํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค. (Private์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์˜ฌ๋ฆฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.) ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. 2. GitHub ์ €์žฅ์†Œ์™€ ํ”„๋กœ์ ํŠธ ์—ฐ๋™ํ•˜๊ธฐ GitHub์ €์žฅ์†Œ์™€ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ณธ์ธ๊ฐ™์€ ๊ฒฝ์šฐ์—” git re..

create-react-app์œผ๋กœ ์†์‰ฝ๊ฒŒ ํ”„๋กœ์ ํŠธ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

Create React App React๋กœ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์›นํŒฉ, ๋ฐ”๋ฒจ ๋“ฑ ๋ฐฐ์›Œ์•ผํ•˜๋Š” ๊ธฐ์ˆ ๋“ค์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด๊ฐœ๋ฐœ์ž๋“ค์ด React๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ์ „ ๋ฒฝ์— ๋ถ€๋”ชํ˜€ ๊ฐœ๋ฐœ์„ ํฌ๊ธฐํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ง‰๊ธฐ์œ„ํ•ด create-react-app์ด๋ผ๋Š” ๋„๊ตฌ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ์ด๋Š” React๋ฅผ ๋งŒ๋“  ํŽ˜์ด์Šค๋ถ์—์„œ ์ œ๊ณตํ•˜๋Š” CLI๋„๊ตฌ๋กœ์จ React์˜ ์„ธ๋ถ€์„ค์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ• ๋•Œ ์•„์ฃผ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ create-react-app์€ Node.js๊ฐ€ ์„ค์น˜๋œ ์ปดํ“จํ„ฐ์—์„œ npx์ปค๋งจ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๋ถ€๋‹ด์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (node.js, npx์„ค์น˜๋ฐฉ๋ฒ• : https://r-o-p.tistory.com/16) ๋น„์ฃผ์–ผ์ŠคํŠœ๋””์˜ค์ฝ”๋“œ์—์„œ ํ”„๋กœ์ ํŠธ๋“ค์„ ๋‹ด๋Š” ํด๋”์—ด๊ธฐ ํ„ฐ๋ฏธ๋„ > ์ƒˆํ„ฐ๋ฏธ๋„์„ ๋ˆŒ๋Ÿฌ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ธฐ ์ด๋•Œ ํ„ฐ๋ฏธ๋„..

Firebase๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

1. ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ž€? ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋Š” 2011๋…„ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์‚ฌ๊ฐ€ ๊ฐœ๋ฐœํ•˜๊ณ  2014๋…„ ๊ตฌ๊ธ€์— ์ธ์ˆ˜๋œ ๋ชจ๋ฐ”์ผ ๋ฐ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์ด๋ฉฐ, ๊ตฌ๊ธ€ ์• ๋„๋ฆฌํ‹ฑ์Šค์™€ ๊ตฌ๊ธ€ ํŒจ๋ธŒ๋ฆญ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋งˆ๋””๋กœ ์šด์˜์ฒด์ œ์— ์ƒ๊ด€์—†์ด ์•ฑ์„ ๋งŒ๋“ค์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ฐœ๋ฐœTool์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์™€ ์• ๋„๋ฆฌํ‹ฑ์Šค๋ฅผ ์ ์šฉํ•ด ์–ด๋–ค ๊ธฐ๊ธฐ์—์„œ๋‚˜ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ , ๋ฐฉ๋ฌธ์ž์ˆ˜ ๋ฐ ์ด์šฉํšŸ์ˆ˜, ๊ด‘๊ณ ํšจ๊ณผ, ๋ฌธ์ œ๋ฐœ์ƒ ๋นˆ๋„ ๋“ฑ์„ ๋ถ„์„ํ•ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์‰ฝ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๋“ฏ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋Š” ์•ฑ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ๋‹จ์ถ•์‹œ์ผœ์ฃผ๊ณ , ๊ฐœ๋ฐœ ๋‚œ์ด๋„๋ฅผ ๋‚ฎ์ถค์œผ๋กœ์จ ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. 2. ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ ๊ฐœ๋ฐœ๊ธฐ๋Šฅ์€ ํฌ๊ฒŒ ์ธ์ฆ / ์‹ค์‹œ๊ฐ„๋ฐ์ดํ„ฐ๋ฒ ..

Git์˜ ๊ธฐ๋ณธ ๋ช…๋ น์–ด ์ •๋ฆฌ

#ํ˜„์žฌ directory ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ Staging Area ๋กœ ์ด๋™ git add . # file ๋“ค์˜ tracking ์ƒํƒœ ๋ณด๊ธฐ git status # Staging ์˜ ํŒŒ์ผ๋“ค commit ํ•˜๊ธฐ git commit -m "messsage" # ์ €์žฅ์†Œ์— commit ๋ฐ˜์˜ํ•˜๊ธฐ git push git push origin master # ์ €์žฅ์†Œ์—์„œ commit ๊ฐ€์ง€๊ณ  ์˜ค๊ธฐ git pull # remote origin์˜ development branch merge git merge origin/development # ํ•œ ์ค„๋กœ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ commit ํžˆ์Šคํ† ๋ฆฌ ๋ณด๊ธฐ git log --oneline --graph # remote์—์„œ ์‚ญ์ œ๋œ brach๋ฅผ local ์—์„œ๋„ ๊น”๋”ํ•˜๊ฒŒ ์‚ญ์ œ git fetch -..

Mac์—์„œ Git์„ค์น˜ํ•˜๊ธฐ

Git์€ Github์™€ ๊ฐ™์€ ์ €์žฅ์†Œ ์„œ๋น„์Šค์— ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ๋‚ด๋ฆฌ๋Š” ์ €์žฅ์†Œ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. Homebrew ์„ค์น˜ 1. https://git-scm.com/ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๊นƒํ™ˆํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. 2. Download for Mac ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. 3. homebrew ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. 4. ์„ค์น˜๋ช…๋ น์–ด ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. 5. command + space ๋กœ Spotlight์ฐฝ์„ ์—ด๊ณ  ํ„ฐ๋ฏธ๋„์„ ๊ฒ€์ƒ‰ํ•ด์„œ ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 6. ํ„ฐ๋ฏธ๋„์— ๋ช…๋ น์–ด ๋ถ™์—ฌ๋„ฃ๊ธฐํ•ด์ค๋‹ˆ๋‹ค. ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ์ฐฝ์ด ๋œจ๊ณ  ๋งฅ ๋กœ๊ทธ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„ค์น˜๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. Git ์„ค์น˜ 1. ํ„ฐ๋ฏธ๋„์— brew install git ๋ช…๋ น์–ด ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. 2. ํ„ฐ๋ฏธ๋„์— git --version ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ฒ„์ „์ด ์ž˜ ์ถœ๋ ฅ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

node.js, npm, npx ์„ค์น˜ํ•˜๊ธฐ

React๋กœ ์ฝ”๋”ฉ์„ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ์ฒซ๋ฒˆ์งธ๋กœ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  ์„ค์น˜ํ•ด๋ณผ ๊ฒƒ์€ node.js์ž…๋‹ˆ๋‹ค. node.js๋ž€ ๋ธŒ๋ผ์šฐ์ € ์™ธ์˜ ํ™˜๊ฒฝ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์›๋ž˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์˜€์ง€๋งŒ node.js ๋•๋ถ„์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ๊ณณ์—์„œ๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 1. node.js ์„ค์น˜ํ•˜๊ธฐ ํ˜น์‹œ๋ผ๋„ node.js๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ node.js ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. macOS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  node -v๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์„ ๊ฒฝ์šฐ์—” ๋ฒ„์ „๋ฒˆํ˜ธ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ , ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š์„๊ฒฝ์šฐ์—” '๋ช…๋ น์–ด๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค'๋Š” ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์ถœ๋ ฅ๋๋‹ค๋ฉด node.js ๊ณต์‹ํ™ˆ..