node.js 13

๊ณต๊ณต API ์‚ฌ์šฉํ•˜์—ฌ ์›นํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ -2

์ด ๋ธ”๋กœ๊ทธ๋Š” ๋‚ด ๋งŒ์กฑ์šฉ ๋ธ”๋กœ๊ธฐ์ด๊ธด ํ•˜์ง€๋งŒ ๊ฐ€๋” ์ธ๊ธฐ๊ธ€ ์ˆœ์œ„๋ฅผ ๋ณธ๋‹ค. ๊ณต๋ถ€ํ• ๋•Œ ๊ธฐ๋ก์šฉ์œผ๋กœ ์ž‘์„ฑํ•˜์˜€๋˜ ๊ณต๊ณตapi๋ฅผ ์‚ฌ์šฉํ•œ ์›นํŽ˜์ด์ง€๋งŒ๋“ค๊ธฐ๋ฅผ ๊พธ์ค€ํžˆ ๋งŽ์ด ๋ณด๋Š”๊ฒƒ ๊ฐ™๋‹ค. ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ๋ฅผ ํ–ˆ์„๋•Œ์—๋„ ๋Œ“๊ธ€์ด ๋งŽ์ด ๋‹ฌ๋ ค์„œ ๊ณต๊ณตapi๋ฅผ ์ด์šฉํ•˜๋ ค๋Š” ํ•™์ƒ๋ถ„๋“ค์ด ๋งŽ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค. ์ด๋ฒˆ์— ํ•™๊ต์—์„œ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐํ™œ์šฉ ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ผ๊ณ  ํ•ด์„œ ๊ณต๊ณตapi๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง€๋„์— ํ‘œ์‹œํ•˜๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ดค๋Š”๋ฐ ํ•œ๋•Œ ์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๋ฉด์„œ ๊ณต๊ณต api ํ™œ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๋‚˜๋ฅผ ์ƒ๊ฐํ•˜๋ฉฐ ์ด๋ฒˆ์—” ์ข€ ์ž์„ธํžˆ ํ’€์–ด๋ณด์•„์•ผ๊ฒ ๋‹ค. 3๋…„์ „์˜ ๋‚˜๋ฅผ ๊ฒฉ๋ คํ•˜๋Š” ๊ธ€์ด๋ผ๊ณ  ๋ณด๋Š”๊ฒŒ ์ข‹๊ฒ ๋‹ค. ๊ณต๊ณต ์˜คํ”ˆ api๋Š” ์‹ ์ž… ๊ฐœ๋ฐœ์ž๊ฐ€ ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋งŒ๋“ค๋•Œ ์ฐธ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ํ•œ์ฐฝ ์ฝ”๋กœ๋‚˜๊ฐ€ ์‹œ์ž‘๋ ๋•Œ์ฏค์ด์—ฌ์„œ ๋ฉด์ ‘๋„ ์•ˆ์žกํžˆ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•˜๊ธฐ์—” ๋„ˆ๋ฌด๋‚˜๋„ ๋ถˆ์•ˆํ•ด์„œ ๋งˆ์Šคํฌ๋ฅผ ์‚ด์ˆ˜..

node.js 2022.10.10

nestjs + serverless + lambda + apiGateway ์‚ฌ์šฉํ•˜๊ธฐ

์ด ๊ท€์—ฌ์šด ๊ณ ์–‘์ด๋Š” nodejs ํ”„๋ ˆ์ž„์›Œํฌ์ธ nestjs์˜ ๊ท€์—ผ๋‘ฅ์ด ๋งˆ์Šค์ฝ”ํŠธ ๋กœ๊ณ ์ด๋‹ค. node๊ณ„์˜ ์Šคํ”„๋ง๋ถ€ํŠธ ๊ฐ™์€ ๋Š๋‚Œ์ธ๋ฐ ๊ธฐ์กด์˜ nodejs์˜ ๋Œ€ํ‘œ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์ธ express์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์˜์กด์„ฑ ์ฃผ์ž… ๊ฐœ๋…๋„ ์žˆ๊ณ  ์ด๋ฏธ ๋งˆ๋ จ๋œ ๋ฏธ๋“ค์›จ์–ด ๋“ฑ์ด ์žˆ์–ด ๊พธ์ค€ํžˆ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ๋Š” nodejs์˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๋‚˜๋Š” ๊ท€์—ฌ์šด ๊ณ ์–‘์ด๊ฐ€ ์ข‹์€ nestjs๊ฐ€ ์ฃผ์ข…๋ชฉ์ธ ๊ฐœ๋ฐœ ์ฃผ๊พธ๋ฏธ ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์„œ๋ฒ„๊ฐ€ ์—†๋‹ค๋Š” ๋œป์ธ๋ฐ, ์ข€ ๋” ๊ฐœ๋ฐœ์ ์œผ๋กœ ์ ‘๊ทผํ•˜์ž๋ฉด ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋ผ๋Š” ๋Š๋‚Œ์œผ๋กœ ํ•ด์„์„ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์ข€ ๋” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•˜๋Š” ๋Š๋‚Œ์œผ๋กœ ์ง„์งœ ์„œ๋ฒ„๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ทธ์ € ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋œ์–ด๋‚ธ ์˜๋ฏธ์˜ ์„œ๋ฒ„๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋น ๋ฅด๊ฒŒ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ์‚ฌ๋‹ค..

node.js 2022.08.23

nestjs swagger ๋ณด์•ˆ์„ค์ •ํ•˜๊ธฐ

main.ts const basicAuth = require('express-basic-auth'); app.use( ['/api'], basicAuth({ challenge: true, users: { [process.env.SWAGGER_USER]: process.env.SWAGGER_PASSWORD, }, }), ); ํŠน์ •ํ•œ url์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณด์•ˆ์„ ์„ค์ •ํ• ์ˆ˜์žˆ๋Š” ๋ชจ๋“ˆ๊ณผ ์ฝ”๋“œ ์Šค์›จ๊ฑฐ๋ฅผ ์„ค์ •ํ• ๋•Œ api๊ฐ€ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๊ธฐ๋•Œ๋ฌธ์— ์ด ๊ฒฝ๋กœ์ผ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณด์•ˆ์ด ๊ฑธ๋ฆฌ๊ฒŒ๋œ๋‹ค. ๋ณดํ†ต ์ด๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ํŒŒ์ผ์—์„œ ์„ค์ •ํ•˜์—ฌ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉ ํ•˜๋ฉด ๋œ๋‹ค.

node.js 2022.04.06

nestjs passport base64 ์˜ต์…˜ ์‚ฌ์šฉํ•˜๊ธฐ

์ƒํ™ฉ 1. ์Šคํ”„๋ง์œผ๋กœ ๊ตฌ์ถ•๋œ api์„œ๋ฒ„๊ฐ€ ์กด์žฌ 2. ์Šคํ”„๋ง์˜ ๋ชจ๋“  api๋ฅผ nest๋กœ ์ปจ๋ฒ„ํŒ…ํ•ด์•ผ๋จ. 3. ๋‹จ๊ณ„๋ณ„ ์ปจ๋ฒ„ํŒ… ์ž‘์—…์ค‘ ๊ฐ™์€ ์†”ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ jwt token์ด nest์„œ๋ฒ„์—์„œ๋Š” ์ธ์ฆ์ด ์•ˆ๋˜๋Š” ์ƒํ™ฉ ๋ฌธ์ œ์  1. ์Šคํ”„๋ง์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์†”ํŠธํ‚ค๊ฐ’์„ base64๋กœ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์‚ฌ์šฉ 2. ๋„ค์ŠคํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์†”ํŠธํ‚ค๊ฐ’ ์ธ์ฝ”๋”ฉ์‚ฌ์šฉํ•˜์ง€์•Š์Œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ 1. PassportStrategy ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉ์‹œ secretOrKey๋ฅผ Buffer.from('ํ‚ค๊ฐ’', 'base64') ๋กœ ๊ฐ์‹ธ๋ฉด ๋จ. 2. ๋ฆฌํ”„๋ž˜์‰ฌ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž‘์—… ์Šฌํ”„๋‹ค ๋‚˜์˜ 3์ผ์ด ์ด๋ ‡๊ฒŒ ๋‹จ ๋ช‡์ค„์ด๋ผ๋‹ˆ

node.js 2022.02.22

DND 5๊ธฐ 8์ฃผ์ฐจ - ์ตœ์ข…๋ฐœํ‘œ

8์›”21์ผ ๋””์•ค๋””๊ฐ€ ์ง„์งœ ๋๋‚ฌ๋‹ค. ์น˜์—ดํ–ˆ๋˜ ๋‚˜์˜ 8์›”์ด ์ด๋ ‡๊ฒŒ ์ง€๋‚˜๊ฐ€๋Š”๊ตฌ๋‚˜ ๊ฒฐ๊ณผ๋ฌผ์€ ์•„๋ž˜์˜ ํ•œ์ค„๋กœ ํ‘œํ˜„ํ•  ์ˆ˜์žˆ๋‹ค. https://moida.club/ ์‚ฌ์‹ค ์•„์ง ํฐ ์™„์„ฑ๋ณธ์€ ์•„๋‹ˆ์ง€๋งŒ 8์ฃผ๊ฒฐ๊ณผ๋ฌผ์„ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€๋ฅผ ์‹œ์—ฐํ•˜๊ธฐ ์œ„ํ•ด ๋”๋ฏธ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด๋†“์€ ์ƒํƒœ์ด๋‹ค. MOIDA moida.club ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ ์‹œ์ž‘์€ ์šฐ๋ฆฌ๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ํ•œ ์„œ๋น„์Šค์ด๋‹ค. ๊ฐ‘์ž๊ธฐ ๊ฒฐ์„ฑ๋œ ๋””์•ค๋”” ์กฐ์—์„œ ์ฒซ๋ฒˆ์งธ ๋ชจ์ž„์„ ์žก์„๋•Œ ๊ต‰์žฅํžˆ ๊นŒ๋‹ค๋กœ์› ๋‹ค. ๊ฐœ๊ฐœ์ธ์˜ ๊ฐ์ž ์‚ฌ์ •์ด ์žˆ์—ˆ๊ณ  "๋ฉฐ์น ์€ ๋ช‡์‹œ๋ถ€ํ„ฐ ๋ช‡์‹œ๊นŒ์ง„ ๋˜๋Š”๋ฐ ์–ธ์ œ๋ถ€ํ„ด ์•ˆ๋ผ์š”", "์•„ ๊ทธ๋Ÿผ ์ด๋‚  ๋ช‡์‹œ์— ๋ณผ๊นŒ์š”?","์•„ ์ € ๊ทธ๋‚ ์€ ๋ช‡์‹œ๋ถ€ํ„ฐ ๋ผ์š”" ๋ช‡๋ฒˆ์ด๊ณ  ์•ฝ์†์„ ์žก๊ธฐ๊ฐ€ ํž˜๋“ค์–ด์„œ ์• ๋ฅผ ๋จน์—ˆ๋‹ค. ์ด๋Ÿฐ ์šฐ๋ฆฌ์˜ ๋ถˆํŽธํ•จ์„ ์‹œ์ž‘์œผ๋กœ ์šฐ๋ฆฌ์˜ ์„œ๋น„์Šค๋Š” ์‹œ์ž‘๋˜์—ˆ๋‹ค. ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ์€ 2๊ฐ€์ง€์˜ ๊ธฐ๋Šฅ์ด๋‹ค..

node.js 2021.08.29

DND 5๊ธฐ 7์ฃผ์ฐจ - ๋„ฅ์ŠคํŠธ ํ”Œ๋žœ ๋ฐ ํšŒ๊ณ 

๋”ฉ์ด์ œ ์ง„์งœ ๋งˆ์ง€๋ง‰์ด ๋‹ค๊ฐ€์˜ค๊ณ ์žˆ๋‹ค. ์‚ฌ์‹ค์€ 14์ผ์ด ์ตœ์ข…๋ฐœํ‘œ์˜€๋Š”๋ฐ ๋ฌด์Šจ์ผ์ธ์ง€ ์ผ์ฃผ์ผ ๋” ๋ฏธ๋ค„์ ธ์„œ 21์ผ์ด ์ตœ์ข… ๋ฐœํ‘œ์ผ์ด๋˜์—ˆ๋‹ค. ๋””์•ค๋””๋„ ์Šฌ์Šฌ ๋งˆ๋ฌด๋ฆฌ ๋˜์–ด๊ฐ€๋ฉด์„œ ๋‚˜์˜ ๊ฐœ์ธํšŒ๊ณ ๋ก์„ ์ž‘์„ฑํ•˜๊ณ  ์ดํ›„์— ํ”Œ๋žœ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด์•„์•ผ๊ฒ ๋‹ค. ๋””์•ค๋”” ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ํ˜„์—…์—์„œ์˜ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„๋“ค์„ ์ฑ„์šฐ๊ณ  ๋Š๋ผ๊ณ  ์žˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ ํšŒ์‚ฌ๋Š” ์ด์ต, ๋งค์ถœ๊ณผ ๊ฐ™์ด ๋ˆ์— ์ง์ ‘์ ์ธ ๊ด€๊ณ„๊ฐ€ ์žˆ์–ด ๋น ๋ฅธ ๊ฒฐ๊ณผ๋ฌผ์„ ๋‚ด๋Š” ๊ฒŒ 1์ˆœ์œ„๋ผ ๊ฐœ๋ฐœ์˜ ์›๋ก ์ ์ธ ๋ถ€๋ถ„๋“ค์„ ์ƒ๋žตํ•˜๊ณ  api ๊ณต์žฅ์ฒ˜๋Ÿผ ์ผ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋‹ค. ๋””์•ค๋”” ํ”„๋กœ์ ํŠธ๋Š” ํ•œ ์ฃผ ํ•œ ์ฃผ (์–ด๋Š ์ •๋„์˜) ๊ฐ•์ œ์„ฑ์„ ๋ถ€์—ฌํ•˜๊ณ  ๊ธฐํš๋ถ€ํ„ฐ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ์ดํ›„์˜ ์šด์˜ ๋“ฑ์˜ ์ „๋ฐ˜์ ์ธ ์„œ๋น„์Šค์˜ A-Z์˜ ์ œ์ž‘ ๊ณผ์ •์˜ ์ง์ ‘ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ •๋ง ํฐ ์žฅ์ ์ด๋‹ค. ๋ฐฐ์šด ์ ์œผ๋กœ๋Š” ์ฒซ ๋ฒˆ์งธ, ๊นƒ..

node.js 2021.08.16

DND 5๊ธฐ 6์ฃผ์ฐจ - api์ œ์ž‘ ๋ฐ ํšŒ๊ณ 

๊ธฐํš๋ถ€ํ„ฐ ๋กœ๊ณ ์„ ์ • ๋“ฑ์„ ํ•จ๊ป˜ ์ž‘์—…ํ•˜๊ณ ์žˆ์–ด์„œ ์•„์ง ํ”„๋ก ํŠธ๊ฐ€ ๋‚˜์˜ค์ง„ ์•Š์•˜์ง€๋งŒ ๋ฐฑ์—”๋“œ api ๋ช…์„ธ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  api๋ฅผ ์ž‘์—… ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•˜๋ฉฐ ์ž‘์—…ํ•˜๋ฉด์„œ ์–ด๋ ค์› ๋˜ ์ ์„ ๋˜๋Œ์•„๋ณด์•„์•ผ๊ฒ ๋‹ค. - guards ๋‚˜๋„ ๊ทธ๋ ‡๊ณ  ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ๋ถ„๋„ ๊ทธ๋ ‡๊ณ  nest๋ฅผ ์ ‘ํ•œ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— express์—์„œ middleware๋กœ ์œ ์ €์˜ authentication์„ ๊ฒ€์‚ฌํ•˜์˜€๋Š”๋ฐ nest์—์„œ๋Š” ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ์กด์žฌํ•˜์—ฌ guards๋กœ ์ธ์ฆ์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์™ธ์— interceptor, pipe๋“ฑ์„ ๊ฑฐ์ณ ์‹ค์ œ ์„œ๋น„์Šค๋‹จ์œผ๋กœ ๋„˜์–ด์˜ฌ์ˆ˜์žˆ๋‹ค. ์Šคํ”„๋ง๋ถ€ํŠธ์™€ ์ƒ๋‹นํžˆ ํก์‚ฌํ•˜๋‹ค๊ณ  ํ•˜์ง€๋งŒ ๋‚˜๋Š” ์Šคํ”„๋ง๋ถ€ํŠธ๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ธฐ๋•Œ๋ฌธ์— ๊ตฌ๋ฆ„์ฒ˜๋Ÿผ ๋‘ฅ๋‘ฅ ๋– ์žˆ๋Š” ๊ฐœ๋…์„ ์žก๊ธฐ๊ฐ€ ํž˜๋“ค์—ˆ๋‹ค. ์ด๋Ÿด๋• ๋ณดํ†ต์˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ฐœ๋…์„ ์žก๋Š”๊ฒŒ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. guar..

node.js 2021.08.08

DND 5๊ธฐ 5์ฃผ์ฐจ - api์ œ์ž‘

์™€ ์ง„์งœ ํž˜๋“ค๋‹ค ๋นจ๋ฆฌ nest์™€ ts, typeorm๊ณผ ์นœํ•ด์ ธ์•ผ๊ฒ ๋‹ค ๋Œ€๋žต์ ์ธ ์™€์ด์–ดํ”„๋ ˆ์ž„์ด ๋‚˜์™€์„œ ํ”„๋ก ํŠธ๋ถ„๋“ค๊ณผ api๋ช…์„ธ์„œ๋ฅผ ์ œ์ž‘ํ•˜์˜€๊ณ  ๋ฐฑ์—”๋“œ๋ถ„๊ณผ ๋งŒ๋‚˜์„œ ๊ธฐ๋Šฅ๋ณ„๋กœ ํ•„์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ์ •๋ฆฌํ–ˆ๊ณ  api๋ฐฐ๋ถ„์„ ํ–ˆ๋‹ค. ๋„ค์ŠคํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์š”์ฒญ์ด ๋“ค์–ด์™”์„๋•Œ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ต์Šคํ”„๋ ˆ์Šค์—์„œ ๋กœ๊ทธ์ธํ•œ ํšŒ์›์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฏธ๋“ค์›จ์–ด๋กœ ์ œ์ž‘ํ•˜๊ณ  ์‹ค์ œ ๋™์ž‘๋ถ€์—์„œ ์œ ์ €๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์œ ์ € ๊ถŒํ•œ์„ ์ฒดํฌํ•˜์—ฌ ์ ‘๊ทผ์„ ๋ง‰์•„์ฃผ๋Š”๋ฐ ๋„ค์ŠคํŠธ์—์„œ๋Š” ๊ฐ€๋“œ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ์œ ์ €๋ฅผ ๋ฐ”๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์•Œ๋ฉด ๋„ค์ŠคํŠธ๋ฅผ ์ข€ ๋” ์ž˜ ์“ธ์ˆ˜์ž‡์„๊ฒƒ ๊ฐ™๋‹ค. ์ง„์งœ ๋‚œ ๊ฐˆ๊ธธ์ด ๋ฉ€์–ด๋”ฐ... ๊ฐœ๋ฐœ์ž๋Š” ์ง„์งœ ํƒ€๊ณ ๋‚˜๋Š”๊ฐ€๋ณด๋‹ค..... ์žฌ๋ฐŒ๊ธฐ๋งŒ ํ•˜๊ณ  ์ž˜ ํ•˜์งˆ ๋ชปํ•ด์„œ ๋„ˆ๋ฌด ์Šฌํ”„๋‹ค.. ๋‚˜๋Š” ๋˜‘๋˜‘ํ•˜์ง€ ์•Š์œผ๋‹ˆ๊นŒ ๋…ธ๋ ฅํ•ด์•ผ์ง€..ํ•˜.. ์šฐ๋ฆฌ ํ”„..

node.js 2021.07.31

DND 5๊ธฐ 4์ฃผ์ฐจ - ์ค‘๊ฐ„์ ๊ฒ€

์ •์‹ ์—†๋Š” ์ผ์ฃผ์ผ์ด์˜€๋‹ค. ์ผ๋‹จ ๋‚˜๋Š” ์ €๋ฒˆ์ฃผ๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ‡ด์‚ฌ๋ฅผ ํ–ˆ๊ณ  ์šด์ด ์ข‹๊ฒŒ๋„ ๋‚˜๋ฅผ ์•Œ์•„๋ด์ฃผ์‹œ๋Š” ๊ณณ์„ ๋น ๋ฅด๊ฒŒ ๋งŒ๋‚˜ ์ด์ง์„ ํ•˜๊ฒŒ๋˜์—ˆ๋‹ค. ๋„ˆ๋ฌด ๋‹คํ–‰์ธ ๊ฒƒ์€ ์ด๋ฒˆ dndํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๊ด€์‹ฌ์ด ๊ฐ„ ๊ธฐ์ˆ ? ์ด๋ผ๊ณ  ํ•ด์•ผ๋˜๋‚˜ ์š”์ฆ˜ ๊ด€์‹ฌ์ด ๊ฐ”๋˜ ๊ธฐ์ˆ ์„ ์ ‘๋ชฉํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋‹ค๊ธธ๋ž˜ ํšŒ์‚ฌ์ผ ๋ฐ”์˜๋‹ค๋Š” ํ•‘๊ณ„๋กœ ๋””์•ค๋””๋ฅผ ํƒˆ์ฃผํ•  ์ผ์€ ์—†๊ฒ ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค. ํšŒ์‚ฌ์˜ ๊ธฐ์ˆ  ๋ฐ ๋ชจ๋“ˆ์€ nestjs, ts, typeorm ๋“ฑ์ด๋‹ค. ํ˜„์žฌ dndํ”„๋กœ์ ํŠธ๋Š” express, ts, typeorm์ธ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋งŒ ๋นผ๊ณ  ๋™์ผํ•˜๋‹ค. 1. typeorm ๊ด€๊ณ„์„ค์ • ๋ถ€๋„๋Ÿฌ์šด ์ด์•ผ๊ธฐ์ด์ง€๋งŒ express์— sequelize orm์„ ์‚ฌ์šฉํ–ˆ์„๋•Œ์—๋Š” ๊ด€๊ณ„์„ค์ •์„ ์ž˜ ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด์œ ๋Š” ํšŒ์‚ฌ์—์„œ ์š”๊ตฌํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ๋„ˆ๋ฌด ์ž์ฃผ๋ฐ”๋€Œ๋Š” ์ƒํ™ฉ์—์„œ ํ…Œ์ด๋ธ”์„ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์ƒ์„ฑํ•˜๊ณ ..

node.js 2021.07.24

DND 5๊ธฐ 3์ฃผ์ฐจ - ๋ฐฑ์—”๋“œ ์ ๊ฒ€

๋””์•ค๋””๊ฐ€ ์‹œ์ž‘ํ•œ์ง€ ์‚ผ์ฃผ๊ฐ€ ์ง€๋‚ฌ๋‹ค. ๋‚˜๋Š” ์‹ค๋ฌด์—์„œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๊ธด ํ•˜์ง€๋งŒ ์ œ๋Œ€๋กœ ๊ฐ–์ถฐ์„œ ํ•œ ์ ์€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด http ์‘๋‹ต์ฝ”๋“œ๋ฅผ ๊ฐ„์†Œํ™”ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค๊ฑฐ๋‚˜ git branch ์ „๋žต์„ ์•Œ๊ณ ๋Š” ์žˆ์ง€๋งŒ ๊ตณ์ด feature branch๋ฅผ ๋”ฐ์ง€ ์•Š๋Š”๋‹ค๊ฑฐ๋‚˜.. ์‚ฌ์‹ค ๋””๋น„์˜ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ตœ์ ์œผ๋กœ ๋Œ์•„๊ฐˆ๊ฑธ ์•Œ๊ณ ์žˆ์Œ์—๋„ ์‹œ๊ฐ„์ด ์—†์–ด์„œ ์„œ๋ฒ„๋‹จ์—์„œ ๊ฐ€๊ณตํ•œ๋‹ค๊ฑฐ๋‚˜.. ์™€ ์ด๋ ‡๊ฒŒ ๋ณด๋‹ˆ๊นŒ ์ตœ์•…์ด๋„ค ๋‚˜(ใ…‹ใ…‹ใ…‹) ๋‚ด๊ฐ€ ์ด์ง์„ ๊ฒฐ์‹ฌํ•˜๊ฒŒ ๋œ ์ด์œ ์ด๊ธฐ๋„ ํ•œ ์ด๋Ÿฐ ์ฃผ๋จน๊ตฌ๊ตฌ์‹์˜ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ์‚ฌ์ด๋“œํ”„๋กœ์ ํŠธ๊ฐ€ ๊ทœ๋ชจ๋Š” ์ž‘์ง€๋งŒ ์ข€ ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„๋“ค์„ ์žก๋Š”๋‹ค๋Š” ๋Š๋‚Œ์œผ๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊พธ๋ ค๊ฐˆ์ง€ ๋ฐฑ์—”๋“œ ๋™๋ฃŒ๋ถ„๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„์–ด ๋ณด์•˜๋‹ค. ์ผ๋‹จ ๊ตฌ์ฒด์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋‚˜์˜ค์ง€์•Š์•„ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์ด์Šˆ๋ฅผ ๋‚˜๋ˆˆ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ํ–‰์œ„๋Š” ํ•˜์ง€๋ชปํ•œ๋‹ค. ์•ž๋‹จ..

node.js 2021.07.16