๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Side project

[์‚ฝ์งˆ๋กœ๊ทธ] Heroku๋กœ Strapi(with PostgreSQL) ๋ฐฐํฌํ•˜๊ธฐ 2/2

์ด ๊ธ€์€ Heroku Free tier๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•œ ํŠœํ† ๋ฆฌ์–ผ์ธ๋ฐ 2022๋…„ 11์›” 28์ผ์ž๋กœ Heroku์—์„œ Free tier๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฃŒ ๋ฐฐํฌ๋ฅผ ํ•˜๊ธฐ ์›ํ•˜๋Š” ๋ถ„๋“ค์€ ๋‹ค๋ฅธ ํŠœํ† ๋ฆฌ์–ผ๋“ค์„ ์ฐธ๊ณ ํ•ด๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค. 

(์ด ๊ธ€์€ 2021๋…„ 4์›” 14์ผ ๊ธฐ์ค€ ๊ธ€์ด๋‹ค.)

์ง€๋‚œ ํŽธ์— Heroku์— ๋ฐฐํฌ๊นŒ์ง€ ์™„๋ฃŒํ–ˆ๋Š”๋ฐ Github์— ์˜ฌ๋ ค์„œ ์ž๋™ ๋ฐฐํฌ๊ฐ€ ๋˜๋„๋ก ์„ค์ •์„ ๊ณ„์†ํ•ด๋ณด๊ฒ ๋‹ค. 

 

[์‚ฝ์งˆ๋กœ๊ทธ] Heroku๋กœ Strapi(with PostgreSQL) ๋ฐฐํฌํ•˜๊ธฐ

(์ด ๊ธ€์€ 2021๋…„ 4์›” 14์ผ ๊ธฐ์ค€ ๊ธ€์ด๋‹ค.) ๐Ÿคจ ์‚ฝ์งˆ์˜ ๋ฐœ๋‹จ ์ง€๋‚œ๋‹ฌ์— ์ƒˆ๋กœ์šด ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ํ”„๋ก ํŠธ๋Š” Next.js๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ  ๋ฐฑ์—”๋“œ๋Š” Github์— jsonํŒŒ์ผ์„ ์˜ฌ๋ ค gh-pages๋กœ ํ˜ธ์ŠคํŒ…์„ ํ•œ ์ •์„

birdmee.tistory.com

 

๐Ÿš€ ์‹œ์ž‘

1. Github์— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑํ•˜๊ธฐ

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„๋งŒ ์ ๊ณ  ์„ค๋ช… ๋ถ€๋ถ„์ด๋‚˜ Public/Private์€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์„ค์ • ํ›„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ดˆ๊ธฐํ™” ๋ถ€๋ถ„์€ ์•„๋ฌด๊ฒƒ๋„ ์ฒดํฌํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑํ•ด์ฃผ์—ˆ๋‹ค. 

 

2. ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ์ƒ์„ฑํ•œ Github ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์—ฐ๊ฒฐ

Create repository๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋‹ค์Œ ํ™”๋ฉด์—์„œ ๋ช…๋ น์–ด๋“ค์ด ๋‚˜์˜จ๋‹ค. ํ•˜๋‹จ์— ์žˆ๋Š” …or push an existing repository from the command line์˜ ๋ช…๋ น์–ด๋“ค์„ ๋ณต์‚ฌ ํ›„ ํ„ฐ๋ฏธ๋„์—์„œ Strapi ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์— ๋ถ™์—ฌ ๋„ฃ์–ด์ค€๋‹ค. 

git remote add origin <์ž์‹ ์ด-์ƒ์„ฑํ•œ-Github-๋ฆฌํฌ์ง€ํ† ๋ฆฌ> # ์ ํ˜€์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋†”๋‘๋ฉด๋จ
git branch -M main
git push -u origin main

์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ์ด ๋˜์—ˆ์œผ๋ฉด Github ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋กœ์ปฌ ์ €์žฅ์†Œ์—์„œ ์ปค๋ฐ‹ํ•œ ํŒŒ์ผ๋“ค์ด ๋ชจ๋‘ ๋œฌ๋‹ค. 

 

3. Heroku์—์„œ ๋ฐฐํฌ ์„ค์ •ํ•˜๊ธฐ

Heroku ์›น์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€๋ฉด ๋กœ๊ทธ์ธ์ด ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ Heroku ์•ฑ ๋Œ€์‹œ๋ณด๋“œ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋  ๊ฒƒ์ด๋‹ค. 
๋ณธ์ธ์ด ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์•ฑ๊ณผ ๊ด€๋ จ๋œ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ๋œฌ๋‹ค. 

์„ธ ๋ฒˆ์งธ ํƒญ Deploy๋ฅผ ์„ ํƒํ•ด์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋ณด์ธ๋‹ค. 

Deployment method๋Š” GitHub์„ ์„ ํƒํ•˜๋ฉด ํ•˜๋‹จ์— Connect to GitHub์ด ๋ณด์ธ๋‹ค. 
Github ๊ณ„์ •๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ์ž์‹ ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. Github์— ์ƒ์„ฑํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ•˜๋‹จ์— Connect๋ผ๋Š” ๋ฒ„ํŠผ์ด ๋œจ๋ฉด ํด๋ฆญํ•˜์—ฌ ์—ฐ๊ฒฐํ•œ๋‹ค. 

ํ•˜๋‹จ์˜ Deploy Branch ๋ฒ„ํŠผ์€ ์ง์ ‘ ์ˆ˜๋™ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด๊ณ  Enable Automatic Deploys ๋ฒ„ํŠผ์€ ์ž๋™ ๋ฐฐํฌ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฒ„ํŠผ์ด๋‹ค.
Deploy Branch ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๋™ ๋ฐฐํฌํ•ด๋ณด๊ณ  ์ž๋™ ๋ฐฐํฌ๋ฅผ ํ™œ์„ฑํ™” ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค.  

 

์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋ณด์ด๋ฉด ๋ฌธ์ œ์—†์ด ์ž˜ ๋ฐฐํฌ๊ฐ€ ๋œ ๊ฒƒ์ด๋‹ค. 

ํ•˜๋‹จ์— View ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ง€๋‚œ ํŽธ ๋งˆ์ง€๋ง‰์—์„œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์›ฐ์ปด ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค.

 

4. Strapi admin ๋“ฑ๋กํ•˜๊ธฐ

์›ฐ์ปด ํŽ˜์ด์ง€ ์ฃผ์†Œ ๋’ค์— /admin์„ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋ณด์ธ๋‹ค.

๋“ฑ๋ก์„ ๋ˆ„๋ฅด๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณด์ธ๋‹ค๋ฉด ์™„๋ฃŒ์ด๋‹ค!

Production(์šด์˜ํ™˜๊ฒฝ)์—์„œ๋Š” ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ Content-Types Builder๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. Collection์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝํ•˜๊ณ  Github์— ํ‘ธ์‹œํ•ด์ฃผ๋ฉด ์ž๋™ ๋ฐฐํฌ๊ฐ€ ๋˜์–ด Production์—์„œ๋„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค. 

์ด๊ณณ์ €๊ณณ ์ฐพ์•„๊ฐ€๋ฉฐ ํ•˜๋‹ค๋ณด๋‹ˆ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋” ๋ณต์žกํ•˜๊ฒŒ ํ–ˆ์„ ์ˆ˜๋„ ์žˆ๊ณ  ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์„ ๋น ๋œจ๋ ธ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ.... ์ด๋ ‡๊ฒŒ๋ผ๋„ ์‚ฝ์งˆ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๊ณ ์ž ์ ์–ด๋ณด์•˜๋‹ค. ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ž‘์€ ๋„์›€์ด๋ผ๋„ ๋˜๋ฉด ์ข‹๊ฒ ๋‹ค. ๋Œ“๊ธ€ ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ด๋‹ค! ๐Ÿ‘

์‚ฌ์‹ค ์ง„์ •ํ•œ ์‚ฝ์งˆ์€ ์ด ๋‹ค์Œ๋ถ€ํ„ฐ ์‹œ์ž‘์ด์—ˆ์ง€๋งŒ... ๊ธฐ์กด์— ๊ด€๋ฆฌํ•˜๋˜ csv ๋ฐ์ดํ„ฐ๋ฅผ Heroku์—์„œ ์ œ๊ณตํ•˜๋Š” PostgresDB์— ์˜ฌ๋ ค์•ผ ํ–ˆ๋Š”๋ฐ ํ•˜์•„... ๊ทผ๋ž˜์— ๊ผฝ๋Š” ์‚ฝ์งˆ of ์‚ฝ์งˆ์ด์—ˆ๋‹ค. Postgres์— ๋Œ€ํ•œ ์ดํ•ด ๋ถ€์กฑ๊ณผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด๋Š” ํˆด๋กœ ์•„์ฃผ ๐Ÿ  x 10000 ๋จน์€ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์–ด๋–ป๊ฒŒ ์˜ฌ๋ ธ๋‹คใ…Ž ๋.

 

๐Ÿ“ ์ฐธ์กฐ

youtu.be/vbh3-G1jIUg?t=666
strapi.io/documentation/developer-docs/latest/setup-deployment-guides/deployment/hosting-guides/heroku.html