12강 - 컨트롤러

MVC에서 V(뷰)와 M(모델)을 살펴보았다. 이제 마지막 콤포넌트인 C(컨트롤러)를 살펴볼 차례이다.

Revisit Route

이제까지 모든 HTTP 요청에 대한 처리를 app/Http/routes.php의 Route Closure에서 처리 했다. Router의 역할은 HTTP 요청을 적절한 처리 로직으로 연결시켜주는 것, 즉 컨트롤러에 연결시켜주는 것이다. app/Http/routes.php에 컨트롤러를 이용한 Route를 만들어 보자.

Route::get('/', 'IndexController@index');

HTTP GET / 요청이 들어오면, IndexControllerindex() 메소드로 연결시키라는 뜻이다.

Controller를 만들자.

서버를 부트업하고, '/' 경로로 접근해 보자. ReflectionException - Class App\Http\Controllers\IndexController does not exist 란 메시지가 출력되었을 것이다. IndexController가 없기 때문이다. artisan CLI를 이용해서 만들자.

$ php artisan make:controller IndexController

app/Http/Controllers/IndexController 가 생성된 것을 확인하자. index() 메소드를 만들자.

class IndexController extends Controller
{
    public function index() {
        return view('index');
    }
}

서버를 부트업하고, / 경로로 접근하여, 정상적으로 뷰가 표시된 것을 확인하자. 4강에서 Route에 Closure에 넣은 내용과 index() 메소드의 내용이 동일하다는 것을 인지했을 것이다. Route에 모든 비즈니스 로직을 넣을 수 없을 뿐더러, 코드를 효율적으로 구조화시키기 위해서 컨트롤러를 사용하여 구조화한 것이라 생각하면 된다.




comments powered by Disqus
목록 토글
keyboard_arrow_up