# 기술 스택 결정안

## 1. 권장 스택

초기 MVP는 다음 스택을 권장한다.

| 영역 | 선택 |
| --- | --- |
| 프론트엔드 | 모바일 웹 |
| 백엔드 | PHP 7.4 + Laravel 8 |
| 데이터베이스 | MariaDB 또는 MySQL |
| AI 연동 | 서버 사이드 API 연동 |
| 음성 입력 | 브라우저 녹음 후 서버 업로드 |
| 음성 텍스트 변환 | AI 음성 변환 API |
| 리포트 생성 | Laravel Scheduler |

## 2. PHP 7.4 + Laravel 8을 권장하는 이유

- 현재 로컬 작업 환경이 PHP 7.4 기준이라 Laravel 8을 사용할 수 있다.
- MariaDB/MySQL 연동이 단순하다.
- 마이그레이션으로 DB 변경 이력을 관리하기 쉽다.
- 음성 업로드, AI API 연동, 업무 이력 저장을 서비스 계층으로 분리하기 좋다.
- Laravel Scheduler로 매일 리포트 생성을 관리할 수 있다.
- 이후 음성 변환이나 AI 분석이 느려지면 Queue로 확장할 수 있다.
- 모바일 웹과 관리자 화면을 빠르게 만들 수 있다.

## 3. 모바일 웹 우선 이유

- 별도 앱 설치가 필요 없다.
- Android와 iPhone에서 모두 접근 가능하다.
- 음성 녹음은 브라우저 MediaRecorder API로 시작할 수 있다.
- MVP 검증 속도가 빠르다.

## 4. AI 처리 방식

AI 처리는 서버에서만 수행한다.

브라우저는 다음 역할만 한다.

- 텍스트 입력
- 음성 녹음
- 음성 파일 업로드
- AI 분석 결과 표시
- 사용자 확인 및 저장 요청

서버는 다음 역할을 한다.

- 음성 파일 저장
- 음성 텍스트 변환
- AI 업무 분석 요청
- JSON 응답 검증
- DB 반영
- 리포트 생성

## 5. Laravel 기준 추천 폴더 구조

```text
/
├─ app/
│  ├─ Http/
│  │  └─ Controllers/
│  ├─ Models/
│  ├─ Jobs/
│  ├─ Services/
│  └─ Support/
├─ config/
├─ database/
│  ├─ migrations/
│  └─ seeds/
├─ resources/
│  └─ views/
├─ routes/
│  ├─ web.php
│  └─ api.php
├─ public/
├─ storage/
│  ├─ app/
│  │  └─ audio/
│  ├─ logs/
│  └─ reports/
├─ docs/
└─ artisan
```

## 6. MVP 개발 방식

PHP 7.4 환경에서는 Laravel 8 기반으로 MVP를 진행한다.

Laravel에서 우선 사용할 기능은 다음과 같다.

- Migration: DB 스키마 관리
- Eloquent Model: 업무, 입력, 리포트 데이터 관리
- Form Request 또는 Validator: 업로드와 JSON 검증
- Service Class: AI 분석, 음성 변환, 후보 조회 분리
- Scheduler: 매일 리포트 생성
- Storage: 음성 파일 저장
- Queue: 2차 확장 시 음성 변환과 AI 분석 비동기 처리

## 7. PHP 버전 주의사항

PHP 7.4에서는 Laravel 8을 사용할 수 있지만, 최신 Laravel은 사용할 수 없다.

운영 서버도 PHP 7.4 이상이어야 하며, 가능하면 장기적으로 PHP 8.2 이상 업그레이드를 고려한다.

개발 착수 전 확인할 항목은 다음과 같다.

- 로컬 CLI에서 `php -v`가 PHP 7.4로 잡히는지 확인
- Composer 사용 가능 여부 확인
- `openssl`, `curl`, `fileinfo`, `mbstring`, `pdo_mysql` 확장 확인
- 업로드 용량 설정 확인
- HTTPS 환경 확인

## 8. 결정 필요 항목

- Laravel 8 사용 확정
- 로컬 도메인 이름
- 운영 서버 배포 여부
- AI API 키 관리 방식
- 리포트 생성 시간
- 리포트 발송 방식
