2025. 8. 11. 13:09ㆍ프로그램/PHP 중급
📚 PHP 중급 - 7주차: MVC 패턴의 이해 및 적용- 03 URL 라우팅 기초

#URL 라우팅이란?

#웹 개발에서 #URL 라우팅은 사용자가 특정 #URL을 요청했을 때, 해당 #요청을 어떤 #컨트롤러 또는 #함수로 연결할지 결정하는 과정입니다. 이는 #MVC(#Model-View-Controller) #패턴에서 #요청을 처리하는 핵심적인 부분이며, #애플리케이션의 구조를 깔끔하게 유지하는 데 도움을 줍니다.
#기본적인 라우팅 원리
가장 간단한 형태의 라우팅은 들어오는 모든 #URL #요청을 하나의 #PHP #파일(예: index.php)로 집중시키는 것입니다. 이 파일을 **"프론트 컨트롤러(Front Controller)"**라고 부릅니다. 이 파일은 요청된 #URL을 분석하여 적절한 #로직을 실행합니다.
#라우팅 규칙 만들기

우리는 #URL을 분할하여 #라우팅 #규칙을 만들 수 있습니다. 예를 들어, /products/123이라는 #URL이 들어왔다고 가정해 봅시다. 이 #URL은 다음과 같이 해석될 수 있습니다.
- 첫 번째 부분 (/products): #컨트롤러 또는 #모듈을 나타냅니다.
- 두 번째 부분 (/123): #동작(#Action) 또는 #매개변수를 나타냅니다.
이를 통해 products #컨트롤러의 show #메서드를 호출하고, 123을 #매개변수로 전달하도록 만들 수 있습니다.
#URL 라우팅 구현 예제
간단한 #URL 라우팅을 구현해 보겠습니다. 먼저 .htaccess 파일을 사용하여 모든 #요청을 index.php로 보내도록 설정합니다.
.htaccess 파일
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
위 코드는 실제 존재하는 #파일이나 #디렉터리가 아닐 경우 모든 #요청을 index.php로 전달합니다.
index.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의 첫 번째 부분을 #컨트롤러 이름으로, 두 번째 부분을 #메서드 이름으로 매핑하는 간단한 #라우팅 #로직을 보여줍니다.
#정리

#URL 라우팅은 #MVC #패턴의 중요한 요소로서, #URL과 #애플리케이션 #로직을 분리해주는 역할을 합니다. 이를 통해 #코드의 유지보수성과 확장성이 크게 향상됩니다. 이 예제를 통해 기본적인 #라우팅의 원리를 이해하고, 더 복잡한 #프레임워크의 라우팅 시스템에 대한 기반을 다질 수 있습니다.
블로그KT고정, 쇼핑/지도 마케팅KT유동, 게임/앱플레이어 고정IP, 24시간상담 대량구매 시 할인혜택 제공!
https://xn--299ao67b9qbmsf04c.net/
VPN 5,500원 / IP교체 1,100원 / 유동프록시 22,000원 | LuzenVPN 루젠VPN
국내최저가 고정IP서비스,유동프록시(IP4000개이상제공),PPTP,L2TP,IPSec,OpenVPNVPN,통신사VPN,VPN프로그램,고정IP,고정아이피,PPTP,저렴한VPN,리니지MVPN,리니지VPN,아이온VPN,던파VPN,유동프록시,유동PROXY,바이
vpn.luzensoft.com
'프로그램 > PHP 중급' 카테고리의 다른 글
| 📚 PHP 중급 - 8주차: 웹 보안 기초 및 에러 핸들링- 02 비밀번호 보안 (해싱, 솔팅) (0) | 2025.08.14 |
|---|---|
| 📚 PHP 중급 - 8주차: 웹 보안 기초 및 에러 핸들링- 01 XSS, CSRF 공격 이해 및 방어 (0) | 2025.08.13 |
| 📚 PHP 중급 - 7주차: MVC 패턴의 이해 및 적용- 02 간단한 MVC 구조로 게시판 리팩토링 (0) | 2025.08.10 |
| 📚 PHP 중급 - 7주차: MVC 패턴의 이해 및 적용- 01 MVC (Model-View-Controller) 개념 (0) | 2025.08.09 |
| 📚 PHP 중급 - 6주차: OOP 심화 및 디자인 패턴 소개 - 04 싱글톤(Singleton), 팩토리(Factory) 패턴 소개 (0) | 2025.08.08 |