docs: add project docs and test updates
This commit is contained in:
139
docs/기본 개발계획/07-local-db-setup.md
Normal file
139
docs/기본 개발계획/07-local-db-setup.md
Normal 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를 사용하면 됩니다.
|
||||
Reference in New Issue
Block a user