docs: add project docs and test updates

This commit is contained in:
taekyoungc
2026-04-08 00:23:55 +09:00
parent 06fedc866a
commit 06aa401048
238 changed files with 8373 additions and 148 deletions

View File

@@ -0,0 +1,139 @@
# 종량제 로컬 DB 설정 (MariaDB)
로컬에서 개발을 시작할 때 MariaDB 설치·DB 생성·프로젝트 연결 방법입니다.
---
## 1. MariaDB 버전
- **권장**: **MariaDB 10.11 LTS** 또는 **11.x 최신 안정(stable)** 중 하나를 사용하면 됩니다.
- **10.11 LTS**: 장기 지원 버전. 운영 서버와 버전을 맞추고 싶을 때 적합.
- **11.x (최신 stable)**: 최신 기능·성능 개선이 필요할 때 적합. PHP 8 + CI4와 호환됩니다.
- **정리**: “꼭 최신이어야 한다”는 필요는 없고, **10.11 이상**이면 충분합니다. Homebrew로 설치 시 `brew install mariadb` 는 보통 최신 stable을 설치합니다.
---
## 2. 설치 (macOS, Homebrew)
```bash
# MariaDB 설치
brew install mariadb
# 서비스 기동 (재부팅 후에도 자동 기동 원하면)
brew services start mariadb
```
- **포트**: 기본 `3306`. 다른 MySQL/MariaDB가 이미 쓰고 있으면 충돌할 수 있으니, 필요 시 `brew services list` 등으로 확인합니다.
---
## 3. DB·사용자 생성
터미널에서 MariaDB에 접속한 뒤 아래 SQL을 실행합니다.
```bash
mariadb -u root
```
비밀번호를 물어보면, 설치 직후에는 비밀번호가 없을 수 있어 **Enter**만 누르면 됩니다. (이미 root 비밀번호를 설정했다면 해당 비밀번호 입력.)
SQL:
```sql
CREATE DATABASE IF NOT EXISTS jongryangje_dev
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS 'jongryangje'@'localhost'
IDENTIFIED BY 'jongryangje_dev';
GRANT ALL PRIVILEGES ON jongryangje_dev.* TO 'jongryangje'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
- **DB 이름**: `jongryangje_dev`
- **사용자**: `jongryangje`
- **비밀번호**: `jongryangje_dev`
→ 비밀번호를 다르게 쓰려면 아래 `.env` 설정에서 같이 바꿉니다.
---
## 4. 프로젝트 .env 설정
프로젝트 루트에 `.env` 파일이 없으면 `env` 를 복사한 뒤 DB 설정만 넣어도 됩니다.
```bash
cd /Users/tae/PhpstormProjects/jongryangje
cp env .env
```
`.env` 에서 다음 항목의 **주석(#)을 제거**하고 값을 수정합니다.
```ini
# ENVIRONMENT
CI_ENVIRONMENT = development
# APP (로컬 주소에 맞게)
app.baseURL = 'http://jongryangje.local/'
# 또는 PHP 내장 서버 사용 시:
# app.baseURL = 'http://localhost:8080/'
# DATABASE
database.default.hostname = localhost
database.default.database = jongryangje_dev
database.default.username = jongryangje
database.default.password = jongryangje_dev
database.default.DBDriver = MySQLi
database.default.port = 3306
```
- **비밀번호**를 3단계에서 다르게 정했다면 `database.default.password` 에 같은 값을 넣습니다.
---
## 5. 연결 확인
CI4에서 DB를 쓰는 코드(예: 로그인·모델)를 넣은 뒤 브라우저로 접속해 보거나, 아래처럼 스파크로 확인할 수 있습니다.
```bash
cd /Users/tae/PhpstormProjects/jongryangje
php spark db:table
```
(마이그레이션을 아직 안 했다면 테이블 목록이 비어 있을 수 있습니다. 에러 없이 실행되면 연결은 된 것입니다.)
---
## 6. 프로젝트 내 초기화 SQL (선택)
DB·사용자 생성을 한 번에 하려면 프로젝트에 포함된 SQL을 사용할 수 있습니다.
```bash
# MariaDB가 실행 중일 때 (프로젝트 루트에서)
mariadb -u root < writable/database/init_jongryangje_dev.sql
```
- **파일 위치**: `writable/database/init_jongryangje_dev.sql`
- root 비밀번호가 있으면: `mariadb -u root -p < writable/database/init_jongryangje_dev.sql`
---
## 7. MariaDB가 기동되지 않을 때
- `brew services start mariadb` 후에도 `Can't connect to local server through socket` 이 나오면:
- 터미널을 새로 연 뒤 다시 `brew services start mariadb` 실행
- 또는 **재부팅**`brew services start mariadb`
- macOS에서 launchctl 오류(예: Bootstrap failed 5)가 나오면, 재부팅 후 재시도하거나 [Homebrew MariaDB 문서](https://formulae.brew.sh/formula/mariadb) 참고
- 수동 기동: `mariadbd --datadir=/opt/homebrew/var/mysql &` (경로는 `brew --prefix mariadb`/var/mysql 로 확인)
---
## 8. 요약 체크리스트
- [ ] `brew install mariadb``brew services start mariadb`
- [ ] `mariadb -u root` 로 접속해 `jongryangje_dev` DB·`jongryangje` 사용자 생성 (또는 `init_jongryangje_dev.sql` 실행)
- [ ] 프로젝트 `.env``database.default.*` 설정
- [ ] (선택) `php spark db:table` 또는 웹 접속으로 연결 확인
이후 Phase 1(로그인)·Phase 2(admin) 개발 시 이 DB를 사용하면 됩니다.