์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
BEST

PHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ฐ์ฒด์ง€ํ–ฅ

PHP ๊ฐ์ฒด์ง€ํ–ฅ, ๋‚ด์žฅ ํด๋ž˜์Šค, PSR, Composer, MVC(Model, View, Controller)๊นŒ์ง€ ๋ชจ๋˜ PHP๋ฅผ ์ตํžˆ๊ธฐ ์œ„ํ•œ ๊ทผ๊ฐ„์„ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, ๊ฐœ๋ฐœ ยท ํ”„๋กœ๊ทธ๋ž˜๋ฐ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

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

  • PHP ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • PHP ๋‚ด์žฅ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค

  • PHP ๋งˆ์ดํฌ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋ฐœ

  • PHP ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

  • MVC(Model, View, Controller)

๋” ์ด์ƒ์˜ ๋ ˆ๊ฑฐ์‹œ๋Š” ๊ทธ๋งŒ,
๊ณผ๊ฑฐ๋ฅผ ์ด๊ฒจ๋‚ด๊ณ  ๋ฏธ๋ž˜๋กœ ๋‚˜์•„๊ฐ€์ž!
์ •์ƒ์šฐ์˜ ใ€Ž์–ด์ธ ๋ผ๋ผ๋ฒจใ€
์–ด์ธ ๋ผ๋ผ๋ฒจ

PHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ฐ์ฒด์ง€ํ–ฅ

์ด ๊ฐ•์ขŒ๋Š” ใ€ŽPHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€ ๊ฐ•์ขŒ์˜ ํ›„์† ๊ฐ•์ขŒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด์ „ ๊ฐ•์ขŒ๋ฅผ ๋“ฃ์ง€ ์•Š๋”๋ผ๋„ ๊ธฐ์ดˆ์ง€์‹์ด ์žˆ๋‹ค๋ฉด ๋”ฐ๋ผ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ฐ์ฒด์ง€ํ–ฅ, ๋‚ด์žฅ ํด๋ž˜์Šค, PSR, Composer, MVC(Model, View, Controller)๊นŒ์ง€ ๋ชจ๋˜ PHP๋ฅผ ์ตํžˆ๊ธฐ ์œ„ํ•œ ๊ทผ๊ฐ„์„ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ๊ณผ์ •์„ ๋ชจ๋‘ ๋งˆ์น˜๊ฒŒ ๋˜๋ฉด ๋ผ๋ผ๋ฒจ(Laravel)ํ”„๋ ˆ์ž„์›Œํฌ์„ ์‹œ์ž‘ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ์ด ๋ญ”๊ฐ€์š”?

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

๋‚ด์žฅ ํด๋ž˜์Šค, ์ด ์ •๋„๋Š” ์•Œ์•„์•ผ์ง€!

ใ€ŽPHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€ ๊ฐ•์ขŒ์—์„œ ์ด์•ผ๊ธฐํ•˜์ง€ ์•Š์€ ๋‚ด์šฉ์ธ Classes, DateTime, Directory, Reflection, SPL ๋“ฑ PHP ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด์žฅ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ Iterator, ArrayAccess ์™€ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด ๋‚ด์šฉ์ด ๊ธธ๋‹ค๊ณ  ์ƒ๊ฐ๋œ๋‹ค๋ฉด ๋‚˜์ค‘์— ๋ณด์•„๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค. 

PHP ํ‘œ์ค€ ๊ถŒ์žฅ์•ˆ์ด ๋ญ”๊ฐ€์š”?

PSR(PHP Standard Recommendation)์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. PHP ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ PHP-FIG ์—์„œ ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋Š” ๊ถŒ์žฅ์•ˆ์ด๋ฉฐ ์ฝ”๋”ฉ ์Šคํƒ€์ผ(PSR-1, PSR-12), ์˜คํ† ๋กœ๋”(PSR-4) ๋“ฑ ์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผ ํ•  ๋‚ด์šฉ๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์—๋Œ€ํ•ด ๋…ผ์˜ํ•ด๋ด…๋‹ˆ๋‹ค.

์–ธ์ œ๊นŒ์ง€ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์“ธ ๊ฑด๊ฐ€์š”?

์›นํŽ˜์ด์ง€์— ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ „๋ถ€ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์•ผ ํ• ๊นŒ์š”? ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ธ์ƒ์—๋Š” ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“ค์–ด๋†“์€ ๋ฉ‹์ง„ ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ๋“ค์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ์ฃ .

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €, ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ Composer ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , Packagist ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ˆ˜์—…์—์„œ๋Š” PHP ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜์ธ Whoops ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ์ด์ ์„ ๋А๊ปด๋ด…๋‹ˆ๋‹ค.

๋‚˜๋งŒ์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ

ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ํŽธํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ํ‹€์„ ์ œ๊ณตํ•˜๊ณค ํ•˜๋Š”๋ฐ, ์šฐ๋ฆฌ๋Š” MVC(Model, View, Controller)์— ์ค‘์ ์„ ๋งž์ถ”์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์—ฌ๊ธฐ์„œ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ํŒจํ‚ค์ง€๋Š” ์ผ์ฒด ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งŒ๋“  ํŒจํ‚ค์ง€๋Š” ์งํ›„์— ๋‚˜์˜ฌ ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ์—์„œ Composer ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์šด ๋ฐ›๊ณ  ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ํ˜•์—์„œ, ๊ฐ์ฒด์ง€ํ–ฅ์œผ๋กœ

MVC(Model, View, Controller)๊ฐ์ฒด์ง€ํ–ฅ์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ๋ฅผ ํƒˆ๋ฐ”๊ฟˆํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ '๋‚˜๋งŒ์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ' ์—์„œ ๋งŒ๋“  ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋ฐ›๊ณ  ์ง์ ‘ ์ ์šฉ์‹œ์ผœ๋ณด๋Š” ๊ณผ์ •์„ ํ•ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ—ˆ๋‚˜, ์ฝ”๋“œ๋Š” index.php ๋ถ€ํ„ฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋ฉฐ ์ด์ „ ๊ฐ•์ขŒ๋ฅผ ๋“ฃ์ง€ ์•Š์•˜๋”๋ผ๋„ ๋”ฐ๋ผ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ์กด์˜ ์ฝ”๋“œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ ์ „์— ํ•„์š”ํ•œ ๊ฒƒ๋“ค

๊ฐœ๋ฐœ ์„œ๋ฒ„๋Š” ๋นŒํŠธ์ธ ๋‚ด์žฅ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํ•„์š”์— ๋”ฐ๋ผ WAMP์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, PHP ๋งค๋‰ด์–ผ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

  • PHP 7.4.21 TS(Thread Safe) (64bit)
  • XDebug 3.0.4 TS (64bit)
  • ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋Š” VSCode(Visual Studio Code)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ์ฝ”๋“œ

์ด ๊ฐ•์ขŒ์˜ ์˜ˆ์ œ์ฝ”๋“œ๋Š” ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์— UIkit CSS Framework ์™€ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋กœ CKEditor 5 ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Q&A

2023๋…„ 07์›” 24์ผ๋ถ€ํ„ฐ ๊ฐœ์ธ์ ์ธ ์‚ฌ์œ ๋กœ ๊ฐ•์˜์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฏธ ์ˆ˜๋…„๊ฐ„ ์ž‘์„ฑ๋œ ์งˆ์˜์‘๋‹ต์€ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์งˆ๋ฌธ์„ ์ฐพ์•„๋ณด์‹ค ๊ฒƒ์„ ๊ถŒํ•ฉ๋‹ˆ๋‹ค.

๊ณต์‹๋ฌธ์„œ & ์„œ์ 

 

๋ ˆ๊ฑฐ์‹œ๋Š” ์•ˆ๋…•,
์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•œ ๋ชจ๋˜ PHP ๊ธฐ์ดˆ ๋ฐ”์ด๋ธ”!
ใ€ŽPHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€
PHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
5๋…„๋งŒ์— ๋“ฑ์žฅํ•œ PHP 8์„ ์•Œ์•„๋ณผ ์‹œ๊ฐ„
[๋ฌด๋ฃŒ] ใ€ŽPHP 8, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์•Œ์•„๋ณด๊ธฐใ€
PHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

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

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

  • PHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๋ฆฌ๋ถ€ํŠธ ์ˆ˜๊ฐ•์ž

  • PHP ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์•Œ์•„๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ๋ชจ๋˜ PHP ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„

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

  • PHP 7+ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๋ฆฌ๋ถ€ํŠธ

์•ˆ๋…•ํ•˜์„ธ์š”
์ •์ƒ์šฐ์ž…๋‹ˆ๋‹ค.

1,701

๋ช…

์ˆ˜๊ฐ•์ƒ

68

๊ฐœ

์ˆ˜๊ฐ•ํ‰

187

๊ฐœ

๋‹ต๋ณ€

4.2

์ 

๊ฐ•์˜ ํ‰์ 

3

๊ฐœ

๊ฐ•์˜

https://github.com/pronist

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

์ „์ฒด

41๊ฐœ โˆ™ (10์‹œ๊ฐ„ 10๋ถ„)

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

์ˆ˜๊ฐ•ํ‰

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