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

strapi

Strapi๋ž€? strapi ๊ฐ„๋‹จ ์„ค๋ช…

https://strapi.io/

 

Strapi - Open source Node.js Headless CMS ๐Ÿš€

Strapi is the next-gen headless CMS, open-source, javascript, enabling content-rich experiences to be created, managed and exposed to any digital device.

strapi.io

strapi๋ž€?

strapi๋Š” Node.js ๊ธฐ๋ฐ˜์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜์ธ Koa ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์˜คํ”ˆ์†Œ์Šค Headless CMS๋กœ ๊ฐ„๋‹จํ•œ๊ฒŒ ๋Œ€์‰ฌ๋ณด๋“œ์™€ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์ž…๋‹ˆ๋‹ค. headless CMS๋Š” Headless Content Management systemDML ์˜ ์•ฝ์ž์ธ๋ฐ head ์ฆ‰, forntend ์—†์ด content ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ†ต์ ์ธ cms๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ฒŒ backend ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

 

 

strapi ์žฅ์  ์œผ๋กœ๋Š”

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„, ๋ฐ์ดํ„ฐ ์ƒ์„ฑ, api ์ฝ”๋“œ ๋“ฑ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๊ตฌ์ถ• ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š”๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

yarn create strapi-app my-project — quickstart

์ด ํ•œ์ค„์ด๋ฉด ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด ์„ค์น˜๋˜๊ณ  GUIํ™˜๊ฒฝ์—์„œ DB๋‚˜ data๊ด€๋ฆฌ, user ๊ด€๋ฆฌ๋“ฑ์„ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋˜ํ•œ ํ™•์žฅ์„ฑ์ด ๋†’๊ณ  ์ƒํƒœ๊ณ„๊ฐ€ ํ™œ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” dashboard๋Š” ๋Œ€๋ถ€๋ถ„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅ ํ•˜๊ณ , ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ์ปค์Šคํ…€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปค๋ฐ‹์˜ 95%๊ฐ€ ์ผ๋ฐ˜ ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ์ธ๋งŒํผ git ์ปค๋ฎค๋‹ˆํ‹ฐ๋„ ๋งค์šฐ ํ™œ๋ฐœํ•˜๊ฒŒ ์ด๋ฃจ์–ด ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

ํ•˜์ง€๋งŒ strapi๋„ ๋งŒ๋Šฅ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋จผ์ €

์ง์ ‘ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ์„ฑ๋Šฅ๋ฉด์—์„œ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฐ„๋‹จํ•œ ์„œ๋น„์Šค์—์„œ๋Š” ์ ์€ ๋ฆฌ์†Œ์Šค๋กœ ํ›Œ๋ฅญํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ณต์žกํ•˜๋ฉด ๋ณต์žกํ•  ์ˆ˜๋ก strapi๋งŒ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋˜ํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•˜์ง€๋งŒ ๊ทธ ๋ฐฉ๋ฒ•์ด ๊ทธ๋ฆฌ ์‰ฝ์ง€๋งŒ์€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ custom api ์ƒ์„ฑ๋“ฑ์€ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•„ ์ง€๋ฉด ๋งŽ์•„์งˆ ์ˆ˜๋ก strapi ๊ธฐ๋ณธ ๊ตฌ์กฐ์— ์–ฝ๋งค์ด๊ฒŒ ๋˜์„œ ๊ฒฐ๊ตญ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๋Š” ๋Œ€์‹  strapi๋ฅผ ์„ ํƒํ•œ ์ด์  ์ด์ƒ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฆฌ์†Œ์Šค๋ฅผ ํˆฌ์žํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•ˆํƒ€๊น๊ฒŒ๋„ strapi๋Š” ๊ณต์‹์ ์œผ๋กœ mongoDB์ง€์›์„ ํ•˜๊ณ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. mongoDB์ž์ฒด๊ฐ€ noSQL ๊ธฐ๋ฐ˜์ด๋ผ SQL๊ธฐ๋ฐ˜์ธ strapi์™€ ๋ชจ๋ธ ๊ตฌ์กฐ๊ฐ€ ๋งž์ง€์•Š์•„ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๊ณ  ์ด๋•Œ๋ฌธ์— mongoDB ํ”„๋กœ์ ํŠธ ๋น„์œจ๋„ ๋‚ฎ๋‹ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. noSQL๊ธฐ๋ฐ˜์˜ DB๋ฅผ ์‚ฌ์šฉํ•  ๋ถ„๋“ค์€ ์•ˆํƒ€๊น๊ฒŒ๋„ strapi๋ฅผ ํ™œ์šฉํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์•„๋ณด์ž…๋‹ˆ๋‹ค.

 

๊ฒฐ๋ก 

๊ทธ๋Ÿผ์—๋„ strapi๊ฐ€ ๋ถ„๋ช…ํžˆ backend ํ™˜๊ฒฝ์„ ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๊ตฌ์ถ• ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด ์ค‘ ํ•˜๋‚˜ ์ž„์—๋Š” ํ‹€๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•˜์ง€ ์•Š์€ ์ผ๋ฐ˜์ ์ธ ์›น์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์‹œ์Šคํ…œ์ด๊ฑฐ๋‚˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ์ง€์‹์ด ์žˆ๋Š” ๋ถ„์ด๋ผ๋ฉด ์ถฉ๋ถ„ํžˆ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ํˆด์ด๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค