처음에 시작할때php artisan migrate Seed (테스트용 데이타 추가)php artisan db:seed db 상태 확인php artisan migrate:status 초기 상태로 되돌리기 (삭제와 동일) php artisan migrate:reset 삭제 후 다시 migrate 하기php artisan migrate:refresh 데이타만 삭제하기php artisan migrate:fresh 데이타만 삭제 후 테스트용 데이타 추가하기php artisan migrate:fresh --seed 최근 배치 취소하기php artisan migrate:rollback 단계별 취소하기php artisan migrate:rollback --step=1 2개 취소하기php artisan migrate:r..
Laravel
livewire 3 컴포넌트에서 다음과 같은 이벤트 리스너가 있다고 가정하자. #[On('admin-users:user-form:open')] public function open(array $payload = []): void { $this->mode = $payload['mode'] ?? 'create'; $userId = $payload['id'] ?? null; ... } $payload 는 배열로 값이 넘어 오는데 livewire 함수에 전달하는 방법과 blade 코드에서 전달하는 방법에 차이가 있다.. livewire 함수에서는 public function openUserEditModal(string $userId): void { ..
Next.js 환경에 익숙한 개발자가 Laravel + Inertia.js 프레임워크를 사용할 때 참고할 핵심 차이점과 개발 방식 정리1. 라우팅 (Routing)Next.js: 파일 시스템 기반 라우팅 (app/page.tsx -> /)Laravel + Inertia: 코드 기반 라우팅 (routes/web.php)모든 경로는 routes/web.php에서 명시적으로 정의.Inertia::render('Welcome')은 resources/js/Pages/Welcome.tsx 컴포넌트를 렌더링2. 데이터 페칭 (Data Fetching)Next.js: fetch, React Query, getServerSideProps 등을 통해 API 호출Laravel + Inertia: 컨트롤러에서 직접 Props..
1. 하이브리드 기술 스택의 핵심최신 Laravel 프로젝트는 더 이상 한 가지 기술에 국한되지 않고, 페이지의 목적에 따라 최적의 도구를 선택할 수 있다.Blade: 정적인 랜딩 페이지, SEO 중심 페이지 (빠른 로딩)Livewire 3: 백엔드 로직 중심의 인터랙티브 페이지 (관리자 대시보드, 폼 처리)Inertia 2 (React): 복잡한 클라이언트 사이드 로직이 필요한 앱 수준 페이지Tailwind CSS v4: CSS-first 설정으로 더 빠르고 직관적인 스타일링2. 레이아웃 구조의 단일화 (Component Pattern)전통적인 @extends 방식 대신 컴포넌트 조립(Composition) 방식을 사용해서, 모든 레이아웃은 일관성을 위해 한 곳에서 관리한다. 레이아웃 경로: resou..
Livewire 에서 이벤트 발생 시키기$this->dispatch();Livewire 컴포넌트에서 이벤트를 발생시키는 방법이다. Livewire -> Livewire, Alpine.js, JS// Livewire Component$this->dispatch('modal-open');// 이벤트 받기#[On('modal-open')]public function handlePostCreated(): void{ // 이 컴포넌트에서만 실행됨 // 예: 폼 초기화, 상태 리셋 $this->reset();}//Alpine.js 에서 받기 모달 $this->dispatch(); 함수는 Livewire 또는 Alpine.js 로 송신할 수 있는데,Livewire 에서는 #On[이벤트명] 으로..
1. 개요Laravel에서 회원가입 시 이메일 인증 기능을 구현할 때 Amazon SES(Amazon Simple Email Service)를 함께 사용하면 안정적인 발송 품질을 확보할 수 있다. (하루 5만개 발송 무료) 특히 서울(ap-northeast-2) 리전을 사용할 경우, 리전 설정·IAM 권한 구성·발신 이메일 인증이 올바르게 이루어져야 오류 없이 정상 발송이 가능하다. 아래 내용은 실제 설정 시 가장 중요한 핵심 요소인 IAM 사용자 생성 및 권한 부여, Access Key 생성, 이메일 또는 도메인 인증 절차, 리전 일치 여부를 중심으로 정리한 구성이다.2. AWS SES 사용 준비 (서울 리전 기준)2-1. AWS 리전 설정SES는 리전별로 완전히 독립된 서비스이다.따라서 SMTP 엔드..
Cloudflare를 통해 웹사이트를 운영할 때 Laravel의 세션, 쿠키, 인증 구조는 기본 상태만으로는 예기치 않은 문제가 발생하기 쉽다. 특히 프록시 환경의 특성 때문에 HTTPS 인식 오류, 세션 유지 실패, CSRF 토큰 검증 오류와 같은 문제가 자주 발생한다.이 글에서는 다음 내용을 중심으로 Cloudflare 프록시 환경에서 Laravel을 안정적으로 운영하기 위한 설정과 개념을 정리한다.Cloudflare 도메인 세팅 시 Laravel 세팅하기SESSION_DRIVER 에 대해서Redis 설치 방법SynologymacOS페이지 만료됨 / 세션이 만료되었거나 보안 토큰이 유효하지 않습니다. 에 대한 원인과 해결책Login 페이지에서 기존 세션 무시하기전통적인 LoginController 사..
최근 Livewire 3를 사용하면서 Alpine.js와 함께 이벤트를 주고받는 구조를 설계하는 경우가 많습니다.특히 모달, 토스트, 폼 CRUD 등에서 Livewire와 JS 간의 데이터 흐름을 정확히 이해해야 불필요한 오류를 줄이고 유지보수가 쉬워집니다.이번 글에서는 Livewire ↔ JS 간 이벤트 통신 구조와 데이터 타입 처리 방식을 단계별로 정리합니다.1. Livewire의 $this->dispatch()는 두 가지 역할을 한다Livewire v3의 dispatch() 메서드는 단일 함수지만, 송신 방향에 따라 동작이 달라집니다.구분 설명Livewire 이벤트다른 Livewire 컴포넌트로 서버 내부에서 전달브라우저 이벤트JS/Alpine으로 클라이언트 이벤트 전송// Livewire 간 통신..
데이타를 전달할때 항상 기억해야 할 것이 있다. 하나의 매개변수만 전달해야 한다는 것이다.
우선 국내에서 최신 라라벨 호스팅 방법은 가상서버 호스팅이나 단독 서버를 이용해야 가능한 상황이다. 저렴한 php 웹호스팅은 대부분 Php5.x, Php7.x 만 지원하기 때문이다. 다행스럽게도 Cafe24 에서 Php8.2 이상의 버전을 지원하기 시작했다. 몇가지 수정을 통해서 Php8.4와 Laravel 을 세팅해 보자. 가장 저렴한 버전인 뉴아우토반 호스팅(450원/월)으로 세팅 과정을 진행해 본다. Cafe24 뉴아우토반 호스팅 기본사양1.6GB/일 트래픽 (약 48GB/월*)700MB SSD무제한 데이터베이스*https://hosting.cafe24.com/?controller=new_product_page&page=newautobahn 카페24 호스팅 | 온라인 비즈니스의 시작절약형 일..
AI 기반 코딩 에이전트가 Laravel 환경을 더 잘 이해하고, 더 정확한 코드를 생성하도록 돕는 ‘AI 코딩 스타터 키트 https://github.com/laravel/boost GitHub - laravel/boost: Laravel-focused MCP server for augmenting your AI powered local development experience.Laravel-focused MCP server for augmenting your AI powered local development experience. - laravel/boostgithub.com 설치하기기존 Laravel 프로젝트에 Laravel boost 패키지를 추가한다. (주의: db 가 연결되어 있어야 한다.)c..
Laravel 프로젝트를 진행할때 Livewire 를 적용할것인가에 대해서 잠깐 고민이 생긴다.Livewire 를 사용하지 않아도 프로젝틀 진행하는데 별다른 어려움이 없는데 말이다. 특히나 Alpine.js 와 항상 찰떡처럼 붙어다니는데 이번 정리글을 통해서 Livewrie 와 Alpine.js 를 확실하게 개념을 잡아보자. 개념잡기기억 공식: "x는 프론트, wire는 백엔드"Alpine.jsx-브라우저(프론트엔드)브라우저에서 즉시 반응. JS 역할.Livewirewire-서버(백엔드)서버와 통신 (Ajax), PHP 메서드 실행 x- 로 시작하면 클라이언트에서만 처리한다.wire: 서버를 한번 갔다 와야 한다. 암기 : wire는 서버로 "전선"을 연결해서 PHP 백엔드에 명령을 보내는 역할. Alp..