0Pricing
PHP Academy · 강의

컨트롤러 및 동작

artisan으로 컨트롤러를 만들고 동작 메서드에서 요청을 처리합니다.

컨트롤러 및 동작은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

컨트롤러란 무엇인가요?

컨트롤러는 서로 관련된 요청 처리 로직을 하나로 묶습니다. 라우트 파일에 클로저를 작성하는 대신 컨트롤러 메서드(동작)에 처리를 위임합니다.

컨트롤러 생성

Artisan을 사용하여 컨트롤러의 기본 구조를 생성합니다.

$ php artisan make:controller UserController
$ php artisan make:controller PostController --resource

기본 컨트롤러

컨트롤러는 Controller를 확장하며 각 라우트 동작에 해당하는 공개 메서드를 가집니다.

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
    public function index(): \Illuminate\View\View
    {
        $users = User::all();
        return view("users.index", compact("users"));
    }
}

요청에 접근하기

동작 메서드에서 Illuminate\Http\Request의 형식을 지정하면 Laravel이 이를 자동으로 주입합니다.

<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
    $name  = $request->input("name");
    $email = $request->input("email");
    User::create(["name" => $name, "email" => $email]);
    return redirect()->route("users.index");
}

폼 유효성 검사

$request->validate()를 사용하여 입력을 검증합니다. 실패하면 Laravel이 오류와 함께 자동으로 이전 페이지로 리디렉션합니다.

<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
    $validated = $request->validate([
        "name"  => "required|string|max:255",
        "email" => "required|email|unique:users",
    ]);
    User::create($validated);
    return redirect()->route("users.index");
}

리소스 컨트롤러 메서드

리소스 컨트롤러에는 일반적으로 사용하는 7개의 메서드가 있습니다: index, create, store, show, edit, update, destroy.

단일 동작 컨트롤러

호출 가능한 컨트롤러에는 단 하나의 __invoke() 메서드만 있으며, 정확히 한 가지 일만 수행하는 동작에 적합합니다.

<?php
class SendWelcomeEmail extends Controller
{
    public function __invoke(User $user): void
    {
        Mail::to($user)->send(new WelcomeMail($user));
    }
}
// Route:
Route::post("/users/{user}/welcome", SendWelcomeEmail::class);

컨트롤러 미들웨어

생성자에서 middleware() 메서드를 사용하여 특정 동작에 미들웨어를 적용합니다.

<?php
public function __construct()
{
    $this->middleware("auth")->except(["index", "show"]);
}

의존성 주입

동작 메서드 매개변수에서 서비스의 형식을 지정하면 Laravel이 서비스 컨테이너에서 해당 서비스를 해결합니다.

<?php
public function store(Request $request, Mailer $mailer): JsonResponse
{
    // $mailer is auto-injected
}

응답 반환

컨트롤러는 뷰, 리디렉션, JSON 응답, 파일 다운로드를 반환할 수 있습니다.

<?php
return view("users.show", compact("user"));
return redirect()->back()->with("status", "Saved!");
return response()->json($user);
return response()->download(storage_path("report.pdf"));

컨트롤러 네임스페이스

기본적으로 모든 컨트롤러는 App\Http\Controllers에 있습니다. 하위 디렉터리를 만들면 하위 네임스페이스가 생성됩니다: App\Http\Controllers\Admin\UserController.

컨트롤러를 간결하게 유지하기

컨트롤러는 비즈니스 로직을 서비스 클래스나 동작에 위임해야 합니다. 컨트롤러의 역할은 입력을 검증하고, 서비스를 호출하고, 응답을 반환하는 것에만 집중하도록 하십시오.

요약

Artisan으로 컨트롤러를 생성합니다. 자동 주입을 위해 Request와 서비스의 형식을 지정합니다. 입력 유효성 검사에는 validate()를 사용합니다. 컨트롤러는 간결하게 유지하고 서비스에 처리를 위임하십시오.

빠른 확인

리소스 컨트롤러를 생성하는 Artisan 명령은 무엇인가요?

자주 묻는 질문

“컨트롤러 및 동작” 강의는 무료인가요?

네 — “컨트롤러 및 동작” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“컨트롤러 및 동작”에서 뭘 배우나요?

artisan으로 컨트롤러를 만들고 동작 메서드에서 요청을 처리합니다. 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

PHP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“컨트롤러 및 동작” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Laravel 프로젝트 구조
  2. Laravel에서 경로 정의하기
  3. 컨트롤러 및 동작
  4. Blade 템플릿 및 뷰
← PHP Academy(으)로 돌아가기