This commit is contained in:
2026-01-06 21:44:36 +09:00
parent ceec1ad7a9
commit 716cf63f73
98 changed files with 6997 additions and 538 deletions

View File

@@ -21,7 +21,7 @@ SFTP를 통해 원격 서버의 로그 파일을 수집하고, 등록된 패턴
| 구분 | 기술 |
|------|------|
| Backend | Spring Boot |
| Backend | Spring Boot 3.2 |
| Frontend | Vue3 (SPA, 빌드 후 static 폴더에 포함) |
| Database | SQLite (파일 DB) |
| SFTP | JSch |
@@ -37,19 +37,22 @@ SFTP를 통해 원격 서버의 로그 파일을 수집하고, 등록된 패턴
| 4 | 패턴 관리 | 에러 패턴 등록/수정/삭제, 패턴 테스트 |
| 5 | 설정 | 내보내기 경로, 로그 보관 기간, 포트 설정 |
## 폴더 구조 (예정)
## 폴더 구조
```
log-hunter/
├── backend/ # Spring Boot
│ └── src/main/resources/
── static/ # Vue3 빌드 결과물
├── src/ # Spring Boot 소스
│ └── main/
── java/ # Java 소스
│ └── resources/
│ └── static/ # Vue3 빌드 결과물
├── frontend/ # Vue3 (개발용)
│ └── src/
│ └── views/
├── data/ # SQLite DB
├── exports/ # HTML/TXT 내보내기
── config/ # 설정 파일
── build.gradle
└── settings.gradle
```
## 실행 시 동작
@@ -72,57 +75,57 @@ log-hunter.jar 실행
- [x] 1-1. Spring Boot 프로젝트 생성
- [x] 1-2. Vue3 프로젝트 생성 (frontend 폴더)
- [ ] 1-3. 빌드 연동 (Vue → static 폴더로)
- [ ] 1-4. SQLite 연동 확인
- [ ] 1-5. 앱 실행 시 브라우저 자동 오픈
- [x] 1-3. 빌드 연동 (Vue → static 폴더로)
- [x] 1-4. SQLite 연동 확인
- [x] 1-5. 앱 실행 시 브라우저 자동 오픈
### Step 2. DB 스키마 설계
- [ ] 2-1. servers 테이블 (SFTP 서버 정보)
- [ ] 2-2. server_log_paths 테이블 (서버별 로그 경로, 1:N)
- [ ] 2-3. patterns 테이블 (에러 패턴 정의)
- [ ] 2-4. scan_history 테이블 (분석 실행 이력)
- [ ] 2-5. error_logs 테이블 (검출된 에러)
- [ ] 2-6. settings 테이블 (전역 설정, key-value)
- [x] 2-1. servers 테이블 (SFTP 서버 정보)
- [x] 2-2. server_log_paths 테이블 (서버별 로그 경로, 1:N)
- [x] 2-3. patterns 테이블 (에러 패턴 정의)
- [x] 2-4. scan_history 테이블 (분석 실행 이력)
- [x] 2-5. error_logs 테이블 (검출된 에러)
- [x] 2-6. settings 테이블 (전역 설정, key-value)
### Step 3. Backend - 기본 CRUD API
- [ ] 3-1. 서버 관리 API (CRUD)
- [ ] 3-2. 로그 경로 관리 API
- [ ] 3-3. 패턴 관리 API (CRUD)
- [ ] 3-4. 설정 API
- [ ] 3-5. 비밀번호/passphrase 암호화 유틸
- [x] 3-1. 서버 관리 API (CRUD)
- [x] 3-2. 로그 경로 관리 API
- [x] 3-3. 패턴 관리 API (CRUD)
- [x] 3-4. 설정 API
- [x] 3-5. 비밀번호/passphrase 암호화 유틸
### Step 4. Backend - 핵심 기능
- [ ] 4-1. SFTP 연결 (비밀번호 / 키 파일)
- [ ] 4-2. 연결 테스트 API
- [ ] 4-3. 파일 목록 조회 (마지막 분석 이후 파일)
- [ ] 4-4. 파일 다운로드
- [ ] 4-5. 로그 파싱 + 패턴 매칭 엔진
- [ ] 4-6. 에러 저장 (컨텍스트 포함)
- [ ] 4-7. 분석 실행 API (진행상황 SSE 또는 WebSocket)
- [x] 4-1. SFTP 연결 (비밀번호 / 키 파일)
- [x] 4-2. 연결 테스트 API
- [x] 4-3. 파일 목록 조회 (마지막 분석 이후 파일)
- [x] 4-4. 파일 다운로드
- [x] 4-5. 로그 파싱 + 패턴 매칭 엔진
- [x] 4-6. 에러 저장 (컨텍스트 포함)
- [x] 4-7. 분석 실행 API (진행상황 SSE 또는 WebSocket)
### Step 5. Backend - 내보내기
- [ ] 5-1. HTML 리포트 생성
- [ ] 5-2. 에러 상세 TXT 파일 생성
- [ ] 5-3. 내보내기 API
- [x] 5-1. HTML 리포트 생성
- [x] 5-2. TXT 리포트 생성
- [x] 5-3. 내보내기 API
### Step 6. Frontend - 공통
- [ ] 6-1. 레이아웃 (헤더, 사이드메뉴)
- [ ] 6-2. 라우터 설정
- [ ] 6-3. API 클라이언트 (axios)
- [ ] 6-4. 공통 컴포넌트 (테이블, 모달, 폼)
- [x] 6-1. 레이아웃 (헤더, 사이드메뉴)
- [x] 6-2. 라우터 설정
- [x] 6-3. API 클라이언트 (axios)
- [x] 6-4. 공통 컴포넌트 (테이블, 모달, 폼)
### Step 7. Frontend - 화면 개발
- [ ] 7-1. 대시보드 (서버 목록 + 실행 + 진행상황)
- [ ] 7-2. 에러 이력 (필터 + 목록 + 상세보기)
- [ ] 7-3. 서버 관리 (목록 + 추가/수정 폼)
- [ ] 7-4. 패턴 관리 (목록 + 추가/수정 + 테스트)
- [ ] 7-5. 설정
- [x] 7-1. 대시보드 (서버 목록 + 실행 + 진행상황)
- [x] 7-2. 에러 이력 (필터 + 목록 + 상세보기)
- [x] 7-3. 서버 관리 (목록 + 추가/수정 폼)
- [x] 7-4. 패턴 관리 (목록 + 추가/수정 + 테스트)
- [x] 7-5. 설정
### Step 8. 테스트 및 마무리
@@ -155,7 +158,16 @@ Step 1 → Step 2 → Step 3 → Step 6 (공통)
## 변경 이력
| 날짜 | 내용 |
| 일시 | 내용 |
|------|------|
| 2025-01-06 | 최초 작성, 요구사항 정리 |
| 2025-01-06 | Step 1-1, 1-2 완료 (Spring Boot, Vue3 프로젝트 생성) |
| 2025-01-06 | Step 1 완료 (Spring Boot, Vue3, SQLite, 빌드 연동, 브라우저 자동 오픈) |
| 2025-01-06 | Step 2 완료 (DB 스키마 설계 - 6개 Entity 생성) |
| 2025-01-06 | Step 3 완료 (Backend CRUD API - Repository, Service, Controller) |
| 2025-01-06 | Step 6 완료 (Frontend 공통 - 레이아웃, 라우터, API, 공통컴포넌트) |
| 2025-01-06 | Step 7-3, 7-4 완료 (서버 관리, 패턴 관리 화면) |
| 2025-01-06 | Step 4 완료 (Backend 핵심기능 - SFTP, 스캔엔진, 에러로그) |
| 2025-01-06 | Step 7-1, 7-2 완료 (대시보드, 에러 이력 화면) |
| 2025-01-06 | Step 5, 7-5 완료 (내보내기 HTML/TXT, 설정 화면) |
| 2025-01-06 19:05:00 | TEST_GUIDE.md 작성 (테스트 가이드) |
| 2025-01-06 19:23:00 | Frontend 빌드 + Backend 실행 테스트 성공 |