์ด๋ฒˆ์— MomFit์ด๋ผ๋Š” ์กธ์—… ์ž‘ํ’ˆ์„ ์ง„ํ–‰ํ•˜๋Š” ๋„์ค‘, ํŒ€์›๋“ค๋ผ๋ฆฌ ๊ณต์šฉ DB๋ฅผ ๋งž์ถ”๊ฒŒ ๋˜์—ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ๊ฐ์ž ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. Docker๋กœ MySQL์„ ๋„์šฐ๊ณ , ๊ฐ์ž .env ํŒŒ์ผ์— localhost๋ฅผ ๋„ฃ๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ๊ตฌ์กฐ์˜€๋‹ค.

์ ์  ์™„์„ฑ์ด ๋˜์–ด๊ฐˆ์ˆ˜๋ก ๊ณต์šฉ DB์˜ ํ•„์š”์„ฑ(๊ฒŒ์‹œํŒ ํ…Œ์ŠคํŠธ, ๋กœ๊ทธ์ธ ๋ฌธ์ œ ๋“ฑ)์„ ๋А๋ผ๊ฒŒ ๋˜์—ˆ์ง€๋งŒ, ๋ฐฐํฌ ๋‹จ๊ณ„๋Š” ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— AWS ๊ฐ™์€ ์ •์‹ ๋ฐฐํฌ ํ™˜๊ฒฝ์€ ์•„์ง ์ด๋ฅด๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

๊ธˆ์•ก์ ์ธ ๋ฌธ์ œ๋„ ์žˆ๊ธฐ์— ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Railway๋ฅผ ์„ ํƒํ•˜์˜€์œผ๋ฉฐ, Railway์—์„œ MySQL ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ DB๋ฅผ ํŒ€ ๊ณต์šฉ ๊ฐœ๋ฐœ DB๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.


์™œ ๊ณต์šฉ DB๊ฐ€ ํ•„์š”ํ–ˆ์„๊นŒ?

๋กœ์ปฌ DB๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

ํšŒ์›๊ฐ€์ž…๋„ ๋˜๊ณ , ๋กœ๊ทธ์ธ๋„ ๋˜๊ณ , ๊ฒŒ์‹œํŒ ๊ธ€๋„ ์ž˜ ์ €์žฅ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ์„œ ์‹œ์ž‘๋œ๋‹ค. ๋‚ด๊ฐ€ ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ฉด ๋‚ด ์ปดํ“จํ„ฐ DB์—๋งŒ ์ €์žฅ๋œ๋‹ค. ํŒ€์›์ด ๊ฐ™์€ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž๋ผ๊ณ  ๋‚˜์˜จ๋‹ค. ๊ฒŒ์‹œํŒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€์€ ๋‚˜๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค..

์ด ์ƒํƒœ์—์„œ๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ์ž ์ž˜ ๋Œ์•„๊ฐ€๋Š” ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์ด์–ด์•ผ ํ•œ๋‹ค.


ํ™˜๊ฒฝ ๋ถ„๋ฆฌ

๋กœ์ปฌ DB๋ฅผ ์—†์•ค๋‹ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. AppModule์—์„œ


ConfigModule.forRoot({

  isGlobal: true,

  envFilePath: `.env.${process.env.NODE_ENV || 'local'}`,

})

์ด๋Ÿฐ์‹์œผ๋กœ ์„ค์ •์„ ํ•˜์—ฌ ์‹คํ–‰ํ™˜๊ฒจ์—ฅ ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ ํŒŒ์ผ์„ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค.

npm run start๋กœ ์„œ๋ฒ„ ์‹คํ–‰ โ†’ .env.local ํŒŒ์ผ ์‚ฌ์šฉ NODE_ENV=dev npm run start๋กœ ์„œ๋ฒ„ ์‹คํ–‰ โ†’ .env.dev ํŒŒ์ผ ์‚ฌ์šฉ


Railway ๊ณต์šฉ DB ์„ค์ •

Railway์—์„œ MySQL ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ ‘์† ์ •๋ณด๊ฐ€ ์ œ๊ณต๋œ๋‹ค.
Host, Port, Username, Password, Database ์ด๋ฆ„์„ ํ™•์ธํ•œ ๋’ค .env.dev ํŒŒ์ผ์— ์ž…๋ ฅํ•œ๋‹ค. ์ด์ œ ๊ณต์šฉ DB ๋ชจ๋“œ๋กœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํŒ€์› ๋ชจ๋‘ ๋™์ผํ•œ DB๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒ ๋œ๋‹ค.

์ฒ˜์Œ ๊ณต์šฉ DB๋Š” ์•„์˜ˆ ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๋‹ค. ๊ทธ๋ž˜์„œ seed ์ž‘์—…์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋“ค์„ ์‚ฝ์ž…ํ•˜์˜€๋‹ค. (์ด ๊ณผ์ •์—์„œ ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด ๋ฌธ์ œ์™€ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ์ง€๋งŒ..์ž˜ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค)

๋•๋ถ„์— ํ•œ ๋ช…์ด ํšŒ์›๊ฐ€์ž…ํ•˜๋ฉด ๋‹ค๋ฅธ ํŒ€์›๋„ ํ•ด๋‹น ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฒŒ์‹œํŒ ๊ธ€๋„ ์„œ๋กœ ๊ณต์œ ๋œ๋‹ค.


์ •๋ฆฌ

Railway๋Š” ๋ณ„๋„์˜ ์„œ๋ฒ„ ๊ตฌ์ถ• ์—†์ด MySQL ์ธ์Šคํ„ด์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋‹ค.

๋ฐฐํฌ ๋‹จ๊ณ„๊นŒ์ง€๋Š” ์•„๋‹ˆ์ง€๋งŒ, ํŒ€ ๋‹จ์œ„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งž์ถ”๊ธฐ์—๋Š” ์ถฉ๋ถ„ํžˆ ํšจ์œจ์ ์ธ ์„ ํƒ์ธ๊ฑฐ๊ฐ™๋‹ค. ์ด๋ฒˆ ๊ณต์šฉ DB ๊ตฌ์ถ•์„ ํ†ตํ•ด ๊ฐ์ž๊ฐ€ ์•„๋‹Œ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: