zenoBlog Overview
공식 블로그 URL: https://zenoblog-production.up.railway.app/
zenoBlog는 Laravel로 만든 개인 기술 블로그입니다.
방문자는 공개된 글을 읽고 카테고리로 필터링할 수 있고, 관리자는 로그인 후 글과 카테고리를 작성/수정/삭제합니다.
이 문서는 한 번에 외우는 문서가 아니라, 프로젝트를 파일별/기능별로 따라가며 공부하는 문서입니다.
민감 정보 제외
.env, DB 비밀번호, 앱 키, 계정 정보, 서버 비밀값은 이 문서에 적지 않습니다.
여기서는 프로젝트 구조와 코드 동작 원리만 정리합니다.
지금 프로젝트에서 배우는 것
| 챕터 | 배우는 내용 |
|---|---|
| 프로젝트 구조 | Laravel 폴더가 각각 무슨 역할인지 |
| Laravel 기초 | Route, Controller, Model, View, Migration |
| 라우팅 | URL이 어떤 컨트롤러 함수로 연결되는지 |
| 공개 블로그 | 글 목록, 글 상세, 카테고리 필터 흐름 |
| 관리자 글 CRUD | 글 작성/수정/삭제가 DB에 저장되는 과정 |
| 카테고리 관리 | 카테고리 생성/수정/삭제와 글 연결 |
| DB와 모델 | posts, categories, tags, users 관계 |
| TipTap 에디터 | 에디터 내용이 textarea를 거쳐 저장되는 방식 |
| Blade와 화면 | Blade 문법, 레이아웃, SEO/OG 태그 |
| 인증과 권한 | Breeze 로그인과 관리자 미들웨어 |
| Railway 배포 | Dockerfile, railway.toml, Vite build |
| 공부 로드맵 | 다음에 어떤 순서로 고치고 공부하면 좋은지 |
프로젝트 한 줄 흐름
브라우저 URL 요청
-> routes/web.php
-> Controller
-> Model / DB
-> Blade View
-> HTML 응답
Laravel을 볼 때는 항상 이 질문으로 시작하면 됩니다.
1. 어떤 URL로 들어왔지?
2. routes/web.php에서 어디로 보내지?
3. 어떤 Controller 함수가 실행되지?
4. 어떤 Model로 DB를 읽거나 저장하지?
5. 어떤 Blade 파일이 화면을 만들지?
이 문서의 나머지 챕터는 이 질문을 실제 zenoBlog 코드에 대입해서 설명합니다.