216.73.216.34 TODAY : 140

PHP ์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ๊ณ ๊ธ‰

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 1์ฃผ์ฐจ: PHP ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋ฌธ - 03 ๋ผ์šฐํŒ…, ์ปจํŠธ๋กค๋Ÿฌ, ๋ทฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 1์ฃผ์ฐจ: PHP ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋ฌธ - 03 ๋ผ์šฐํŒ…, ์ปจํŠธ๋กค๋Ÿฌ, ๋ทฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
ํ‰์  10.0 ๋ผ์ด์„ผ์Šค free
์‚ฌ์šฉ์žํ‰์  10.0 ์šด์˜์ฒด์ œ
๋‹ค์šด๋กœ๋“œ 1 ํŒŒ์ผํฌ๊ธฐ 0
์ œ์ž‘์‚ฌ LUZENSOFT ๋“ฑ๋ก์ผ 2025-08-26 12:34:41
์กฐํšŒ์ˆ˜ 16
- ์„ค๋ช…

uploadImage




๋ผ์šฐํŒ…(Routing)์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?


๋ผ์šฐํŒ…์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์œผ๋กœ, ์‚ฌ์šฉ์ž์˜ #์š”์ฒญ URL์„ ๋ถ„์„ํ•˜์—ฌ ์–ด๋–ค #๋กœ์ง์„ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” #๊ธธ์žก์ด ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— ํŠน์ • ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, #๋ผ์šฐํ„ฐ๋Š” ์ด ์ฃผ์†Œ๋ฅผ ํ•ด์„ํ•˜์—ฌ ์‚ฌ์ „์— ์ •์˜๋œ #์ปจํŠธ๋กค๋Ÿฌ ๋˜๋Š” ํ•จ์ˆ˜๋กœ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.



์ปจํŠธ๋กค๋Ÿฌ(Controller)๋ž€?

uploadImage

#์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ง์ ‘์ ์œผ๋กœ #์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ์š”์ฒญ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•„์š”ํ•œ #๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ , #๋ชจ๋ธ(Model)๊ณผ #๋ทฐ(View)๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” #์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค.



๋ทฐ(View)๋ž€?

uploadImage


#๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” #ํ™”๋ฉด์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ฒ˜๋ฆฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ 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. ๋ทฐ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

uploadImage


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๏ปฟ