Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

Strapi๋กœ ์ฝ”๋”ฉ์—†์ด ๋‚˜๋งŒ์˜ API ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ API ์„œ๋ฒ„๋ฅผ, Node๊ธฐ๋ฐ˜์˜ Strapi v4๋ฅผ ์ด์šฉํ•˜์—ฌ, ๋ช‡ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ๋ณ„๋‹ค๋ฅธ ์ฝ”๋”ฉ์—†์ด ๋งŒ๋“ค์–ด AWS EC2์— ๋ฐฐํฌ ํ•ด๋ณด๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. Strapi v5๋„ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜ A/S๋„ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”~

Thumbnail

์ค‘๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐฑ์—”๋“œ, ๋ฐ๋ธŒ์˜ต์Šค ยท ์ธํ”„๋ผ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • Node๊ธฐ๋ฐ˜์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ

  • EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ์„ค์ •

  • MySQL ์ง์ ‘ ์„ค์น˜ ๋ฐ ์šด์˜

  • PM2์™€ NGINX๋กœ ์›น์„œ๋น„์Šค ํ•˜๊ธฐ

Strapi๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚˜๋งŒ์˜ Rest API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๊ธฐ

์ด ๊ฐ•์˜๋Š” Node๊ธฐ๋ฐ˜์˜ Headless CMS์ธ Strapi v4๋ฅผ ์ด์šฉํ•˜์—ฌ, ๋‚˜๋งŒ์˜ Backend๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด AWS EC2์— ๋ฐฐํฌํ•˜์—ฌ ์ƒ์šฉํ™”ํ•ด๋ณด๋Š” ๊ณผ์ •์ด์—์š”.


๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌ์ถ•์— ์ž์‹ ์—†๊ณ , ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ๊ตฌํ•  ์ˆ˜๋„ ์—†๋Š” ์ƒํ™ฉ์—์„œ, ๋‚˜ ํ˜ผ์ž ๋ฐฑ์—”๋“œ/ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชจ๋‘ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.


๋”ฐ๋ผ๋งŒ ํ•˜๋ฉด, ๋ณ„๋‹ค๋ฅธ ์ฝ”๋”ฉ์—†์ด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜ ๊ฐ€์งˆ์ˆ˜ ์žˆ๊ณ , ์ด ์„œ๋ฒ„๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”

  1. Strapi๋Š” Node๊ธฐ๋ฐ˜์˜ Headless CMS๋กœ, ์„ค์น˜๋งŒ ํ•˜๋ฉด ์ž๋™์œผ๋กœ Rest API๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š” CMS์ž…๋‹ˆ๋‹ค.

    • Headless๋ž€ UI๊ฐ€ ์—†๋‹ค๋Š” ๋œป์œผ๋กœ, API๊นŒ์ง€๋งŒ ์ œ๊ณตํ•ด์ฃผ๊ณ , ํ”„๋ก ํŠธ์—”๋“œ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ต์ˆ™ํ•œ ํ™˜๊ฒฝ์—์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

    • CMS๋ž€ Content Management System์ด๋ž€ ๋œป์œผ๋กœ, ์›Œ๋“œํ”„๋ ˆ์Šค๋‚˜ ๊ทธ๋ˆ„๋ณด๋“œ ์ฒ˜๋Ÿผ ์›นUI๋กœ ์ปจํ…์ธ ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

  2. ์„œ๋ฒ„๋Š” AWS์˜ EC2์— Ubuntu 22.04๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  3. ์›น์„œ๋ฒ„๋Š” NGINX๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, DB๋Š” EC2 ๋กœ์ปฌ์— MySQL 8๋ฒ„์ „์„ ์„ค์น˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  4. Node์— ๋‚ ๊ฐœ๋ฅผ ๋‹ฌ์•„์ฃผ๋Š”, ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž์ธ PM2 ์œ„์— Strapi๋ฅผ ์˜ฌ๋ ค๋ณด๊ณ 

  5. NGINX๋ฅผ Reverse Proxy๋กœ ์„ค์ •ํ•ด์„œ, ์•ˆ์ •์ ์ธ ์›น์„œ๋น„์Šค๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋ด…๋‹ˆ๋‹ค.

  6. https๋ฅผ ์œ„ํ•ด์„œ ๋ฌด๋ฃŒ ์ธ์ฆ์„œ ์„œ๋น„์Šค์ธ Letโ€™s Encrypt๋กœ ์•ˆ์ „ํ•œ SSL ์„œ๋น„์Šค๋กœ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์šด์˜: ์ด ๊ฐ•์˜๋Š” macOS ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

    • ์œˆ๋„์šฐ ๊ฐœ๋ฐœํ™˜๊ฒฝ์— ๋Œ€ํ•ด์„œ๋Š”, ๋”ฐ๋กœ ์„ค๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค..

  • ์‚ฌ์šฉ ๋„๊ตฌ: ๋„์ปค ๋ฐ์Šคํฌํƒ‘, DBํด๋ผ์ด์–ธํŠธ(Sequel Ace ๋˜๋Š” Pro), VS Code ๋“ฑ์„ ๋ฏธ๋ฆฌ ์„ค์น˜ํ•˜์—ฌ ์ค€๋น„ํ•ด์ฃผ์„ธ์š”.


์ค€๋น„๋ฌผ

  • AWS์— ํšŒ์›๊ฐ€์ž…ํ•ด ์ฃผ์„ธ์š”.

  • ๋ฌด๋ฃŒ SSL ์ธ์ฆ์„œ ์„ค์น˜๋ฅผ ์œ„ํ•œ ์ €๋ ดํ•œ ๋„๋ฉ”์ธ์„ ๋งˆ๋ จ ๋˜๋Š” ๊ตฌ๋งคํ•ด์ฃผ์„ธ์š”.

    • ๋„๋ฉ”์ธ์„ ๊ตฌ๋งคํ•˜์‹ค ๋ถ„์€ hosting.kr ์—์„œ ๊ตฌ๋งคํ•ด์ฃผ์„ธ์š”. ๊ทธ ์‚ฌ์ดํŠธ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • github์ด๋‚˜ ๊ธฐ๋ณธ์ ์ธ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋Š” ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋„๋ฉ”์ธ ์„ค์ •์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹์€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ์ด ๊ฐ•์˜์—์„œ hosting.kr ๊ธฐ์ค€์œผ๋กœ ์ถฉ๋ถ„ํžˆ ์„ค๋ช…์€ ํ•˜์ง€๋งŒ, ํƒ€์‚ฌ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์‘๋Œ€๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋ฐฑ์—”๋“œ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

  • ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋กœ ์‚ฌ์šฉํ•  ๊ฐ„๋‹จํ•œ ๋ฐฑ์—”๋“œ๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ

  • Node๊ธฐ๋ฐ˜์˜ ๋ฐฑ์—”๋“œ๋ฅผ ๋นจ๋ฆฌ ๊ตฌ์ถ•ํ•ด๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • macOS ๊ธฐ๋ฐ˜์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • ๊ธฐ๋ณธ์ ์ธ git ๋ฐ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด

  • AWS ํšŒ์› ๊ฐ€์ž…ํ•ด ์ฃผ์„ธ์š”.

  • ๋„๋ฉ”์ธ ๊ตฌ์ž…ํ•ด ์ฃผ์„ธ์š”.

์•ˆ๋…•ํ•˜์„ธ์š”
์ฒดํ—˜์ฝ”๋”ฉ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. ์ฝ”๋”ฉ ๋ฐ ๊ฐœ๋ฐœ์„ ์ฒดํ—˜ํ•˜๋ฉด์„œ ์„œ๋น„์Šค๊นŒ์ง€ ๋งŒ๋“ค์–ด๋ณด๋Š” ๊ฐ•์˜๋ฅผ ํ•˜๋Š” ์ฒดํ—˜์ฝ”๋”ฉ์ž…๋‹ˆ๋‹ค.

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

26๊ฐœ โˆ™ (2์‹œ๊ฐ„ 14๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!