카테고리 없음

Laravel 03. Controller

테디아저씨 2026. 4. 13. 22:18

 

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 설정
  • 보안 기초

👉 실습

  • 실제 서비스 배포