๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“ฑ JavaScript (10)

<Hello Hosung๐Ÿ˜Ž/>

[Expo + React Native] 1. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ๊ตฌ์กฐ ์™„๋ฒฝ ์ดํ•ด

1. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Expo + React Native๋ฅผ ์ด์šฉํ•ด ์•ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์ „ํžˆ ์ดˆ๊ธฐํ™”ํ•˜๊ณ ,ํ•„์š” ์—†๋Š” ํŒŒ์ผ ์ œ๊ฑฐ + ํด๋” ๊ตฌ์กฐ์™€ ์ฃผ์š” ํŒŒ์ผ ์—ญํ• ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด์€ ์ œ์™ธํ•˜๊ณ , ์ดˆ๋ณด์ž๊ฐ€ ํด๋”/ํŒŒ์ผ ์—ญํ• ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 1๏ธโƒฃ ํ™˜๊ฒฝ ์ค€๋น„1-1. Node.js ์„ค์น˜ ํ™•์ธnode -vnpm -v ๊ถŒ์žฅ Node.js ๋ฒ„์ „: LTS (์˜ˆ: v20.x)๋งŒ์•ฝ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด nvm ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜:nvm install --ltsnvm use --lts 1-2. Expo CLI ์„ค์น˜ ํ™•์ธ์ตœ๊ทผ Expo๋Š” npx create-expo-app ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.npx create-expo-app --version ๊ธฐ์กด์— expo-cli ์„ค์น˜๋˜์–ด ์žˆ์–ด๋„ ์ด์ œ npx ์‚ฌ..

[React, RN] ํšจ์œจ์ ์ธ ๋ Œ๋”๋ง๊ณผ ๋น ๋ฅธ ๋กœ๋”ฉ์„ ์œ„ํ•œ ์ „๋žต

1. ๋ฆฌ์•กํŠธ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ ๋ฆฌ์•กํŠธ๋กœ ๋งŒ๋“  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌ๊ณ  ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋ Œ๋”๋ง ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•ด์ง‘๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ๋А๋ฆฌ๊ฒŒ ๋กœ๋”ฉ๋˜๊ฑฐ๋‚˜ ๋ถˆํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ณ„์† ๋ฆฌ๋ Œ๋”๋ง๋˜๋Š” ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์ด ํฌ๊ฒŒ ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ˜์‘ ์†๋„๋ฅผ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.2. ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง ๋ฐฉ์ง€๋ฆฌ์•กํŠธ๋Š” ์ƒํƒœ(state)๋‚˜ ์†์„ฑ(props)์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๋ฆฌ๋ Œ๋”๋ง์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.React.memo: ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ props๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌ๋ Œ๋”๋ง์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.const MyComponent = React.memo(({ data }) => {..

[React, RN] ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ์™„์ „ ์ •๋ณต

๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋Š” ๋ฆฌ์•กํŠธ๋กœ ๋งŒ๋“  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŽ˜์ด์ง€ ๊ฐ„ ์ด๋™์„ ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ๊ณ ์นจ์ด ๋˜๋Š”๋ฐ, ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด๋„ URL๋งŒ ๋ฐ”๊พธ๋ฉด์„œ ๋‹ค์–‘ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์†Œ๊ฐœํ• ๊ฒŒ์š”.1. ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ ์„ค์น˜ํ•˜๊ธฐ๋จผ์ € ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ๋ฅผ ํ”„๋กœ์ ํŠธ์— ์„ค์น˜ํ•ด์•ผ ํ•ด์š”. ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.npm install react-router-dom์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ํŒŒ์ผ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.import { BrowserRouter, Route, Switch } from 'react-router-dom';2. ๊ธฐ๋ณธ ๋ผ์šฐํŒ… ์‚ฌ์šฉํ•˜๊ธฐ..

[React, RN] ๋ฆฌ์•กํŠธ ํ›…(React Hooks) ์†Œ๊ฐœ๐Ÿ‘

๋ฆฌ์•กํŠธ๋Š” 2013๋…„์— ์ฒ˜์Œ ๋“ฑ์žฅํ•œ ์ดํ›„๋กœ ์ง€์†์ ์œผ๋กœ ์ง„ํ™”ํ•ด์™”๊ณ , ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ๋ฆฌ์•กํŠธ ํ›…(React Hooks) ์ž…๋‹ˆ๋‹ค. ํ›…์€ 2018๋…„์— ๋ฆฌ์•กํŠธ 16.8 ๋ฒ„์ „์—์„œ ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ, ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ์™€ ๋ผ์ดํ”„์‚ฌ์ดํด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ด์ „๊นŒ์ง€๋Š” ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์ƒํƒœ ๊ด€๋ฆฌ๋‚˜ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, ํ›…์„ ํ†ตํ•ด ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.ํ›…์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?๋ฆฌ์•กํŠธ ํ›…์€ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ, ๋ถ€์ˆ˜ ํšจ๊ณผ(side effect) ๊ด€๋ฆฌ, ์ปจํ…์ŠคํŠธ ์‚ฌ์šฉ ๋“ฑ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ›…์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑ๋˜๋ฉฐ, ์žฌ์‚ฌ์šฉ์„ฑ๋„ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.ํ›…์˜ ์ฃผ์š” ํŠน์ง•ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ..

[React, RN] ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ๐Ÿ˜€

1. ๋ฆฌ์•กํŠธ ์†Œ๊ฐœ๋ฆฌ์•กํŠธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ UI๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 2. JSX (JavaScript XML)JSX๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์•ˆ์—์„œ HTML๊ณผ ๋น„์Šทํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.const element = Hello, world!; * JSX๋Š” React.createElement๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.    3. ์ปดํฌ๋„ŒํŠธ (Component)๋ฆฌ์•กํŠธ์—์„œ UI๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.์ปดํฌ๋„ŒํŠธ๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.  ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธfunction Welcome(props) { return Hello, {props.name};} ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธclass..

[Node.js] OAuth2 ๋กœ๊ทธ์ธ - 2(Google Login)

๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด, OAuth 2.0 ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ Google API์™€ ์—ฐ๋™ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Node.js + Express ๊ธฐ๋ฐ˜์˜ ๊ฐ„๋‹จํ•œ Google ๋กœ๊ทธ์ธ ๊ตฌํ˜„ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.์‚ฌ์ „ ์ค€๋น„Google Cloud Console์—์„œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑGoogle Cloud Console์— ์ ‘์†.์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒ.OAuth ๋™์˜ ํ™”๋ฉด ์„ค์ •:์‚ฌ์šฉ์ž ์œ ํ˜• ์„ ํƒ(์™ธ๋ถ€/๋‚ด๋ถ€).ํ•„์ˆ˜ ์ •๋ณด ์ž…๋ ฅ(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„, ์ด๋ฉ”์ผ ๋“ฑ).OAuth 2.0 ํด๋ผ์ด์–ธํŠธ ID ์ƒ์„ฑ:์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ํ˜•: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ ํƒ.์Šน์ธ๋œ ๋ฆฌ๋””๋ ‰์…˜ URI ์ถ”๊ฐ€: ์˜ˆ) http://localhost:3000/auth/google/callbackํด๋ผ์ด์–ธํŠธ ID์™€ ํด๋ผ์ด์–ธํŠธ ๋น„๋ฐ€ ํ‚ค(Client Secret)๋ฅผ ๋ณต์‚ฌ..

[Node.js] OAuth2 ๋กœ๊ทธ์ธ - 1

OAuth2 ๋กœ๊ทธ์ธ์€ OAuth 2.0 ์ธ์ฆ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์™ธ๋ถ€ ์„œ๋น„์Šค(์˜ˆ: Google, Facebook, GitHub ๋“ฑ)๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ์ƒˆ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๊ธฐ์กด์˜ ์™ธ๋ถ€ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์ด๋‚˜ ์›น์‚ฌ์ดํŠธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OAuth2 ๋กœ๊ทธ์ธ์˜ ์ฃผ์š” ๊ฐœ๋…๊ถŒํ•œ ๋ถ€์—ฌ(Authorization)์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.์•ก์„ธ์Šค ํ† ํฐ(Access Token)์™ธ๋ถ€ ์„œ๋น„์Šค๊ฐ€ ๋ฐœ๊ธ‰ํ•˜๋Š” ์ž„์‹œ ํ‚ค๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.๋ฆฌ๋‹ค์ด๋ ‰์…˜(Redirection)์‚ฌ์šฉ์ž๋Š” OAuth ์ธ์ฆ ์„œ๋ฒ„๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋˜์–ด ๋กœ๊ทธ์ธ ์ ˆ์ฐจ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ์™„๋ฃŒ ํ›„..

[Node.js] bcrypt ๋กœ ํšŒ์›๊ฐ€์ž… ๊ตฌํ˜„ํ•˜๊ธฐ

ํšŒ์›๊ฐ€์ž… ์‹œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆ˜์ง‘ํ•œ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋•Œ ์ฃผ์˜ํ•  ์ ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•˜์ง€ ์•Š๊ณ  ํ‰๋ฌธ ๊ทธ๋Œ€๋กœ ์ €์žฅํ•  ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์œ ์ถœ๋˜๋ฉด, ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ํ‰๋ฌธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ์†์‰ฝ๊ฒŒ ๋กœ๊ทธ์ธํ•˜๊ฑฐ๋‚˜ ๋‹ค์–‘ํ•œ ๊ณต๊ฒฉ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์•”ํ˜ธํ™”(ํ•ด์‹ฑ) ๊ณผ์ •์„ ๊ฑฐ์ณ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹ฑ์„ ํ†ตํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ์ถœ ์‹œ์—๋„ ๋น„๋ฐ€๋ฒˆํ˜ธ ์›๋ฌธ์ด ์•„๋‹Œ ํ•ด์‹œ๊ฐ’์ด ๋…ธ์ถœ๋˜๋ฏ€๋กœ ๋ณด์•ˆ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  ์˜ค๋Š˜ ํฌ์ŠคํŒ…์€ bcrypt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฅผ ํ™œ์šฉํ•œ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ, ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.   1) Node.js ํ”„๋กœ์ ํŠธ์— bcrypt๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ..

[Node.js] Express ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž

์˜ค๋Š˜์€ Express ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค ๐Ÿ˜Š๋งŒ๋“ค๊ธฐ์— ์•ž์„œ Express๊ฐ€ ๋ฌด์—‡์ธ๊ณ  ์•Œ์•„๋ณด๋ฉด ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์™€ ์žˆ์–ด์š”   ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€ ๋ฐ”๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์—์š”, ์‰ฝ๊ฒŒ ๋งํ•ด Java ๊ณ„์—ด์—๋Š” Spring, SpringBoot ๋“ฑ์ด ์กด์žฌํ•˜๋“ฏ Node.js๋ฅผ ํ†ตํ•ด ์›น ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ฐ”๋กœ Express ์ž…๋‹ˆ๋‹ค.    ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ Express ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค. 1. ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐํ™”๋จผ์ € Express ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ์•ˆ์—์„œ Node.js ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.mkdir express-servercd express-servernpm init -y # package.json ํŒŒ์ผ ์ž๋™ ์ƒ์„ฑ 2. E..

[Node.js] Node.js(Express) ↔๏ธŽ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๐Ÿ“ฆ ์—ฐ๋™ํ•˜๊ธฐ

์ด๋ฒˆ์—” Node.js ์™€ MySQL ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™๊ณผ ๋˜ํ•œ mybatis-mapper ๋ฅผ ํ™œ์šฉ ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋˜ํ•œ ์•Œ์•„ ๋ณด๋„๋ก ํ•ด์š”๐Ÿ˜€ ๋จผ์ € ์•„๋ž˜์™€ ๊ฐ™์ด ๋„์ปค ํ™˜๊ฒฝ์— MySQL ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์˜ฌ๋ผ ๊ฐ”๋‹ค๊ณ  ๊ฐ€์ • ํ•ด๋ด…์‹œ๋‹ค! (๋„์ปค๋ฅผ ํ†ตํ•ด MySQL DB ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ด์š”) ↓ ↓ ↓ 2024.08.18 - [๐Ÿณ Docker] - [Docker] ๋„์ปค๋กœ MySQL DB๐Ÿ“ฆ ์„œ๋ฒ„ ๋งŒ๋“ค์–ด๋ณด๊ธฐ ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด Node.js๋กœ ์ž‘์„ฑํ•œ Express ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณผ๊ฒŒ์š”. Express๋Š” Node.js๋ฅผ ์œ„ํ•œ ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์š”. ๐Ÿง ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ํŠนํžˆ REST API๋‚˜ ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ..