Laravel Lifecycle

์ •์ข…์ผยท2023๋…„ 9์›” 26์ผ

Laravel

๋ชฉ๋ก ๋ณด๊ธฐ
5/9

Lifecycle

First Steps

๐Ÿ’กย Laravel application์˜ ๋ชจ๋“  ์š”์ฒญ์€ ์›น ์„œ๋ฒ„์— ์˜ํ•ด public/index.php ํŒŒ์ผ๋กœ ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.

index.php ํŒŒ์ผ์€ ์ปดํฌ์ €์— ์ •์˜ํ•œ autoload๋ฅผ ๋กœ๋“œํ•œ ํ›„ app.php์—์„œ laravel application์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐพ๋Š”๋‹ค.

Laravel์€ ๊ฐ€์žฅ ๋จผ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

HTTP / Console Kernels

๐Ÿ’กย ๋“ค์–ด์˜จ ์š”์ฒญ์€ ์š”์ฒญ ํƒ€์ž…์— ๋”ฐ๋ผ HTTP kernel ํ˜น์€ Console kernel ๋‘˜ ์ค‘ ํ•œ ๊ณณ์œผ๋กœ ๋ณด๋‚ด์ง„๋‹ค. ๋‘ ๊ณณ์€ ๋ชจ๋“  ์š”์ฒญ์ด ์ง€๋‚˜๊ฐ€๋Š” ์ค‘์‹ฌ๋ถ€๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

HTTP Kernel

HTTP Kernel์€ Illuminate\Foundation\Http\Kernel ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ๊ณ  ์ด Kernel์€ ์š”์ฒญ์ด ์‹คํ–‰๋˜๊ธฐ ์ „ bootstrappers์˜ ๋ฐฐ์—ด์„ ์ •์˜ํ•œ๋‹ค ์ฆ‰, error handling ์„ค์ •, logging ์„ค์ •, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ ๊ฐ์ง€ ๋“ฑ ์š”์ฒญ์ด ํ•ธ๋“ค๋ง๋˜๊ธฐ ์ „ ์—ฌ๋Ÿฌ ์ž‘์—…๋“ค์„ ๋‹ด๋‹นํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ Laravel ๋‚ด๋ถ€ ์„ค์ • ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋Š” ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€ ํฌ๊ฒŒ ์—†๋‹ค.

HTTP Kernel์€ ๋ชจ๋“  ์š”์ฒญ์ด ํ•„์š”์— ์˜ํ•ด ๋ฐ˜๋“œ์‹œ ๊ฑฐ์น˜๋Š” middleware๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฏธ๋“ค์›จ์–ด๋“ค์€ ์„ธ์…˜ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ, CSRF ํ† ํฐ ๊ฒ€์ฆ ๋“ฑ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Kernel์€ ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” (request๋ฅผ ๋จน๊ณ  response๋ฅผ ๋ฑ‰๋Š”) ํ•˜๋‚˜์˜ ํฐ ๋ธ”๋ž™๋ฐ•์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

Service Provider

๐Ÿ’กย 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 ๊ณผ์ •์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค.

Routing

service provider ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” App\Providers\RouteServiceProvider์ด๋‹ค. routes ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  route ํŒŒ์ผ๋“ค์„ ์Šค์บ”ํ•ด ๋กœ๋“œํ•œ๋‹ค.

๋ชจ๋“  service provider๊ฐ€ ๋“ฑ๋ก๋˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด bootstrap ๋˜๋ฉด ๋“ค์–ด์˜จ Request๋Š” router๋กœ dispatch ๋œ๋‹ค. ๋ผ์šฐํ„ฐ๋Š” ์ด ์š”์ฒญ์„ ๋‹ค์‹œ route ํ˜น์€ controller๋กœ dispatch ํ•˜๊ฑฐ๋‚˜ ํŠน์ • middleware๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

Finishing Up

route ํ˜น์€ controller๊ฐ€ ์‘๋‹ต์„ ๋ฆฌํ„ดํ•  ๋•Œ ์ด ์‘๋‹ต์€ ๋‹ค์‹œ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๊ฑฐ์น˜๋Š”๋ฐ, ์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‘๋‹ต์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

์‘๋‹ต์ด ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๊ฑฐ์น˜๋ฉด HTTP kernel์˜ handle ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด response ๊ฐ์ฒด๊ฐ€ ๋˜๊ณ  index.php ํŒŒ์ผ์ด send ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์›น ์„œ๋ฒ„๋กœ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.

profile
์ œ์–ดํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์— ์˜์ง€ํ•˜์ง€ ๋ง์ž

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2025๋…„ 4์›” 23์ผ

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.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ