Laravel의 기본적인 구조 흐름
1. Route (라우팅)
- 클라이언트 요청(URL)을 받아서 어떤 동작을 할지 지정한다.
- routes/web.php 또는 routes/api.php에 정의한다.
Route::get('/hello', [HelloController::class, 'index']);
2. Controller (컨트롤러)
- 실제 비즈니스 로직을 처리한다.
- app/Http/Controllers 폴더에 위치한다.
- 모델과 뷰 사이를 중재한다.
class HelloController extends Controller {
public function index() {
$name = "철수";
return view('hello', ['name' => $name]);
}
}
3. Model (모델)
- 데이터베이스와 직접 연결되는 부분이다.
- Eloquent ORM을 사용하여 DB를 객체처럼 다룬다.
- app/Models 폴더에 위치한다.
class User extends Model {
protected $fillable = ['name', 'email'];
}
$users = User::all();
4. View (뷰)
- 사용자에게 보여지는 화면이다. (HTML, Blade 템플릿 사용)
- resources/views 폴더에 .blade.php 파일로 저장한다.
<h1>Hello, {{ $name }}</h1>
실제 요청 흐름 예시
브라우저가 /hello로 접근하면?
- Route: routes/web.php가 URL 매칭
- Controller: HelloController@index 실행
- View: 컨트롤러가 view('hello') 반환
- 응답: Blade 템플릿이 HTML로 렌더링되어 브라우저에 전달