๋ ์ด์์ ๋ ๊ฑฐ์๋ ๊ทธ๋ง,
๊ณผ๊ฑฐ๋ฅผ ์ด๊ฒจ๋ด๊ณ ๋ฏธ๋๋ก ๋์๊ฐ์!
์ ์์ฐ์ ใ์ด์ธ ๋ผ๋ผ๋ฒจใ
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)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์์ ์ฝ๋: ใ00 - ํ๊ฒฝ (Environment)ใ ๊ฐ์์์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์์ต๋๋ค.
ํ๋ก ํธ์๋์ UIkit CSS Framework ์ ํ
์คํธ ์๋ํฐ๋ก CKEditor 5 ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Q&A
2023๋
07์ 24์ผ๋ถํฐ ๊ฐ์ธ์ ์ธ ์ฌ์ ๋ก ๊ฐ์์ ๋ํ ์ง๋ฌธ์ ๋ฐ์ง ์๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ฏธ ์๋
๊ฐ ์์ฑ๋ ์ง์์๋ต์ ์ดํด๋ณผ ์ ์์ต๋๋ค. ์ปค๋ฎค๋ํฐ์์ ์ง๋ฌธ์ ์ฐพ์๋ณด์ค ๊ฒ์ ๊ถํฉ๋๋ค.
๊ณต์๋ฌธ์ & ์์
๋ ๊ฑฐ์๋ ์๋
,
์
๋ฌธ์๋ฅผ ์ํ ๋ชจ๋ PHP ๊ธฐ์ด ๋ฐ์ด๋ธ!
ใPHP 7+ ํ๋ก๊ทธ๋๋ฐใ
5๋
๋ง์ ๋ฑ์ฅํ PHP 8์ ์์๋ณผ ์๊ฐ
[๋ฌด๋ฃ] ใPHP 8, ์๋ก์ด ๊ธฐ๋ฅ ์์๋ณด๊ธฐใ