
1. Controller
"로직을 처리하는 부분"
"사용자 요청을 받아 모델(Model)과 상호작용하고, 결과를 뷰(View)나 JSON으로 반환하는 '중간 관리자' 역할을 수행"
1.1 컨트롤러 생성
php artisan make:controller PostController
# INFO Controller [app/Http/Controllers/PostController.php] created successfully.
생성위치 app/Http/Controllers/PostController.php
1.2 컨트롤러 구조
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ShipmentController extends Controller
{
//
}
1.3 Route 와 Controller
Route::get('/posts', [ShipmentController::class, 'index']); // 목록
Route::get('/posts/create', [ShipmentController::class, 'create']); // 작성폼
Route::post('/posts', [ShipmentController::class, 'store']); // 저장
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ShipmentController extends Controller
{
public function index(Request $request)
{
return 'Posts List'
}
public function create(Request $request)
{
return 'Post Form'
}
public function store(Request $request)
{
return 'Post Save'
}
}
* Request $request 설명
"Request는 사용자가 보낸 모든 데이터를 담고 있는 객체"
# 일반적인 방식
$request->title
# 추천하는 방식
$request->input('title')
# 모든 데이터
$request->all()
기타사용자정보
$request->ip();
$request->getClientIp();
1.4 __invoke 단일 작업 컨트롤러 (Single Action Controller)
특정 컨트롤러가 하나의 기능(예: 대시보드 표시, 결제 처리 등)만 수행한다면 여러 메서드를 만들 필요가 없습니다.
이때 __invoke 메서드를 사용합니다.
// 단일작업 컨트롤러 생성
php artisan make:controller CarController --invokable
생성된 모양
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ShipmentController extends Controller
{
/**
* Handle the incoming request.
*/
public function __invoke(Request $request)
{
//
}
}
사용시 function 을 지정하지 않고 사용합니다.
Route::get('/', ShipmentController::class);
"Laravel is an object-oriented (OOP) based framework, and all functions are composed of classes."
“Laravel은 객체지향(OOP) 기반 프레임워크이며, 모든 기능은 Class로 구성되어 있다”
<?php
class ShipmentController extends Controller
<?php
class User extends Model
그외에도 서비스, 미들웨어 등도 모두 class 로 되어있습니다.
클래스는
1. 재사용 가능
→ 같은 코드를 여러 곳에서 사용
2. 구조화
→ 역할별로 나누기 쉬움
3. 확장성
→ 기능을 추가하기 쉬움
클래스 vs 객체
클래스는 설계도이고, 객체는 그 설계도대로 사용되는것
중요한 이야기는 나중에 모델을 공부할때 하도록 하겠습니다.
RESTful
라라벨 12회 강의계획서
🎯 전체 목표
- PHP 기반 웹 개발 구조 이해
- Laravel 핵심 기능 습득
- CRUD + 인증 + API + 배포까지 경험
- 실제 O2O 또는 외주 플랫폼 MVP 제작
🧩 1회차 – 개발환경 구축 & Laravel 구조 이해
- PHP / Composer / Laravel 설치
- 프로젝트 생성
- 디렉토리 구조 이해 (MVC)
- 라우팅 기본
👉 실습
- “Hello Laravel” 페이지 만들기
🧩 2회차 – 라우팅 & 컨트롤러
- Route 구조 이해 (web.php)
- Controller 생성 및 연결
- RESTful 개념
👉 실습
- 간단한 게시판 라우팅 구성
🧩 3회차 – Blade 템플릿
- Blade 문법 (@if, @foreach)
- 레이아웃 구성 (layout, section)
- 공통 UI 구조 만들기
👉 실습
- 게시판 리스트 화면 UI 구성
🧩 4회차 – DB 설계 & 마이그레이션
- DB 구조 설계 개념
- Migration 생성 및 실행
- Seeder 활용
👉 실습
- 게시판 테이블 생성
- 더미 데이터 넣기
🧩 5회차 – Eloquent ORM
- Model 개념
- CRUD 기본 (Create, Read, Update, Delete)
- 관계 설정 (1:1, 1:N)
👉 실습
- 게시글 등록/조회 기능 만들기
🧩 6회차 – CRUD 완성
- Form 처리
- Validation
- 수정 / 삭제 기능
👉 실습
- 게시판 완성 (등록, 수정, 삭제)
🧩 7회차 – 인증 시스템 (Login)
- Laravel 인증 구조
- 로그인 / 회원가입
- Middleware 개념
👉 실습
- 로그인 후 글 작성 가능하도록 제한
🧩 8회차 – 파일 업로드
- 파일 업로드 처리
- storage/public 구조 이해
- 이미지 업로드
👉 실습
- 게시글에 이미지 첨부 기능
🧩 9회차 – API 개발
- API Route 구성
- JSON 응답
- Postman 테스트
👉 실습
- 게시판 API 만들기 (목록/등록)
🧩 10회차 – 외부 서비스 연동
- 결제/문자/지도 API 개념
- REST API 호출
👉 실습
- 간단한 외부 API 연동 (예: 주소검색 or SMS)
🧩 11회차 – 실전 프로젝트 (O2O 플랫폼)
- 요구사항 정의
- DB 설계
- 기능 분리
👉 실습
- “작업 요청 → 작업자 연결” 구조 설계
🧩 12회차 – 배포 & 운영
- 서버 개념 (AWS / VPS)
- Laravel 배포
- .env 설정
- 보안 기초
👉 실습
- 실제 서비스 배포