7.4. ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®

7.4.1. µµÀÔ

¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¶õ Zend_Controller_Front (¿Í)°ú ¶ó¿ìÅÍ, µð½ºÆÖÃÄ ±×¸®°í ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ »çÀÌ¿¡ ±³È¯µÇ´Â ´Ü¼øÇÑ ¹ë·ù ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. À̰ÍÀº ÄÜÆ®·Ñ·¯, ¾×¼Ç ±×¸®°í ȯ°æ (HTTP,CLI,PHP-GTK µî) ¿¡ ÀÀÇÑ ±× ¿ÜÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ³»¿ëÀ» Áý°èÇÑ °ÍÀÔ´Ï´Ù.

  • ¸ðµâ¸í¿¡ ¾×¼¼½º ÇÏ·Á¸é getModuleName() ¹× setModuleName() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

  • ÄÜÆ®·Ñ·¯¸í¿¡ ¾×¼¼½º ÇÏ·Á¸é getControllerName() ¹× setControllerName() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

  • ÄÜÆ®·Ñ·¯³»¿¡¼­ ÄÝ ÇÏ´Â ¾×¼ÇÀÇ À̸§¿¡ ¾×¼¼½º ÇÏ·Á¸é getActionName() ¹× setActionName() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

  • ¾×¼ÇÀ¸·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ÆÄ¶ó¹ÌÅʹ Ű/Ä¡ ÀÇ Æí¼ºÀÇ ¿¬»ó ¹è¿­ÀÌ µË´Ï´Ù.À̰͵éÀ» ÃëµæÇÏ·Á¸é getParams() (À»)¸¦, ±×¸®°í ¼³Á¤ÇÏ·Á¸é setParams() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.°¢ ÆÄ¶ó¹ÌÅ͸¦ °³º°ÀûÀ¸·Î Ãë±ÞÇÏ·Á¸é getParam() ¹× setParam() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

¸®Äù½ºÆ®ÀÇ ÇüÅ¿¡ µû¶ó¼­´Â, ±× ¿ÜÀÇ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö Àֱ⵵ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, µðÆúÆ®ÀÇ ¸®Äù½ºÆ®·Î »ç¿ëÇÑ´Ù Zend_Controller_Request_Http ÀÇ °æ¿ì´Â, ¸®Äù½ºÆ® µÇ¾ú´Ù URI (ÀÌ)³ª ÆÐ½º Á¤º¸, $_GET ÆÄ¶ó¹ÌÅͳª $_POST ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÏ´Â ¸Þ¼Òµå°¡ »ç¿ë °¡´ÉÇØÁý´Ï´Ù.

¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡°Ô °Ç³×Áý´Ï´Ù. ¸¸¾à ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®°¡ ¾ø¾ú´ø °æ¿ì´Â, µð½ºÆÌÄ¡ ó¸®ÀÇ ÃÖÃÊ (·çÆÃÀÌ ¹ß»ýÇϱâ Àü) ¿¡ ÀνºÅϽº°¡ ÀÛ¼ºµË´Ï´Ù.À̰ÍÀº, µð½ºÆÌġüÀÎÀÇ ¸ðµç ¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Á®¼­ °©´Ï´Ù.

°Ô´Ù°¡ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â Å×½ºÆ® ½Ã¿¡µµ À¯¿ëÇÕ´Ï´Ù. °³¹ßÀÚ°¡ ¸®Äù½ºÆ®¸¦ ÀÛ¼ºÇØ, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ÆÄ¶ó¹ÌÅͳª URI µîÀ» ÁöÁ¤ÇØ ±×°ÍÀ» ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, ¾îÇø®ÄÉÀ̼ÇÀÇ È帧À» Å×½ºÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®½ºÆù½º ¿ÀºêÁ§Æ® (¿Í)°ú Á¶ÇÕÇØ »ç¿ëÇϸé, MVC ¾îÇø®ÄÉÀ̼ÇÀÇ Á¤¹ÐÇϰí Á¤È®ÇÑ ´Üü Å×½ºÆ®°¡ °¡´ÉÇØÁý´Ï´Ù.

7.4.2. HTTP ¸®Äù½ºÆ®

7.4.2.1. ¸®Äù½ºÆ® µ¥ÀÌÅÍ¿¡ÀÇ ¾×¼¼½º

Zend_Controller_Request_Http (Àº)´Â, °ü·ÃÇÏ´Â °ª¿¡ÀÇ ¾×¼¼½º¸¦ ĸ½¶È­ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÄÜÆ®·Ñ·¯³ª ¾×¼Ç ¶ó¿ìÅÍÀÇ º¯¼öÀÇ Å°¸íÀ̳ª °ª, URI (À¸)·ÎºÎÅÍ ÆÛ½º ÇÑ Ãß°¡ÀÇ ÆÄ¶ó¹ÌÅÍÀÇ °ª µî¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. Zend_Controller_Request_Http ÀÇ ÇÁ·Ï½Ã·Î¼­ µ¿ÀÛÇÏ´Â °ÍÀ¸·Î, ½´ÆÛ ±Û·Î¹úÀÇ °ª¿¡ ÆÛºí¸¯ ¸â¹ö·Î¼­ ¾×¼¼½º Çϰųª ÇöÀçÀÇ º£À̽º URL (ÀÌ)³ª ¸®Äù½ºÆ® URI (À»)¸¦ °ü¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ½´ÆÛ ±Û·Î¹úÀÇ °ªÀº ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤ÇÒ ¼ö ¾ø½À´Ï´Ù. ±× ´ë½Å¿¡ setParam/getParam ¸Þ¼Òµå¸¦ »ç¿ëÇϰí, ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ ȤÀº ÃëµæÇÕ´Ï´Ù.

[ÁÖÀÇ] ½º¹Ù±×·Î¹Ù¸£µ¥ÀÌŸ

Zend_Controller_Request_Http ÀÇ ÆÛºí¸¯ ÇÁ·ÓÆÛƼ¸¦ »ç¿ëÇØ ½´ÆÛ ±Û·Î¹ú µ¥ÀÌÅÍ¿¡ ¾×¼¼½º ÇÒ ¶§¿¡ ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº, ÇÁ·ÓÆÛƼ¸í (½º¹Ù±×·Î¹ß ¹è¿­ÀÇ Å°) (Àº)´Â ÀÌÇÏÀÇ ¿ì¼± ¼øÀ§·Î ¸ÅÄ¡ÇÏ´Â °ÍÀÔ´Ï´Ù. 1. GET, 2. POST, 3. COOKIE, 4. SERVER, 5. ENV.

ƯÁ¤ÀÇ ½´ÆÛ ±Û·Î¹úÇÏ°Ô ¾×¼¼½º ÇÏ·Á¸é , ÆÛºí¸¯ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù.¿¹¸¦ µé¾î, $_POST['user'] ÀÇ °ªÀ» ÃëµæÇÏ·Á¸é , ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®»ó¿¡¼­ getPost('user') (À»)¸¦ ÄÝ ÇÕ´Ï´Ù.°°ÀÌ $_GET ¿ä¼ÒÀÇ °æ¿ì´Â getQuery(), ¸®Äù½ºÆ® Çì´õÀÇ °æ¿ì´Â getHeader() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

[ÁÖÀÇ] GET ¹× POST µ¥ÀÌÅÍ

¸®Äù½ºÆ® ¿ÀºêÁ§Æ®ÀÇ µ¥ÀÌÅ͸¦ Ãë±ÞÇÒ ¶§ ÁÖÀÇÇսôÙ. ÀÌ·¯ÇÑ µ¥ÀÌÅÍ´Â, ÀÏÀý ÇÊÅ͸µÀ» ½Ç½ÃÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. ¶ó¿ìÅͳª µð½ºÆÖÃÄ ÂÊÀ¸·Î ÀûÀýÇÑ °ËÁõ°ú ÇÊÅ͸µÀ» ½Ç½ÃÇϹǷÎ, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®³»ÀÇ µ¥ÀÌÅÍ´Â ±×´ë·Î ÇØ µÓ½Ã´Ù.

À¯Àú ÆÄ¶ó¹ÌÅ͸¦ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤ÇÏ·Á¸é setParam() (À»)¸¦, ´ÙÀ½¿¡ ±×°ÍÀ» ÃëµæÇÏ·Á¸é getParam() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù. ¶ó¿ìÅÍ´Â, ¸®Äù½ºÆ® URI ¿¡ ¸ÅÄ¡ÇÑ ÆÄ¶ó¹ÌÅ͸¦ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤ÇÒ ¶§¿¡ ÀÌ ±â´ÉÀ» »ç¿ëÇÕ´Ï´Ù.

[ÁÖÀÇ] getParam() (À¸)·ÎÀÇ À¯Àú ÆÄ¶ó¹ÌÅÍ ÀÌ¿ÜÀÇ Ãëµæ

getParam() (Àº)´Â, ½ÇÁ¦·Î´Â À¯Àú ÆÄ¶ó¹ÌÅÍ ÀÌ¿Ü ·ÎºÎÅ͵µ Á¤º¸¸¦ ÃëµæÇϰí ÀÖ½À´Ï´Ù. ¿ì¼± ¼øÀ§ÀÇ ³ôÀº ¼ø¼­¿¡ ´Ã¾î³õÀ¸¸é, ¿ì¼± óÀ½Àº setParam() ±×¸®°í ¼³Á¤ÇÑ ÆÄ¶ó¹ÌÅÍ, ±× ÀÌÈÄ´Â GET ÆÄ¶ó¹ÌÅÍ, POST ÆÄ¶ó¹ÌÅÍ,COOKIE ÆÄ¶ó¹ÌÅÍÀÇ ¼ø¼­°¡ µË´Ï´Ù.ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¶§ , ÀÌ Á¡¿¡ ÁÖÀÇÇսôÙ.

setParam() ±×¸®°í ¼³Á¤ÇÑ ÆÄ¶ó¹ÌÅͷκÎÅ͸¸ ÃëµæÇÏ°í ½ÍÀº °æ¿ì´Â, getUserParam() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

[ÁÖÀÇ] Apache ÀÇ ÀÌ»óÇÑ °Åµ¿

Apache ÀÇ 404 Çڵ鷯¸¦ »ç¿ëÇØ ¸®Äù½ºÆ®¸¦ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ °Ç³×Áְųª PT Ç÷¡±×¸¦ rewrite ·ê·Î »ç¿ëÇϰųª ÇÏ´Â °æ¿ì´Â, ÇÊ¿äÇÑ URI Á¤º¸°¡ Æ÷ÇԵǴ °ÍÀÌ $_SERVER['REQUEST_URI'] (Àº)´Â ¾Æ´Ï°í $_SERVER['REDIRECT_URL'] ÀÎ °Í¿¡ ÁÖÀÇÇսôÙ. ÀÌ ¼³Á¤À» »ç¿ëÇØ ¹«È¿ÀÎ ·çÆÃÀ» ÃëµæÇÏ°í ½ÍÀº °æ¿ì´Â, µðÆúÆ®ÀÇ Http Ŭ·¡½º´Â ¾Æ´Ï°í Zend_Controller_Request_Apache404 Ŭ·¡½º¸¦ »ç¿ëÇØ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.


<?php
require_once 'Zend/Controller/Request/Apache404.php';
$request = new Zend_Controller_Request_Apache404();
$front->setRequest($request);

ÀÌ Å¬·¡½º´Â Zend_Controller_Request_Http Ŭ·¡½º¸¦ °è½ÂÇÑ °ÍÀ¸·Î, ¸®Äù½ºÆ® URI (À»)¸¦ ÀÚµ¿À¸·Î °ËÃâÇÒ ¼ö ÀÖµµ·Ï º¯°æÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀº, ´Ü¼øÇϰԵµ¶ó´Â Ŭ·¡½º¿Í °¥¾Æ³Ö¾î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

7.4.2.2. º£À̽º URL ¹× ¼­ºê µð·ºÅ丮

Zend_Controller_Request_Http (Àº)´Â, ¼­ºê µð·ºÅ丮·Î Zend_Controller_Router_Rewrite (À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Zend_Controller_Request_Http (Àº)´Â ÀÚµ¿ÀûÀ¸·Î º£À̽º URL (À»)¸¦ °ËÃâÇØ, ±×°ÍÀ» ÀûÀýÈ÷ ¼³Á¤ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î,index.php (À»)¸¦ À¥ ¼­¹öÀÇ ¼­ºê µð·ºÅ丮 /projects/myapp/index.php ¿¡ µÎ¾úÀ» °æ¿ì´Â, º£À̽º URL (rewrite base) ÇÏ /projects/myapp (À¸)·Î ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ¸ÅÄ¡ÇÏ´Â ·çÆ®¸¦ ã¾Æ³»±â Àü¿¡, ÀÌ ¹®ÀÚ¿­ÀÌ ÆÐ½ºÀÇ ¼±µÎ·ÎºÎÅÍ Á¦°ÅµË´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¸ðµç ·çÆ®¿¡ ºÒÇÊ¿äÇÑ ¹®ÀÚ¸¦ Ãß°¡ÇÒ Çʿ䰡 ¾ø¾îÁý´Ï´Ù. ·çÆ® 'user/:username' (Àº)´Â, http://localhost/projects/myapp/user/martel ¹× http://example.com/user/martel ÀÇ ¾çÂÊ ¸ðµÎ¿¡ ¼º³É ÇÏ°Ô µË´Ï´Ù.

[ÁÖÀÇ] URL ÀÇ °ËÃâÀº ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÕ´Ï´Ù

ÀÚµ¿ÀûÀÎ º£À̽º URL ÀÇ °ËÃâ 󸮴 ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÕ´Ï´Ù.±× ¶§¹®¿¡, URL (¿Í)°ú ÆÄÀÏ ½Ã½ºÅÛÀÇ ¼­ºê µð·ºÅ丮¸íÀÌ È®½ÇÈ÷ ÀÏÄ¡ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù (ºñ·Ï Windows ¸Ó½ÅÀ̾ °°½À´Ï´Ù).´ë¹®ÀÚ ¼Ò¹®ÀÚ°¡ ÀÏÄ¡ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.

º£À̽º URL ÀÇ °ËÃâ¿¡ ½ÇÆÐÇÏ´Â °æ¿ì´Â, Zend_Controller_Request_Http Ŭ·¡½º, ȤÀº Zend_Controller_Front Ŭ·¡½ºÀÇ setBaseUrl() ¸Þ¼Òµå¸¦ »ç¿ëÇØ º£À̽º ÆÐ½º¸¦ µ¡¾²±â ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀº Zend_Controller_Front ±×¸®°í ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¼³Á¤Àº ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¿¡ ÀΰèµË´Ï´Ù. µ¶ÀÚÀûÀÎ º£À̽º URL (À»)¸¦ ¼³Á¤ÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.


<?php
/**
 * Zend_Controller_Front ±×¸®°í µ¶ÀÚÀûÀÎ º£À̽º URL (À»)¸¦ ÁöÁ¤ÇÏ´Â °Í¿¡ ÀÇÇÑ ¸®Äù½ºÆ®ÀÇ µð½ºÆÌÄ¡
 */
$router     = new Zend_Controller_Router_Rewrite();
$controller Zend_Controller_Front::getInstance();
$controller->setControllerDirectory('./application/controllers')
           ->
setRouter($router)
           ->
setBaseUrl('/projects/myapp'); // º£À̽º URL (À»)¸¦ ÁöÁ¤ÇÕ´Ï´Ù!
$response   $controller->dispatch();

7.4.2.3. AJAX ¸®Äù½ºÆ®ÀÇ °ËÃâ

Zend_Controller_Request_Http ¿¡´Â, AJAX ¸®Äù½ºÆ®¸¦ °ËÃâÇϱâ À§ÇÑ ±âº»ÀûÀÎ ¸Þ¼Òµå isXmlHttpRequest() ÇÏÁö¸¸ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â,HTTP ¸®Äù½ºÆ® Çì´õ X-Requested-With ¿¡ 'XMLHttpRequest' ±×·¸´Ù°í ÇÏ´Â °ªÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇØ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì¿¡ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

Çö½ÃÁ¡¿¡¼­´Â, ´ÙÀ½ÀÇ JS ¶óÀ̺귯¸®°¡ µðÆúÆ®·Î ÀÌ Çì´õ¸¦ °Ç³×ÁÖ´Â °Í °°½À´Ï´Ù.

  • Prototype/Scriptaculous (±× ¿Ü Prototype °èÀÇ ¶óÀ̺귯¸®)

  • Yahoo! UI Library

  • jQuery

  • MochiKit

´ëºÎºÐÀÇ AJAX ¶óÀ̺귯¸®´Â, µ¶ÀÚÀûÀÎ HTTP ¸®Äù½ºÆ® Çì´õ¸¦ ¼Û½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ¿ëÀÇ ¶óÀ̺귯¸®°¡ ÀÌ Çì´õ¸¦ ¼Û½ÅÇϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â, ½º½º·Î ÀÌ Çì´õ¸¦ Ãß°¡ÇÏ´Â °ÍÀ¸·Î isXmlHttpRequest() ¸Þ¼ÒµåÀÇ µ¿ÀÛÀ» ±â´ë ´ë·Î·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù.

7.4.3. ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®ÀÇ ¼­ºê Ŭ·¡½ºÀÇ ÀÛ¼º

¸ðµç ¸®Äù½ºÆ® ¿ÀºêÁ§Æ® Ŭ·¡½º´Â, Ãß»ó Ŭ·¡½º Zend_Controller_Request_Abstract (À»)¸¦ °è½ÂÇϰí ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º¿¡¼­´Â, ´ÙÀ½°ú °°Àº ¸Þ¼Òµå¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù.


abstract class Zend_Controller_Request_Abstract
{
    /**
     * @return string
     */
    public function getControllerName();

    /**
     * @param string $value
     * @return self
     */
    public function setControllerName($value);

    /**
     * @return string
     */
    public function getActionName();

    /**
     * @param string $value
     * @return self
     */
    public function setActionName($value);

    /**
     * @return string
     */
    public function getControllerKey();

    /**
     * @param string $key
     * @return self
     */
    public function setControllerKey($key);

    /**
     * @return string
     */
    public function getActionKey();

    /**
     * @param string $key
     * @return self
     */
    public function setActionKey($key);

    /**
     * @param string $key
     * @return mixed
     */
    public function getParam($key);

    /**
     * @param string $key
     * @param mixed $value
     * @return self
     */
    public function setParam($key, $value);

    /**
     * @return array
     */
     public function getParams();

    /**
     * @param array $array
     * @return self
     */
    public function setParams(array $array);

    /**
     * @param boolean $flag
     * @return self
     */
    public function setDispatched($flag = true);

    /**
     * @return boolean
     */
    public function isDispatched();
}

¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â, ¸®Äù½ºÆ® ȯ°æÀÇ ÄÁÅ×À̳ʰ¡ µË´Ï´Ù. ÄÜÆ®·Ñ·¯ ÃÖÀÎÀÌ ¾Ë¾Æ µÎ¾î¾ß ÇÒ (ÀÏ)°ÍÀº, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ¿É¼Ç ÆÄ¶ó¹ÌÅÍ, µð½ºÆÌÄ¡ »óȲ (À»)¸¦ ÃëµæÇϰųª ¼³Á¤Çϰųª ÇÏ´Â ¹æ¹ý¸¸ÀÔ´Ï´Ù. µðÆúÆ®¿¡¼­´Â, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®°¡ ÄÜÆ®·Ñ·¯ ¹× ¾×¼ÇÀ» °áÁ¤ÇÒ ¶§ Ű controller ȤÀº action (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

ÀÌ Å¬·¡½ºÀΰ¡ ±× »ó¼Ó Ŭ·¡½ºÀÇ ¾î´ÀÂÊÀ̵çÀ» °è½ÂÇÑ Å¬·¡½º¸¦ ÀÛ¼ºÇÏ´Â °ÍÀ¸·Î, À§¿¡¼­ ¼³¸íÇÑ ÀÛ¾÷À» µ¶ÀÚÀûÀÎ °ÍÀ¸·Î º¯°æÇÑ Å¬·¡½º¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹·Î¼­´Â, ¿¹¸¦ µé¾î HTTP ȯ°æ¿ë ÀÇ Å¬·¡½º³ª CLI ȯ°æ¿ë,PHP-GTK ȯ°æ¿ëÀÇ Å¬·¡½º°¡ ÀÖ½À´Ï´Ù.