Apache์™€ Laravel: mod_php vs PHP-FPM ๋น„๊ต ๐Ÿš€

์ฝ˜ํ…์ธ  ๋Œ€ํ‘œ ์ด๋ฏธ์ง€ - Apache์™€ Laravel: mod_php vs PHP-FPM ๋น„๊ต ๐Ÿš€

 

 

์•ˆ๋…•, ์นœ๊ตฌ๋“ค! ์˜ค๋Š˜์€ ์›น ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ ์š”์†Œ์ธ Apache์™€ Laravel, ๊ทธ๋ฆฌ๊ณ  mod_php์™€ PHP-FPM์— ๋Œ€ํ•ด ์žฌ๋ฏธ์žˆ๊ฒŒ ์•Œ์•„๋ณผ ๊ฑฐ์•ผ. ๐Ÿ˜Ž ์ด ์ฃผ์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ, ํŠนํžˆ PHP ์นดํ…Œ๊ณ ๋ฆฌ์— ์†ํ•˜๋Š” ๋‚ด์šฉ์ด์ง€. ์šฐ๋ฆฌ๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ ์ด๋Ÿฐ ๊ธฐ์ˆ ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ฉด ์ •๋ง ๋„์›€์ด ๋งŽ์ด ๋ผ. ๋งˆ์น˜ ์žฌ๋Šฅ๋„ท์—์„œ ๋‹ค์–‘ํ•œ ์žฌ๋Šฅ์„ ๊ฑฐ๋ž˜ํ•˜๋“ฏ์ด, ์šฐ๋ฆฌ๋„ ์ด๋Ÿฐ ๊ธฐ์ˆ ์  ์žฌ๋Šฅ์„ ์ตํ˜€์„œ ๋” ๋ฉ‹์ง„ ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฑฐ์•ผ!

๐Ÿ”‘ ํ•ต์‹ฌ ํฌ์ธํŠธ: Apache๋Š” ์›น ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์•ผ. Laravel์€ PHP ์›น ํ”„๋ ˆ์ž„์›Œํฌ๊ณ . mod_php์™€ PHP-FPM์€ PHP ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฐฉ์‹์ด์•ผ. ์ด ๋ชจ๋“  ๊ฒƒ๋“ค์ด ์–ด๋–ป๊ฒŒ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž!

1. Apache: ์›น์˜ ๋“ ๋“ ํ•œ ๊ธฐ๋‘ฅ ๐Ÿ›๏ธ

Apache, ์ด๋ฆ„๋งŒ ๋“ค์–ด๋„ ๋ฉ‹์ง€์ง€ ์•Š์•„? ๐Ÿค  Apache๋Š” ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์›น ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด ์ค‘ ํ•˜๋‚˜์•ผ. ์›น ์„œ๋ฒ„๊ฐ€ ๋ญ๋ƒ๊ณ ? ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ, ๋„ค๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด์•ผ.

Apache๋Š” ์ •๋ง ์˜ค๋ž˜๋œ ์นœ๊ตฌ์•ผ. 1995๋…„์— ํƒ„์ƒํ–ˆ์œผ๋‹ˆ๊นŒ ์ง€๊ธˆ ๋‚˜์ด๋กœ ์น˜๋ฉด ๋Œ€ํ•™์ƒ์ด๊ฒ ๋„ค! ๐Ÿ˜„ ๊ทธ๋™์•ˆ ๊ณ„์† ๋ฐœ์ „ํ•ด์™”๊ณ , ์ง€๊ธˆ๋„ ์ „ ์„ธ๊ณ„ ๋งŽ์€ ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์–ด.

๐Ÿ’ก ์žฌ๋ฏธ์žˆ๋Š” ์‚ฌ์‹ค: Apache๋ผ๋Š” ์ด๋ฆ„์€ '์–ด ํŒจ์น˜(A PatCHy) ์„œ๋ฒ„'์—์„œ ์™”๋Œ€. ์™œ๋ƒํ•˜๋ฉด ์ดˆ๊ธฐ์— ์ด ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ํŒจ์น˜์™€ ์ˆ˜์ •์„ ๊ฑฐ์ณ ๋งŒ๋“ค์–ด์กŒ๊ฑฐ๋“ . ๊ทผ๋ฐ ๋‚˜์ค‘์—๋Š” ์•„ํŒŒ์น˜ ๋ถ€์กฑ์˜ ์ด๋ฆ„๊ณผ ์—ฐ๊ด€ ์ง€์–ด ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋„ ๋งŽ์•„์กŒ์–ด!

Apache์˜ ์ฃผ์š” ํŠน์ง•:

  • ์•ˆ์ •์„ฑ์ด ๋›ฐ์–ด๋‚˜์š”. ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ ๊ฒ€์ฆ๋˜์—ˆ๊ฑฐ๋“ ์š”.
  • ํ™•์žฅ์„ฑ์ด ์ข‹์•„์š”. ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋ชจ๋“ˆ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ๋ฅผ ์ง€์›ํ•ด์š”. Windows, Linux, macOS ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ๋Œ์•„๊ฐ€์š”.
  • ์„ค์ •์ด ์œ ์—ฐํ•ด์š”. .htaccess ํŒŒ์ผ์„ ํ†ตํ•ด ๋””๋ ‰ํ† ๋ฆฌ๋ณ„๋กœ ์„ค์ •์„ ๋‹ค๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

Apache๋Š” ์ •๋ง ๋‹ค์žฌ๋‹ค๋Šฅํ•œ ์นœ๊ตฌ์•ผ. ๋งˆ์น˜ ์žฌ๋Šฅ๋„ท์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์žฌ๋Šฅ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์ฒ˜๋Ÿผ ๋ง์ด์•ผ. ์›น ํ˜ธ์ŠคํŒ…, ์ •์  ์›น์‚ฌ์ดํŠธ, ๋™์  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์›น ์„œ๋น„์Šค๋ฅผ Apache๋กœ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์–ด.

Apache ์›น ์„œ๋ฒ„์˜ ๊ตฌ์กฐ Apache ์›น ์„œ๋ฒ„ Core mod_php mod_rewrite mod_ssl mod_proxy ๊ธฐํƒ€ ๋ชจ๋“ˆ

์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด Apache๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ•œ๋ˆˆ์— ์•Œ ์ˆ˜ ์žˆ์ง€? ์ค‘์•™์— ์žˆ๋Š” Core๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ๋“ค์ด ๋ถ™์–ด์žˆ๋Š” ๋ชจ์Šต์ด์•ผ. ์ด๋Ÿฐ ๊ตฌ์กฐ ๋•๋ถ„์— Apache๋Š” ์ •๋ง ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด.

2. Laravel: PHP์˜ ์šฐ์•„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ๐Ÿ’ƒ

์ž, ์ด์ œ Laravel์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ฐจ๋ก€์•ผ. Laravel์€ PHP๋กœ ๋งŒ๋“  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์•ผ. ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ญ๋ƒ๊ณ ? ์Œ... ์š”๋ฆฌ๋ฅผ ํ•  ๋•Œ ์“ฐ๋Š” ์ฃผ๋ฐฉ ๋„๊ตฌ ์„ธํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ผ. ๊ธฐ๋ณธ์ ์ธ ๋„๊ตฌ๋“ค์ด ๋‹ค ๊ฐ–์ถฐ์ ธ ์žˆ์–ด์„œ ์š”๋ฆฌ(๊ฐœ๋ฐœ)ํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ํŽธํ•ด์ง€๋Š” ๊ฑฐ์ง€.

Laravel์€ 2011๋…„์— Taylor Otwell์ด๋ผ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“ค์—ˆ์–ด. ๊ทธ ๋‹น์‹œ PHP ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘์—์„œ ํ˜„๋Œ€์ ์ด๊ณ  ์šฐ์•„ํ•œ ๋ฌธ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ๊ฒŒ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์ง์ ‘ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•œ ๊ฑฐ์•ผ. ๊ทธ ๊ฒฐ๊ณผ, Laravel์€ ์ •๋ง '์šฐ์•„ํ•œ' ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋˜์—ˆ์ง€.

๐ŸŒŸ Laravel์˜ ์ฒ ํ•™: "๊ฐœ๋ฐœ์€ ์ฆ๊ฑฐ์šด ๊ฒฝํ—˜์ด์–ด์•ผ ํ•œ๋‹ค." Laravel์€ ์ด ์ฒ ํ•™์„ ๋ฐ”ํƒ•์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์–ด. ๋ณต์žกํ•œ ์ž‘์—…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ , ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์ง€.

Laravel์˜ ์ฃผ์š” ํŠน์ง•:

  • ์—˜๋กœํ€€ํŠธ ORM: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ •๋ง ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค˜์š”.
  • ๋ธ”๋ ˆ์ด๋“œ ํ…œํ”Œ๋ฆฟ ์—”์ง„: HTML ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ด์š”. ์ •๋ง ์ง๊ด€์ ์ด๊ณ  ๊ฐ•๋ ฅํ•ด์š”.
  • ์•„ํ‹ฐ์‚ฐ CLI: ์ปค๋งจ๋“œ ๋ผ์ธ์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ๋‚ด์žฅ๋œ ์ธ์ฆ ์‹œ์Šคํ…œ: ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ํ…Œ์ŠคํŒ… ์ง€์›: ๋‹จ์œ„ ํ…Œ์ŠคํŠธ, ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.

Laravel์„ ์‚ฌ์šฉํ•˜๋ฉด ์ •๋ง ๋น ๋ฅด๊ฒŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด. ๋งˆ์น˜ ์žฌ๋Šฅ๋„ท์—์„œ ์ „๋ฌธ๊ฐ€์˜ ๋„์›€์„ ๋ฐ›์•„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด์•ผ. ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์™€ ๋„๊ตฌ๋“ค์ด ๋‹ค ์ค€๋น„๋˜์–ด ์žˆ์œผ๋‹ˆ๊นŒ, ์šฐ๋ฆฌ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์ง€.

Laravel์˜ MVC ๊ตฌ์กฐ Laravel์˜ MVC ๊ตฌ์กฐ Model Controller View

์œ„ ๊ทธ๋ฆผ์€ Laravel์˜ MVC(Model-View-Controller) ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์–ด. ์ด ๊ตฌ์กฐ ๋•๋ถ„์— ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ์œ ์ง€๋ณด์ˆ˜๋„ ์‰ฌ์›Œ์ ธ. ๊ฐ ๋ถ€๋ถ„์ด ์„œ๋กœ ๋…๋ฆฝ์ ์ด๋ฉด์„œ๋„ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€?

3. mod_php: Apache์˜ ์˜ค๋ž˜๋œ ์นœ๊ตฌ ๐Ÿค

์ด์ œ mod_php์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ฐจ๋ก€์•ผ. mod_php๋Š” Apache ์›น ์„œ๋ฒ„์—์„œ PHP ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ „ํ†ต์ ์ธ ๋ฐฉ์‹์ด์•ผ. 'mod'๋Š” 'module'์˜ ์ค„์ž„๋ง์ด์•ผ. ์ฆ‰, Apache์˜ PHP ๋ชจ๋“ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ผ.

mod_php๋Š” ์ •๋ง ์˜ค๋ž˜๋œ ๋ฐฉ์‹์ด์•ผ. PHP๊ฐ€ ์ฒ˜์Œ ๋‚˜์™”์„ ๋•Œ๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜๋˜ ๋ฐฉ์‹์ด์ง€. ๊ฐ„๋‹จํ•˜๊ณ  ์„ค์ •ํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด์„œ ์ง€๊ธˆ๋„ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์–ด.

๐Ÿ” mod_php์˜ ์ž‘๋™ ๋ฐฉ์‹: Apache๊ฐ€ ์‹œ์ž‘๋  ๋•Œ PHP ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•ด. ๊ทธ๋ฆฌ๊ณ  PHP ํŒŒ์ผ์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ์ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€.

mod_php์˜ ์žฅ๋‹จ์ :

  • ์žฅ์ : ์„ค์ •์ด ๊ฐ„๋‹จํ•ด์š”. Apache์— ๋ชจ๋“ˆ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ผ์š”.
  • ์žฅ์ : ์„ฑ๋Šฅ์ด ์•ˆ์ •์ ์ด์—์š”. ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜์–ด ์žˆ์œผ๋‹ˆ๊นŒ์š”.
  • ๋‹จ์ : ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ด์š”. PHP ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๊ณ„์† ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์œผ๋‹ˆ๊นŒ์š”.
  • ๋‹จ์ : ํ™•์žฅ์„ฑ์ด ๋–จ์–ด์ ธ์š”. ๋‹ค๋ฅธ ์–ธ์–ด๋‚˜ ๋ฒ„์ „์˜ PHP๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์š”.

mod_php๋Š” ๋งˆ์น˜ ํ•ญ์ƒ ์ค€๋น„๋œ ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋Š” ์ง์› ๊ฐ™์•„. ์žฌ๋Šฅ๋„ท์—์„œ ํ•ญ์ƒ ๋Œ€๊ธฐ ์ค‘์ธ ๊ณ ๊ฐ ์„œ๋น„์Šค ๋‹ด๋‹น์ž์ฒ˜๋Ÿผ ๋ง์ด์•ผ. ์š”์ฒญ์ด ์˜ค๋ฉด ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋งŒํผ ๊ณ„์† ์ž๋ฆฌ๋ฅผ ์ง€ํ‚ค๊ณ  ์žˆ์–ด์•ผ ํ•ด์„œ ๋น„์šฉ(๋ฉ”๋ชจ๋ฆฌ)์ด ๋งŽ์ด ๋“ค์ง€.

mod_php์˜ ์ž‘๋™ ๋ฐฉ์‹ mod_php์˜ ์ž‘๋™ ๋ฐฉ์‹ Apache ์›น ์„œ๋ฒ„ mod_php PHP ์ธํ„ฐํ”„๋ฆฌํ„ฐ

์ด ๊ทธ๋ฆผ์„ ๋ณด๋ฉด mod_php๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฑฐ์•ผ. Apache ์›น ์„œ๋ฒ„ ์•ˆ์— mod_php๊ฐ€ ์žˆ๊ณ , ์ด mod_php๊ฐ€ PHP ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด. ๋ชจ๋“  PHP ์š”์ฒญ์€ ์ด ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋˜์ง€.

4. PHP-FPM: ์ƒˆ๋กœ์šด ๊ฐ•์ž์˜ ๋“ฑ์žฅ ๐Ÿš€

์ž, ์ด์ œ PHP-FPM์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ฐจ๋ก€์•ผ. PHP-FPM์€ "PHP FastCGI Process Manager"์˜ ์•ฝ์ž์•ผ. ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, PHP ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ์‹์ด์ง€.

PHP-FPM์€ 2004๋…„์— ์ฒ˜์Œ ๊ฐœ๋ฐœ๋˜์—ˆ์ง€๋งŒ, PHP์˜ ๊ณต์‹ ๋ถ€๋ถ„์ด ๋œ ๊ฑด 2009๋…„์ด์•ผ. ๊ทธ ์ดํ›„๋กœ ์ ์  ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด PHP-FPM์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์–ด.

๐ŸŒŠ PHP-FPM์˜ ์ž‘๋™ ๋ฐฉ์‹: PHP-FPM์€ ๋ณ„๋„์˜ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋ผ. ์›น ์„œ๋ฒ„(Apache๋‚˜ Nginx)๋Š” FastCGI ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด PHP-FPM๊ณผ ํ†ต์‹ ํ•˜๊ณ , PHP-FPM์ด ์‹ค์ œ๋กœ PHP ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด.

PHP-FPM์˜ ์žฅ๋‹จ์ :

  • ์žฅ์ : ์ž์› ๊ด€๋ฆฌ๊ฐ€ ํšจ์œจ์ ์ด์—์š”. ํ•„์š”ํ•  ๋•Œ๋งŒ PHP ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์š”.
  • ์žฅ์ : ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜์š”. ๋‹ค์–‘ํ•œ PHP ๋ฒ„์ „์„ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ์žฅ์ : ์„ฑ๋Šฅ์ด ์ข‹์•„์š”. ํŠนํžˆ ๋™์‹œ์— ๋งŽ์€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ๋ฆฌํ•ด์š”.
  • ๋‹จ์ : ์„ค์ •์ด ์กฐ๊ธˆ ๋ณต์žกํ•ด์š”. mod_php๋ณด๋‹ค๋Š” ์„ค์ •ํ•  ๊ฒŒ ๋งŽ์•„์š”.
  • ๋‹จ์ : ์ดˆ๊ธฐ ์‘๋‹ต ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๋Šฆ์„ ์ˆ˜ ์žˆ์–ด์š”. ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋‹ˆ๊นŒ์š”.

PHP-FPM์€ ๋งˆ์น˜ ํ•„์š”ํ•  ๋•Œ๋งŒ ์ผํ•˜๋Ÿฌ ์˜ค๋Š” ํ”„๋ฆฌ๋žœ์„œ ๊ฐ™์•„. ์žฌ๋Šฅ๋„ท์—์„œ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ์ „๋ฌธ๊ฐ€๋ฅผ ๊ณ ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, PHP-FPM๋„ ํ•„์š”ํ•  ๋•Œ๋งŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์ง€. ์ด๋Ÿฐ ๋ฐฉ์‹ ๋•๋ถ„์— ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด.

PHP-FPM์˜ ์ž‘๋™ ๋ฐฉ์‹ PHP-FPM์˜ ์ž‘๋™ ๋ฐฉ์‹ ์›น ์„œ๋ฒ„ PHP-FPM PHP Worker PHP Worker PHP Worker FastCGI

์ด ๊ทธ๋ฆผ์„ ๋ณด๋ฉด PHP-FPM์˜ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฑฐ์•ผ. ์›น ์„œ๋ฒ„๋Š” FastCGI๋ฅผ ํ†ตํ•ด PHP-FPM๊ณผ ํ†ต์‹ ํ•˜๊ณ , PHP-FPM์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ PHP Worker๋ฅผ ๊ด€๋ฆฌํ•ด. ์ด๋Ÿฐ ๊ตฌ์กฐ ๋•๋ถ„์— ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€.

5. mod_php vs PHP-FPM: ์–ด๋–ค ๊ฒŒ ๋” ์ข‹์„๊นŒ? ๐Ÿค”

์ž, ์ด์ œ mod_php์™€ PHP-FPM์„ ๋น„๊ตํ•ด๋ณผ ์‹œ๊ฐ„์ด์•ผ. ๋‘˜ ๋‹ค ์žฅ๋‹จ์ ์ด ์žˆ์–ด์„œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์„ ํƒํ•ด์•ผ ํ•ด. ๋งˆ์น˜ ์žฌ๋Šฅ๋„ท์—์„œ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” ์ „๋ฌธ๊ฐ€๋ฅผ ๊ณ ๋ฅด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด์•ผ.

์„ฑ๋Šฅ ๋น„๊ต:

  • ์†Œ๊ทœ๋ชจ ์›น์‚ฌ์ดํŠธ: mod_php๊ฐ€ ๋” ๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅผ ์ˆ˜ ์žˆ์–ด์š”.
  • ๋Œ€๊ทœ๋ชจ ์›น์‚ฌ์ดํŠธ: PHP-FPM์ด ์ž์›์„ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ์œ ๋ฆฌํ•ด์š”.
  • ๋™์‹œ ์ ‘์†์ž๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ: PHP-FPM์ด ํ™•์‹คํžˆ ์œ ๋ฆฌํ•ด์š”.

์„ค์ •์˜ ์šฉ์ด์„ฑ:

  • mod_php: ์„ค์ •์ด ๋งค์šฐ ๊ฐ„๋‹จํ•ด์š”. Apache์— ๋ชจ๋“ˆ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ผ์š”.
  • PHP-FPM: ์ดˆ๊ธฐ ์„ค์ •์ด ์ข€ ๋” ๋ณต์žกํ•˜์ง€๋งŒ, ๋” ์„ธ๋ฐ€ํ•œ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ด์š”.

์œ ์—ฐ์„ฑ:

  • mod_php: ํ•œ ์„œ๋ฒ„์—์„œ ์—ฌ๋Ÿฌ PHP ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์š”.
  • PHP-FPM: ์—ฌ๋Ÿฌ PHP ๋ฒ„์ „์„ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ด๊ฑด ์ •๋ง ํฐ ์žฅ์ ์ด์—์š”!

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ:

  • mod_php: ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜์–ด ์žˆ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋†’์•„์š”.
  • PHP-FPM: ํ•„์š”ํ•  ๋•Œ๋งŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์š”.

๐Ÿ’ก ์„ ํƒ ํŒ: ์ž‘์€ ํ”„๋กœ์ ํŠธ๋‚˜ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ ์ •๋„๋ผ๋ฉด mod_php๋กœ๋„ ์ถฉ๋ถ„ํ•ด์š”. ํ•˜์ง€๋งŒ ํฐ ๊ทœ๋ชจ์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์‚ฌ์ดํŠธ๋ผ๋ฉด PHP-FPM์„ ๊ณ ๋ คํ•ด๋ณด๋Š” ๊ฒŒ ์ข‹์•„์š”.

๊ฒฐ๊ตญ, ์–ด๋–ค ๊ฑธ ์„ ํƒํ• ์ง€๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ์™€ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ ธ. ๋งˆ์น˜ ์žฌ๋Šฅ๋„ท์—์„œ ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ „๋ฌธ๊ฐ€๋ฅผ ๊ณ ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด์•ผ. ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ฉด mod_php๋กœ ์ถฉ๋ถ„ํ•˜์ง€๋งŒ, ํฐ ํ”„๋กœ์ ํŠธ๋ผ๋ฉด PHP-FPM์˜ ์žฅ์ ์„ ํ™œ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹์„ ๊ฑฐ์•ผ.

mod_php vs PHP-FPM ๋น„๊ต mod_php vs PHP-FPM ๋น„๊ต mod_php PHP-FPM โœ… ๊ฐ„๋‹จํ•œ ์„ค์ • โœ… ์†Œ๊ทœ๋ชจ ์‚ฌ์ดํŠธ์— ์ ํ•ฉ โŒ ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ โŒ ๋‚ฎ์€ ํ™•์žฅ์„ฑ โœ… ํšจ์œจ์ ์ธ ์ž์› ๊ด€๋ฆฌ โœ… ๋†’์€ ํ™•์žฅ์„ฑ โœ… ๋Œ€๊ทœ๋ชจ ์‚ฌ์ดํŠธ์— ์ ํ•ฉ โŒ ๋ณต์žกํ•œ ์ดˆ๊ธฐ ์„ค์ •

์ด ๊ทธ๋ฆผ์„ ๋ณด๋ฉด mod_php์™€ PHP-FPM์˜ ์ฐจ์ด์ ์„ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์–ด. ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” ์„ ํƒ์„ ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•ด.

6. Laravel์—์„œ์˜ mod_php์™€ PHP-FPM ๐ŸŽญ

์ž, ์ด์ œ ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์šด ๋‚ด์šฉ์„ Laravel๊ณผ ์—ฐ๊ฒฐํ•ด๋ณผ ์ฐจ๋ก€์•ผ. Laravel์€ PHP๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋ ˆ์ž„์›Œํฌ๋‹ˆ๊นŒ, mod_php๋‚˜ PHP-FPM ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‹คํ–‰๋˜๊ฒ ์ง€?

Laravel์€ ์‚ฌ์‹ค mod_php๋‚˜ PHP-FPM์— ๋Œ€ํ•ด ํŠน๋ณ„ํ•œ ์„ ํ˜ธ๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์•„. ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€. ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ Laravel ๊ฐœ๋ฐœ์ž๋“ค์€ PHP-FPM์„ ์„ ํ˜ธํ•˜๋Š” ํŽธ์ด์•ผ. ์™œ ๊ทธ๋Ÿด๊นŒ?

๐ŸŽญ Laravel๊ณผ PHP-FPM: Laravel์€ ๋ณต์žกํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ˆ์š”. ๊ทธ๋ž˜์„œ ๋ณดํ†ต ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ์ ํŠธ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜์ฃ . ์ด๋Ÿฐ ๊ฒฝ์šฐ PHP-FPM์˜ ์žฅ์ ์ด ๋” ์ž˜ ๋“œ๋Ÿฌ๋‚˜์š”.

Laravel์—์„œ PHP-FPM์„ ์„ ํ˜ธํ•˜๋Š” ์ด์œ :

  • ์„ฑ๋Šฅ: Laravel ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต ๋ณต์žกํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ด์š”. PHP-FPM์˜ ํšจ์œจ์ ์ธ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ๊ฐ€ ๋„์›€์ด ๋ผ์š”.
  • ํ™•์žฅ์„ฑ: Laravel ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก PHP-FPM์˜ ํ™•์žฅ์„ฑ์ด ํฐ ์žฅ์ ์ด ๋ผ์š”.