์๋ํ๋ ์ค ๋ธ๋ก๊ทธ์ https๋ฅผ ์ ์ฉํด๋ณด์ !๋ณธ์ธ์ด ์ฌ์ฉํ๋ ํฐ๋ฏธ๋์ ์ฐ๋ค.ssh -i ๋ฐ๊ธ๋ฐ์ SSHKey bitnami@ip์ฃผ์๋ฅผ ์ ๋ ฅํด์ ssh์ ์ ์ํด์ค๋ค. ์ฐธ๊ณ ๋ก ๋ฐ๊ธ๋ฐ์ SSHKey๋ ํ์ผ์ ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ๊ฐ์ ธ์ค๋ฉด ๋๋ค. ๋ณธ์ธ์ ip์ฃผ์๋ aws์ ์ ์
์์ ํ์๊ฐ์ api๋ฅผ ๋ง๋ค์์๋ ๋น๋ฐ๋ฒํธ๋ฅผ qwe123!@๋จผ์ , bcrypt ์ค์นํด๋ณด์. package.json์ dependencies์ ์์๊ฒ ๋ค์ด์จ๊ฑธ ํ์ธ ํ ์์๋ค.npm install bcrypt์ด๋ฒ์๋ ์ค์นํด์ค bcrypt๋ฅผ ์ฌ์ฉํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํด์ฃผ๋
node์ MongoDB๋ฅผ ์ฐ๊ฒฐํ๋ ๋ ๋ก ๋์๊ฐ๋ณด์. ๋ ์์ด๋ฅผ ์ฐ๊ฒฐํด์ฃผ๊ธฐ ์ํด MongoDB์์ ๋ฐ๊ธ๋ฐ์๋ ํค์ ๊ทธ ์์ ๋ณธ์ธ์ด ์ง์ ์ค์ ํ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผํ๋ค. <๋น๋ฐ๋ฒํธ!!> ์ด ์๋ฆฌ์ ๋ง์ด๋ค.์ด ์ฝ๋๋ github์ ์ฌ๋ฆฐ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๋๊ตฌ๋ ๋
์๋ฒ๋ฅผ ๋ง๋ค๋ฉด์ ์ฒ์ ๋ถํธํจ์ ๋๋๊ฒ์ด ์๋ฒ ์ฝ๋๋ฅผ ์์ ํ์๋ ์์ ๋ ๋ด์ฉ์ด ์ค์๊ฐ์ผ๋ก ๋ฐ์๋์ง ์๋๋ค๋ ๊ฒ์ด์๋ค๐ฑ react์ next๋ก ํ๋ก ํธ ์์ ์ ํ๋ ๋์๊ฒ๋ ๋งค์ฐ ์ถฉ๊ฒฉ์ ์ธ ์ผโฆ! ๊ทธ๋ฌ๋ ์ญ์, ์๋ฒ ์์ ์ฌํญ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํด์ฃผ๋ nodemon์ด๋ผ๋ ์์ด๊ฐ
์ง๋ ํฌ์คํ ์์ ๋ง๋ค์ด๋ ์ฝ๋์ ํ์๊ฐ์ api๊ธฐ๋ฅ์ ํ register api๋ฅผ ๋ง๋ค์ด๋ณด์. ๊ทธ๋ฆฌ๊ณ ์์ง ํ๋ก ํธ ์์ ์ด ์ด๋ฃจ์ด์ง์ง ์์๊ธฐ ๋๋ฌธ์ postman์ ํตํด apiํธ์ถ์ ํด๋ณด์๋ค.์ง๋ ํฌ์คํ ๊น์ง ์์ฑํด ๋ ์ฝ๋์์ ํ์๊ฐ์ api ์์ฑ์ ์ํด ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ
SSH key๋ฅผ ๋ฐ๊ธ๋ฐ์ github์ ์ฐ๋ํ ๋ค ์ง๊ธ๊น์ง ์์ฑํด ๋์ ์ฝ๋๋ฅผ ํธ์ํด๋ณด์๐๐ปํฐ๋ฏธ๋์ ์๋ ๋ช ๋ น์ด๋ก ssh key๊ฐ ๋ฐ๊ธ๋์ด ์๋์ง ๋จผ์ ํ์ธํ๋ค.์๋ค๋ฉด ๋ง๋ค์ด๋ณด์! ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค ์ํฐ์ํฐ์ํฐ! ๊ทธ๋ผ ์๋์ฒ๋ผ ํค์ ๋๋ค์ํธ ์ด๋ฏธ์ง๊ฐ ํ์ธ๋๋ค.
์ง๋๋ฒ์๋ node์ MongoDB๋ฅผ ์ฐ๊ฒฐํ๋ค. ์ค๋์ MongoDB์ ์ ์ฅํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ฆ, schema๋ฅผ ์์ฑํ๊ณ ์ธ๋ถ์์ ์ฌ์ฉํ ์์๋๋ก export๊น์ง ํด๋ณด์.schema๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ, ํํ ๋ฐฉ๋ฒ, ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ธ์ด๋ก ์ ์ํ ๊ตฌ์กฐ๋ค. ์ฝ๊ฒ๋งํด ์๋์
์๋ฒ๋ฅผ ์ฐ๋ํด์ ์งํํด๋ณด๊ณ ์ถ์ ํ๋ก์ ํธ๊ฐ ์๊ฒผ๋ค. ๊ทธ๋์ ๊ฐ๋จํ๊ฒ ์๋ฒ๋ฅผ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ๋ค.node.js๋ ์น๋ธ๋ผ์ฐ์ ์์๋ง ์ฌ์ฉ๋๋ javascript๋ฅผ ์น ์ธ๋ถ์์๋ ์คํํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํด์ค๋ค. ๊ทธ๋์ node.js๋ฅผ ํตํด ์๋ฒ๋ฅผ ์์ฑํ ์ ์๊ฒ ๋๋๊ฒ์ด๋ค.
์์ ์น์ ๋์๋ฐฉ์์ ์์๋ณด๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ์๋ฒ๋ ๊ทธ ์์ฒญ์ ์๋ตํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.์ค๋์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก๋ถํฐ ์๋ต๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋งํ๋์ง ๊ทธ ๊ณผ์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.๋จผ์ , ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ ์ ํฌ๊ฒ ๋๋ ๋ณด๋ฉด
์น(web)์ ์๋์์ด๋์น(World Wide Web)์ ์ค์๋ง์ ๋๋ค. ์น์๋ ํด๋ผ์ด์ธํธ(clinent)์ ์๋ฒ(server)๋ผ๋ ๋๊ฐ์ง์ ์ปดํจํฐ๊ฐ ์ฐ๊ฒฐ๋์ด์์ต๋๋ค.ํด๋ผ์ด์ธํธ๋ WI-FI์ ๊ฐ์ด ์น ์ฌ์ฉ์์ ์ธํฐ๋ท์ด ์ฐ๊ฒฐ๋ ์ฅ์น๋ค ๋๋ ํฌ๋กฌ, ์ฌํ๋ฆฌ์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ฅผ
์ธํฐ๋ท์ด๋ ๋ฌด์์ธ์ง ๋จผ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.์ธํฐ๋ท์ ์์ญ์ต๋์ ์ปดํจํฐ๋ค์ด ์๋ก ํต์ ํ ์ ์๋๋ก ๋ง๋๋ ๊ฑฐ๋ํ ๋คํธ์ํฌ์ ๋๋ค.๋ ๋์ ์ปดํจํฐ๊ฐ ์๋ก ํต์ ํ๊ธฐ ์ํด์๋ ์ ์ ์ธ ์ด๋๋ท ์ผ์ด๋ธ ํน์ ๋ฌด์ ์ธ WiFi๋ Bluetooth ์์คํ ์ ํตํด ์ฐ๊ฒฐ๋์ด์ผ ํฉ๋๋ค.ํ์ง๋ง, ๋ชจ
๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๋ CES 2022์ผ์ ์ CES ๋ง์ง๋ง ๋ ๋ง ๊ด๋์ด ๊ฐ๋ฅํ๋ค.์ ๋ช ๊ธฐ์ > ํ ํ์ฌ์ ํ์ ๊ฐ๋ฅํ๊ฑฐ๋ ์ฐธ๊ณ ํ ๋งํ ๊ธฐ์ ์์ผ๋ก ๊ด๋ํ๋ค.๋ฒค์ธ ์ ์ฐจ๋ ์ธ๋ถ ์์ด ๋ณํ๋ ์ฐจ๋ฅผ ๋ณด์๋๋ฐ, ์ด์ ์๋์ฐจ ํฐ์์ด๊น ๊ฒ์ ์์ด๊น ํน์ ํ๋์ ์ด๊น๊ณ ๋ฏผํ์ง ์์๋ ๋๋ ์๋
์ง๋ ๊ธ์์๋ reduce() ๊ธฐ๋ณธ์ฐ์๊ณผ, ๋์ ๋ ๊ฐ(accumulator)์ ์ธ์๋ก ๋ฐ๋ ํน์ฑ์ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ ์์๋ฅผ ๋ชจ๋ ๋ํด๋ณด์๋ค.์ด๋ฒ์๋ ๋์ ๋ ๊ฐ๊ณผ initialValue๋ฅผ ์ง์ ํ ์ ์๋ ํน์ฑ์ ์ด์ฉํด ๋ฐฐ์ด ๋ด์ ์ค๋ณต๋ ๊ฐ์ด ๋ช ๊ฐ ์๋์ง ๊ตฌํด๋ณด์!redu
hash ๊ด๋ จ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ค ์ด๋ค๋ถ์ด Map๊ณผ Set์ ์ฌ์ฉํ์ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค. Map๊ณผ Set์ ๋ํด์๋ ES6 ๋ฌธ๋ฒ์ด๋ค, ์ ๋๋ง ์๊ณ ์์๋๋ฐ ์ค์ ๋ก ์ฌ์ฉํ ์ ์์๋ค๋ฉด ํ์ด๊ฐ ๋ ์ฌ์ ์ ๊ฒ ๊ฐ์๋ค. ๊ทธ๋์ ๋ค์๋ฒ์๋ ์ฌ์ฉํด๋ณด๊ธฐ ์ํด Map๊ณผ Set์ ์์๋ณด๊ธฐ
reduce()๋ ๋ฐฐ์ด์ ๋ค๋ฃจ๋ ๋ฉ์๋๋ก ๋์ ๊ฐ(accumulator)๊ณผ ํ์ฌ๊ฐ(currentValue)์ ์ธ์๋ก ๊ฐ์ง๊ณ ์๋ค๋ ํน์ง์ด ์๋ค. ์ด๋ฌํ ํน์ง์ผ๋ก ๋ฐฐ์ด์ ์ฌ๋ฌ๊ฐ์ง๋ก ์๋ฆฌ(?)ํ ์ ์๋๋ก ๋ง๋ ๋ค.๊ฐ์ฅ ๊ฐ๋จํ ์์๋ ๋ชจ๋ ๋ฐฐ์ด์ ์์๋ฅผ ๋ํ๋ ๊ฒ์ผ๋ก redu
slice()๋ ๋ฐฐ์ด์ ์์ ์ธ๋ฑ์ค๋ถํฐ ๋ ์ธ๋ฑ์ค(๋ ์ธ๋ฑ์ค ๋ฏธํฌํจ)๊น์ง ์์๋ณต์ฌ๋ฅผ ํ์ฌ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํ๋ค. ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ฏ๋ก ์๋ณธ๋ฐฐ์ด์ ๋ณํํ์ง ์๋๋ค.arr.slice(\[begin\[, end]])์๋ณธ ๋ฐฐ์ด๊ณผ ์ ๋ฐฐ์ด์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค. ๊ทธ๋ฌ๋ฏ
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์์ํ๋ฉด์, ๊ธฐ๋ณธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ์๋๋ค์ ๋ค์ ํ๋ฒ ์ ๋ฆฌํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ ์ ๋ฆฌ๋ฅผ ์์ํด ๋ณธ๋ค!๊ฐ์ฅ ๋จผ์ , ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐ ๋ฐ ์ญ์ ํ ์ ์๋ ๋ฉ์๋๋ค์ ์์๋ณด์.๋ฐฐ์ด ์์ ์ถ๊ฐ unshift(), push()๋ฐฐ์ด ์์ ์ญ์ sh
๋ฐฐ์ด์ ์์๋ฅผ ์ญ์ , ๊ต์ฒดํ๊ฑฐ๋ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ์ฌ ๊ธฐ์กด ๋ฐฐ์ด์ ๋ณ๊ฒฝํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ๋ ๋ฐฐ์ด์ ๋ฐํํ๋ค.array.splice(start\[, deleteCount\[, item1\[, item2\[, ...]]]])slice()์ splice()์ ๋น์ทํ๊ฒ ์๊ฒจ
๋ฐฐ์ด array์ i๋ฒ์งธ ์ซ์๋ถํฐ j๋ฒ์งธ ์ซ์๊น์ง ์๋ฅด๊ณ ์ ๋ ฌํ์ ๋, k๋ฒ์งธ์ ์๋ ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.์๋ฅผ ๋ค์ด array๊ฐ 1, 5, 2, 6, 3, 7, 4, i = 2, j = 5, k = 3์ด๋ผ๋ฉดarray์ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ์๋ฅด๋ฉด 5, 2, 6, 3์ ๋
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต์ ํด์-์์ฅ ๋ฌธ์ ์คํ์ด๋ค์ ๋งค์ผ ๋ค๋ฅธ ์ท์ ์กฐํฉํ์ฌ ์ ์ด ์์ ์ ์์ฅํฉ๋๋ค.์๋ฅผ ๋ค์ด ์คํ์ด๊ฐ ๊ฐ์ง ์ท์ด ์๋์ ๊ฐ๊ณ ์ค๋ ์คํ์ด๊ฐ ๋๊ทธ๋ ์๊ฒฝ, ๊ธด ์ฝํธ, ํ๋์ ํฐ์ ์ธ ๋ฅผ ์ ์๋ค๋ฉด ๋ค์๋ ์ ์ฒญ๋ฐ์ง๋ฅผ ์ถ๊ฐ๋ก ์ ๊ฑฐ๋ ๋๊ทธ๋ ์๊ฒฝ ๋์ ๊ฒ์ ์