
PHP ์จ๋ผ์ธ ๊ฐ์
>PHP - ๊ณ ๊ธ
๐ PHP ๊ณ ๊ธ - 1์ฃผ์ฐจ: PHP ํ๋ ์์ํฌ ์ ๋ฌธ - 03 ๋ผ์ฐํ , ์ปจํธ๋กค๋ฌ, ๋ทฐ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
![]() |
ํ์ | 10.0 | ๋ผ์ด์ผ์ค | free |
---|---|---|---|---|
์ฌ์ฉ์ํ์ | 10.0 | ์ด์์ฒด์ | ||
๋ค์ด๋ก๋ | 1 | ํ์ผํฌ๊ธฐ | 0 | |
์ ์์ฌ | LUZENSOFT | ๋ฑ๋ก์ผ | 2025-08-26 12:34:41 | |
์กฐํ์ | 16 |
๋ผ์ฐํ (Routing)์ด๋ ๋ฌด์์ธ๊ฐ?
๋ผ์ฐํ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ๊ธฐ๋ฅ์ผ๋ก, ์ฌ์ฉ์์ #์์ฒญ URL์ ๋ถ์ํ์ฌ ์ด๋ค #๋ก์ง์ ์คํํ ์ง ๊ฒฐ์ ํ๋ #๊ธธ์ก์ด ์ญํ ์ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ํน์ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด, #๋ผ์ฐํฐ๋ ์ด ์ฃผ์๋ฅผ ํด์ํ์ฌ ์ฌ์ ์ ์ ์๋ #์ปจํธ๋กค๋ฌ ๋๋ ํจ์๋ก ์ฐ๊ฒฐํด์ค๋๋ค.
์ปจํธ๋กค๋ฌ(Controller)๋?
#์ปจํธ๋กค๋ฌ๋ ์ฌ์ฉ์์ ์์ฒญ์ ์ง์ ์ ์ผ๋ก #์ฒ๋ฆฌํ๋ ์ญํ ์ ํฉ๋๋ค. ๋ผ์ฐํฐ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ์์ฒญ์ ๋ฐํ์ผ๋ก ํ์ํ #๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๊ณ , #๋ชจ๋ธ(Model)๊ณผ #๋ทฐ(View)๋ฅผ ์ฐ๊ฒฐํ๋ #์ค๊ฐ์ ์ญํ ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ์ ๊ฒ์ฆํ๋ ๋ฑ์ ์์ ์ ํฉ๋๋ค.
๋ทฐ(View)๋?
#๋ทฐ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ #ํ๋ฉด์ ๋ด๋นํฉ๋๋ค. ์ปจํธ๋กค๋ฌ๊ฐ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ HTML, CSS, JavaScript ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋ #๊ฒฐ๊ณผ ํ๋ฉด์ ๋ง๋ค์ด ์ฌ์ฉ์์๊ฒ ๋ฐํํฉ๋๋ค. ๋ทฐ๋ ์์ํ๊ฒ #์ถ๋ ฅ์๋ง ์ง์คํ๋ฉฐ, ์ด๋ค ๋ก์ง๋ ํฌํจํ์ง ์๋ ๊ฒ์ด #ํ๋ ์์ํฌ์ ์ผ๋ฐ์ ์ธ ๊ท์น์ ๋๋ค.
๋ผ์ฐํ , ์ปจํธ๋กค๋ฌ, ๋ทฐ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (๋ผ๋ผ๋ฒจ ๊ธฐ์ค)
1. ๋ผ์ฐํ ์ ์ํ๊ธฐ
routes/web.php
ํ์ผ์์ ๋ผ์ฐํธ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ผ์ฐํธ๋ ๋ค์๊ณผ ๊ฐ์ด #ํด๋ก์ (Closure) ํํ๋ก ์์ฑํ ์ ์์ต๋๋ค.
PHP
use IlluminateSupportFacadesRoute;
Route::get('/', function () {
return view('welcome');
});
์ ์ฝ๋๋ ์ฌ์ฉ์๊ฐ http://๋๋ฉ์ธ/
์ผ๋ก ์ ์ํ๋ฉด welcome
์ด๋ผ๋ ๋ทฐ ํ์ผ์ ๋ฐํํ๋ผ๋ ์๋ฏธ์
๋๋ค.
2. ์ปจํธ๋กค๋ฌ ์ฐ๊ฒฐํ๊ธฐ
๋ณ๋์ ์ปจํธ๋กค๋ฌ ํ์ผ์ ์์ฑํ์ฌ ๋ผ์ฐํธ์ ์ฐ๊ฒฐํ ์๋ ์์ต๋๋ค. ๋จผ์ ํฐ๋ฏธ๋์์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ PostController
๋ฅผ ์์ฑํฉ๋๋ค.
Bash
php artisan make:controller PostController
์์ฑ๋ app/Http/Controllers/PostController.php
ํ์ผ์ #๋ฉ์๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
PHP
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PostController extends Controller
{
public function index()
{
$posts = ['์ฒซ ๋ฒ์งธ ๊ฒ์๊ธ', '๋ ๋ฒ์งธ ๊ฒ์๊ธ'];
return view('posts.index', ['posts' => $posts]);
}
}
๊ทธ๋ฆฌ๊ณ routes/web.php
์์ ๋ผ์ฐํธ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์์ ํฉ๋๋ค.
PHP
use AppHttpControllersPostController;
Route::get('/posts', [PostController::class, 'index']);
์ด์ http://๋๋ฉ์ธ/posts
๋ก ์ ์ํ๋ฉด PostController
์ index
๋ฉ์๋๊ฐ ์คํ๋ฉ๋๋ค.
3. ๋ทฐ ํ์ผ ๋ง๋ค๊ธฐ
resources/views/
ํด๋ ์์ posts
๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ์์ index.blade.php
ํ์ผ์ ์์ฑํฉ๋๋ค.
Blade
<!DOCTYPE html>
<html>
<body>
<h1>๊ฒ์๊ธ ๋ชฉ๋ก</h1>
<ul>
@foreach ($posts as $post)
<li>{{ $post }}</li>
@endforeach
</ul>
</body>
</html>
์ปจํธ๋กค๋ฌ์์ ์ ๋ฌ๋ฐ์ $posts
๋ณ์๋ฅผ @foreach
๋ฌธ์ ์ด์ฉํด ํ๋ฉด์ ์ถ๋ ฅํฉ๋๋ค.
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ #์์ด์ถ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋ธ๋ก๊ทธ ์ฑ์ฅ์ ๊ฐ์ํํ์ธ์.
๋จ์๊ฐ์ ์๋ฐฑ ๋ช ์ ์ด์์ ์ถ๊ฐํ๊ณ , ๋ธ๋ก๊ทธ ์ง์๋ฅผ ์์น์ํค๋ ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
์๋ํ๋ #์ด์์ถ๊ฐ, #๋๊ธ, #๊ณต๊ฐ ๊ธฐ๋ฅ์ ํตํด ์ค์ ํ๋ํ๋ ์ด์์ ํ๋ณดํ๊ณ , ๋ธ๋ก๊ทธ ํ์ฑ๋๋ฅผ ๋์ฌ ๋ณด์ธ์.
๋ธ๋ก๊ทธ ์ด์ ์๊ฐ์ ์ ์ฝํ๊ณ ์ถ๋ค๋ฉด ์ง๊ธ ๋ฐ๋ก ์์ํด ๋ณด์ธ์.
์ง์์ ์ธ #์ํต ๊ด๋ฆฌ๋ฅผ ํตํด ๋ธ๋ก๊ทธ ์ ์ฌ๋ ฅ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
#๋ธ๋ก๊ทธ๋ง์ผํ #๋ธ๋ก๊ทธ์ฑ์ฅ #๋ธ๋ก๊ทธ๊ด๋ฆฌ #๋ค์ด๋ฒ๋ธ๋ก๊ทธ
https://ntoppro.luzensoft.com๏ปฟ