NestJS๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - 4 (configuration ์ ์šฉ)

์–ด๋Š ์–ธ์–ด์ด๋˜๊ฐ„์— ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฐ’, ์ฆ‰ configuration ์ด๋ผ๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, Nest.js์—์„œ๋„ configuration ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ด์ฃผ๊ณ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ๋ชจ๋“ˆ์€ dotenv ๋ชจ๋“ˆ์„ ๊ธฐ๋ฐ˜ํ•ด์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผํ•  ๋ณ€์ˆ˜ ๊ฐ’์ด๊ฑฐ๋‚˜ ํ˜น์€ ๊ฐœ๋ฐœ๋ ˆ๋ฒจ (ํ”„๋กœ๋•์…˜, ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŒ… ๋“ฑ๋“ฑ..) ์— ๋”ฐ๋ฅธ ๋‹ค๋ฅธ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ์…‹ํŒ…ํ•˜๊ฒŒ ๋˜๋Š” ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์ด์ „์— ํฌ์ŠคํŒ…ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์ •๋ณด๊ฐ™์€ ๊ฒฝ์šฐ๋„ config ํŒŒ์ผ๋กœ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์„œ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๋จผ์ € ์…‹ํŒ…ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. 1. @nestjs/config ๋ชจ๋“ˆ ์ธ์Šคํ†จ $ npm i --save @nestjs/config or $ yarn add @nestjs/config ne..

Node.js/Nest.js 2023. 2. 22. 00:03
NestJS๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - 3 (DB์—ฐ๋™)

์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์ธ๋ฐ, Nest.js์—์„œ๋„ ๊ณต์‹์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ด์ฃผ๊ณ , Typescript์˜ ORM์ธ TYPE ORM์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ํ”„๋กœ์ ํŠธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๋™์‹œ์ผœ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•„์š”ํ• ํ…๋ฐ, ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ณ„๋„์˜ ์„œ๋ฒ„๋‚˜ ํ˜น์€ ํด๋ผ์šฐ๋“œ์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์›๊ฒฉ์œผ๋กœ ๋ถ™์–ด์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‚˜, ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ์šฉ๋„์ด๋‹ˆ๋งŒํผ DB๋„ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋„์›Œ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (๋„์ปค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.) 1. MYSQL image ๋‹ค์šด๋ฐ›๊ธฐ $ docker pull mysql ๋ฒ„์ „์„ ๋”ฐ๋กœ๊ธฐ์ž…ํ•˜์ง€ ์•Š๊ณ  image๋ฅผ ๋‹ค์šด๋ฐ›์œผ๋ฉด ์ตœ์‹ ๋ฒ„์ „์„ ๊ธฐ์ค€์œผ๋กœ mys..

Node.js/Nest.js 2023. 2. 16. 23:33
NestJS๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ - 2 (๋””๋ ‰ํ† ๋ฆฌ๊ตฌ์„ฑ)

nest cli๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์ด์ „์— ํ•™์Šตํ•ด๋ณด์•˜๋Š”๋ฐ, ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธˆ ๋” ๋‹ค๋“ฌ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์˜ค๋Š” ๊ตฌ์กฐ๋ฅผ ์ตœ๋Œ€ํ•œ ์ง€ํ‚ค๋˜, ์ฝ”๋”ฉํ•˜๊ธฐ์— ์ข€ ๋” ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ณ  ๊ฐ„ํŽธํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Nest js์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ตฌ์„ฑ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์—ญํ• ์„ ์„ค๋ช…ํ•˜์ž๋ฉด controller : ๋ผ์šฐํŠธ๋ฅผ ๊ธฐ์ˆ  service : ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ธฐ์ˆ  module : Nest ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ตฌ๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต (Nest์—์„  ์ ์–ด๋„ ํ•˜๋‚˜์˜ root ๋ชจ๋“ˆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค) ๋ณด๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ, ๋ชจ๋“  ๊ธฐ๋Šฅ๋“ค์„ ์ € ์„ธ ๊ฐœ์˜ ํŒŒ์ผ์— ๋‹ค ๋„ฃ์„ ์ˆœ ์—†๊ฒ ์ฃ . ๊ทธ๋Ÿผ ์ €๊ฑธ ์–ด๋–ป๊ฒŒ ๋‚˜๋ˆŒ์ง€๋ฅผ ๋ณด์ž๋ฉด, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ € ์„ธ ๊ฐ€์ง€์˜ ๋ถ„๋ฅ˜๋Œ€๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•์ด ..

Node.js/Nest.js 2023. 2. 14. 23:56
8.7 sequelize ์‚ฌ์šฉ ํ™˜๊ฒฝ ์„ค์ • ๋ณ€๊ฒฝ(useable multiple database in sequelize)

์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ์–ด์„œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ์ถ”ํ›„์— ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›๋ž˜๋Š” ํ˜ผ์ž ๊ณต๋ถ€๋ชฉ์ ์œผ๋กœ ์“ฐ๋‹ค๊ฐ€ ์‹ค๋ฌด์—์„œ ์ ์šฉํ•˜๋ ค๋‹ค๋ณด๋‹ˆ ๊ธฐ์กด์— ์“ฐ๋˜ ๊ตฌ์กฐ์—์„œ ๋ณ€๊ฒฝ์˜ ํ•„์š”์„ฑ์˜ ๋Š๊ปด์กŒ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒ์šฉ๊ณผ ๊ฐœ๋ฐœํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ•„์š”์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์„œ๋ฒ„DB์™€ ์ƒ์šฉ์„œ๋ฒ„DB๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— entity ์ƒ์„ฑ๋„ ๋ณ„๊ฐœ๋กœ ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ์ฑ•ํ„ฐ๊นŒ์ง€ ์ง„ํ–‰ํ–ˆ๋‹ค๋ฉด sequelize ๋ฌธ๋ฒ• ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ js ํŒŒ์ผ๋“ค (๋ณดํ†ต entity๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.) ์ด ์ƒ์„ฑ๋˜์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„์™€๊ฐ™์€ ์ œ์•ฝ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•ด์•ผํ•œ๋‹ค๋ฉด index.js ํŒŒ์ผ๋ถ€ํ„ฐ sequelize-auto ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ entity๋ฅผ ์ƒ..

Node.js/Node.js ๊ณต๋ถ€ 2019. 10. 27. 17:08
8.6 sequelize-auto ๋ชจ๋“ˆ ์‚ฌ์šฉํ•˜๊ธฐ

์˜ค๋žœ๋งŒ์— ๋‹ค์‹œ ๊ธ€์„ ์“ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Sequelize๋ฅผ ์“ธ ์ผ์ด ๊ฐ‘์ž๊ธฐ ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ๋„ค์š”~ ์ด์ „๊นŒ์ง€๋Š” sequelize๋ฅผ ์ด์šฉํ•ด define ๋œ ํ…Œ์ด๋ธ” ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ง„ํ–‰์„ ํ–ˆ์—ˆ๋Š”๋ฐ, ๋งŒ์•ฝ Models ๋””๋ ‰ํ† ๋ฆฌ์— ์ œ๊ฐ€ ์ •์˜ํ•˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๋ฉด ๊ทธ ํ…Œ์ด๋ธ”์„ sequelize๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ํ”ํžˆ ๋งํ•˜๋Š” DML๊ตฌ๋ฌธ์€ sequelize ์—์„œ๋Š” Model ๊ฐ์ฒด์—์„œ๋งŒ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ ์ž…๋‹ˆ๋‹ค. ์ด ๋ง์€ ์ฆ‰, models ๋””๋ ‰ํ† ๋ฆฌ์— ํ…Œ์ด๋ธ” ์ •๋ณด ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ findOne์ด๋‚˜ update ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทผ๋ฐ ๋‚ด๋ถ€ DB์—๋Š” ์žˆ๋Š”๋ฐ ์ œ models ๋””๋ ‰ํ† ๋ฆฌ์— ๊ทธ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ js ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ๊ฒฐ๊ตญ ๊ทธ ํ…Œ์ด๋ธ”์€ ์กฐ์ž‘์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด models ๋””๋ ‰ํ† ๋ฆฌ์•ˆ์— ์ด ๋‘๊ฐœ์˜ ํŒŒ..

DB์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€๋กœ ๋„˜๊ธฐ๊ธฐ

์ด์ „ ํฌ์ŠคํŒ…์—์„œ๋Š” DB๋ฅผ ์…‹ํŒ…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ DB์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•ด์•ผํ•˜๊ฒ ์ฃ ? ๊ทธ๋Ÿผ server์™€ client ๊ฐ„์˜ ํ†ต์‹ ์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์•ž ๋‹จ๊ณผ ๋’ท ๋‹จ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ . commuity ๋ผ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ ์šฉ์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” pug ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋•Œ๋ฌธ์— html ํ˜•ํƒœ๊ฐ€ ์กฐ๊ธˆ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€ํ™˜์„ ํ•ด์ฃผ๋Š” ์‚ฌ์ดํŠธ๋“ค์ด ๋งŽ์ด ์žˆ์œผ๋‹ˆ ๋ฐ”๊ฟ”์„œ ์‚ฌ์šฉํ•˜์…”๋„ ๋˜๊ณ  ์•„๋‹ˆ๋ฉด ๊ฐœ์ธ์ ์œผ๋กœ ๊ฒŒ์‹œํŒ ํผ์„ ๋งŒ๋“ค์–ด์„œ ์“ฐ์…”๋„ ๋ฉ๋‹ˆ๋‹ค. views/commuity.pug123456789101112131415161718192021222324252627282930313233script(src='https://ajax.googleapis.com/ajax/libs/jquery/..

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ