๐กย Laravel application์ ๋ชจ๋ ์์ฒญ์ ์น ์๋ฒ์ ์ํด public/index.php ํ์ผ๋ก ๋ค์ด์ค๊ฒ ๋๋ค.
index.php ํ์ผ์ ์ปดํฌ์ ์ ์ ์ํ autoload๋ฅผ ๋ก๋ํ ํ app.php์์ laravel application์ ์ธ์คํด์ค๋ฅผ ์ฐพ๋๋ค.
Laravel์ ๊ฐ์ฅ ๋จผ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋น์ค ์ปจํ ์ด๋์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค.
๐กย ๋ค์ด์จ ์์ฒญ์ ์์ฒญ ํ์ ์ ๋ฐ๋ผ HTTP kernel ํน์ Console kernel ๋ ์ค ํ ๊ณณ์ผ๋ก ๋ณด๋ด์ง๋ค. ๋ ๊ณณ์ ๋ชจ๋ ์์ฒญ์ด ์ง๋๊ฐ๋ ์ค์ฌ๋ถ๋ผ๊ณ ํ ์ ์๋ค.
HTTP Kernel์ Illuminate\Foundation\Http\Kernel ํด๋์ค๋ฅผ ์์๋ฐ๊ณ ์๊ณ ์ด Kernel์ ์์ฒญ์ด ์คํ๋๊ธฐ ์ bootstrappers์ ๋ฐฐ์ด์ ์ ์ํ๋ค ์ฆ, error handling ์ค์ , logging ์ค์ , ์ ํ๋ฆฌ์ผ์ด์
ํ๊ฒฝ ๊ฐ์ง ๋ฑ ์์ฒญ์ด ํธ๋ค๋ง๋๊ธฐ ์ ์ฌ๋ฌ ์์
๋ค์ ๋ด๋นํ๋ค. ํ์ง๋ง ๋๋ถ๋ถ Laravel ๋ด๋ถ ์ค์ ๋ฑ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋ ์ ๊ฒฝ์ธ ํ์๊ฐ ํฌ๊ฒ ์๋ค.
HTTP Kernel์ ๋ชจ๋ ์์ฒญ์ด ํ์์ ์ํด ๋ฐ๋์ ๊ฑฐ์น๋ middleware๋ฅผ ์ ์ํ ์ ์๋ค. ์ด ๋ฏธ๋ค์จ์ด๋ค์ ์ธ์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ, CSRF ํ ํฐ ๊ฒ์ฆ ๋ฑ ์ฌ๋ฌ ์์ ์ ์ํํ๋ค.
Kernel์ ๋ชจ๋ ์์ฒญ์ ์ฒ๋ฆฌํ๋ (request๋ฅผ ๋จน๊ณ response๋ฅผ ๋ฑ๋) ํ๋์ ํฐ ๋ธ๋๋ฐ์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๐กย Kernel์ action์ค ๊ฐ์ฅ ์ค์ํ ๊ฒ์ service provider๋ฅผ loadํ๋ ๊ฒ์ด๋ค.
service provider๋ ํ๋ ์์ํฌ์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ค (db, queue, validation โฆ)์ ๊ด๋ฆฌํ๋ฉฐ service provider์ ๋ชจ๋ ์ค์ ์ config/app.php์์ ํ ์ ์๋ค.
Laravel์ app.php์ ๋ฑ๋ก๋ provider๋ค์ ๋๋ฉด์ ๊ฐ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ register ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค
๋ชจ๋ register ๋ฉ์๋๊ฐ ํธ์ถ๋๊ณ ๋๋ฉด boot ๋ฉ์๋๊ฐ ํธ์ถ๋๋ค.
Laravel์์ ์ ๊ณตํ๋ ์ฃผ์ํ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ service provider๋ก ์ ์๋๊ณ ์คํ๋๊ธฐ ๋๋ฌธ์ bootstrap ๊ณผ์ ์์ ๊ฐ์ฅ ์ค์ํ ์์์ด๋ค.
service provider ์ค ๊ฐ์ฅ ์ค์ํ ๊ฒ ์ค ํ๋๋ App\Providers\RouteServiceProvider์ด๋ค. routes ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ route ํ์ผ๋ค์ ์ค์บํด ๋ก๋ํ๋ค.
๋ชจ๋ service provider๊ฐ ๋ฑ๋ก๋๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด bootstrap ๋๋ฉด ๋ค์ด์จ Request๋ router๋ก dispatch ๋๋ค. ๋ผ์ฐํฐ๋ ์ด ์์ฒญ์ ๋ค์ route ํน์ controller๋ก dispatch ํ๊ฑฐ๋ ํน์ middleware๋ฅผ ์คํํ๋ค.
route ํน์ controller๊ฐ ์๋ต์ ๋ฆฌํดํ ๋ ์ด ์๋ต์ ๋ค์ ๋ฏธ๋ค์จ์ด๋ฅผ ๊ฑฐ์น๋๋ฐ, ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ต์ ๋ค์ ํ ๋ฒ ๊ฒํ ํ ์ ์๊ฒ ํ๋ค.
์๋ต์ด ๋ฏธ๋ค์จ์ด๋ฅผ ๊ฑฐ์น๋ฉด HTTP kernel์ handle ๋ฉ์๋๋ฅผ ํตํด response ๊ฐ์ฒด๊ฐ ๋๊ณ index.php ํ์ผ์ด send ๋ฉ์๋๋ฅผ ํตํด ์น ์๋ฒ๋ก ์๋ต์ ๋ณด๋ธ๋ค.
Emphasizing the role of the HTTP Kernel and Service Provider helps readers understand how Laravel organizes and handles application components. Concepts such as middleware and routing solitaire bliss are presented logically, highlighting Laravel's flexibility and power in request management.