216.73.216.139 TODAY : 222

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

 > 

PHP - ์ค‘๊ธ‰

๐Ÿ“š PHP ์ค‘๊ธ‰ - 7์ฃผ์ฐจ: MVC ํŒจํ„ด์˜ ์ดํ•ด ๋ฐ ์ ์šฉ- 03 URL ๋ผ์šฐํŒ… ๊ธฐ์ดˆ

๐Ÿ“š PHP ์ค‘๊ธ‰ - 7์ฃผ์ฐจ: MVC ํŒจํ„ด์˜ ์ดํ•ด ๋ฐ ์ ์šฉ- 03 URL ๋ผ์šฐํŒ… ๊ธฐ์ดˆ
ํ‰์  10.0 ๋ผ์ด์„ผ์Šค free
์‚ฌ์šฉ์žํ‰์  10.0 ์šด์˜์ฒด์ œ
๋‹ค์šด๋กœ๋“œ 1 ํŒŒ์ผํฌ๊ธฐ 0
์ œ์ž‘์‚ฌ LUZENSOFT ๋“ฑ๋ก์ผ 2025-08-11 13:09:08
์กฐํšŒ์ˆ˜ 10
- ์„ค๋ช…

๐Ÿ“š PHP ์ค‘๊ธ‰ - 7์ฃผ์ฐจ: MVC ํŒจํ„ด์˜ ์ดํ•ด ๋ฐ ์ ์šฉ- 03 URL ๋ผ์šฐํŒ… ๊ธฐ์ดˆ


#URL ๋ผ์šฐํŒ…์ด๋ž€?

uploadImage

#์›น ๊ฐœ๋ฐœ์—์„œ #URL ๋ผ์šฐํŒ…์€ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • #URL์„ ์š”์ฒญํ–ˆ์„ ๋•Œ, ํ•ด๋‹น #์š”์ฒญ์„ ์–ด๋–ค #์ปจํŠธ๋กค๋Ÿฌ ๋˜๋Š” #ํ•จ์ˆ˜๋กœ ์—ฐ๊ฒฐํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด๋Š” #MVC(#Model-View-Controller) #ํŒจํ„ด์—์„œ #์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ๋ถ€๋ถ„์ด๋ฉฐ, #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.


#๊ธฐ๋ณธ์ ์ธ ๋ผ์šฐํŒ… ์›๋ฆฌ

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์˜ ๋ผ์šฐํŒ…์€ ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  #URL #์š”์ฒญ์„ ํ•˜๋‚˜์˜ #PHP #ํŒŒ์ผ(์˜ˆ: index.php)๋กœ ์ง‘์ค‘์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์„ **"ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ(Front Controller)"**๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ์š”์ฒญ๋œ #URL์„ ๋ถ„์„ํ•˜์—ฌ ์ ์ ˆํ•œ #๋กœ์ง์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.



#๋ผ์šฐํŒ… ๊ทœ์น™ ๋งŒ๋“ค๊ธฐ

uploadImage

์šฐ๋ฆฌ๋Š” #URL์„ ๋ถ„ํ• ํ•˜์—ฌ #๋ผ์šฐํŒ… #๊ทœ์น™์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, /products/123์ด๋ผ๋Š” #URL์ด ๋“ค์–ด์™”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค. ์ด #URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„ (/products): #์ปจํŠธ๋กค๋Ÿฌ ๋˜๋Š” #๋ชจ๋“ˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

  • ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„ (/123): #๋™์ž‘(#Action) ๋˜๋Š” #๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด products #์ปจํŠธ๋กค๋Ÿฌ์˜ show #๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , 123์„ #๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


#URL ๋ผ์šฐํŒ… ๊ตฌํ˜„ ์˜ˆ์ œ

๊ฐ„๋‹จํ•œ #URL ๋ผ์šฐํŒ…์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € .htaccess ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  #์š”์ฒญ์„ index.php๋กœ ๋ณด๋‚ด๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.


.htaccess ํŒŒ์ผ


Apache

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

์œ„ ์ฝ”๋“œ๋Š” ์‹ค์ œ ์กด์žฌํ•˜๋Š” #ํŒŒ์ผ์ด๋‚˜ #๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ ๋ชจ๋“  #์š”์ฒญ์„ index.php๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.


index.php ํŒŒ์ผ

uploadImage


PHP

<?php
// ์š”์ฒญ๋œ URL์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
$request_uri = $_SERVER['REQUEST_URI'];

// URL์„ / ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.
$uri_segments = explode('/', trim($request_uri, '/'));

// ๋ผ์šฐํŒ… ๋กœ์ง ์‹œ์ž‘
$controller_name = 'home';
$action_name = 'index';
$params = [];

if (!empty($uri_segments[0])) {
    $controller_name = $uri_segments[0];
}

if (!empty($uri_segments[1])) {
    $action_name = $uri_segments[1];
}

if (count($uri_segments) > 2) {
    $params = array_slice($uri_segments, 2);
}

// ์˜ˆ์ œ์šฉ ์ปจํŠธ๋กค๋Ÿฌ ํ˜ธ์ถœ
$controller_class = ucfirst($controller_name) . 'Controller';
$controller_file = 'controllers/' . $controller_class . '.php';

if (file_exists($controller_file)) {
    require_once $controller_file;
    $controller = new $controller_class();
    if (method_exists($controller, $action_name)) {
        call_user_func_array([$controller, $action_name], $params);
    } else {
        echo "404 Not Found: Action '{$action_name}' not found.";
    }
} else {
    echo "404 Not Found: Controller '{$controller_class}' not found.";
}

?>

์œ„ ์˜ˆ์ œ๋Š” #URL์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์„ #์ปจํŠธ๋กค๋Ÿฌ ์ด๋ฆ„์œผ๋กœ, ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์„ #๋ฉ”์„œ๋“œ ์ด๋ฆ„์œผ๋กœ ๋งคํ•‘ํ•˜๋Š” ๊ฐ„๋‹จํ•œ #๋ผ์šฐํŒ… #๋กœ์ง์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.


#์ •๋ฆฌ

uploadImage

#URL ๋ผ์šฐํŒ…์€ #MVC #ํŒจํ„ด์˜ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ์„œ, #URL๊ณผ #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ #๋กœ์ง์„ ๋ถ„๋ฆฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด #์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์ธ #๋ผ์šฐํŒ…์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๋” ๋ณต์žกํ•œ #ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ธฐ๋ฐ˜์„ ๋‹ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.





๋ธ”๋กœ๊ทธKT๊ณ ์ •, ์‡ผํ•‘/์ง€๋„ ๋งˆ์ผ€ํŒ…KT์œ ๋™, ๊ฒŒ์ž„/์•ฑํ”Œ๋ ˆ์ด์–ด ๊ณ ์ •IP, 24์‹œ๊ฐ„์ƒ๋‹ด ๋Œ€๋Ÿ‰๊ตฌ๋งค ์‹œ ํ• ์ธํ˜œํƒ ์ œ๊ณต!

https://xn--299ao67b9qbmsf04c.net/