Files
log-hunter/TEST_GUIDE.md
2026-01-06 21:44:36 +09:00

257 lines
5.0 KiB
Markdown

# LogHunter 테스트 가이드
## 1. 사전 요구사항
| 항목 | 버전 | 확인 명령어 |
|------|------|-------------|
| Java | 17 이상 | `java -version` |
| Node.js | 18 이상 | `node -v` |
| npm | 9 이상 | `npm -v` |
---
## 2. 프로젝트 실행
### 2-1. Frontend 빌드
```bash
cd /Users/coziny/devs/osolit-research/workspace/log-hunter/frontend
# 의존성 설치 (최초 1회)
npm install
# 빌드 (결과물이 ../src/main/resources/static 으로 복사됨)
npm run build
```
### 2-2. Backend 실행
```bash
cd /Users/coziny/devs/osolit-research/workspace/log-hunter
# Gradle Wrapper로 실행
./gradlew bootRun
```
### 2-3. 접속
- 실행 시 브라우저가 자동으로 열림
- 수동 접속: http://localhost:8080
---
## 3. 테스트 시나리오
### 3-1. 패턴 등록 (먼저!)
1. **패턴 관리** 메뉴 클릭
2. **+ 패턴 추가** 클릭
3. 샘플 패턴 입력:
| 패턴명 | 정규식 | 심각도 | 컨텍스트 |
|--------|--------|--------|----------|
| Exception | `Exception\|Error` | ERROR | 5 |
| NullPointer | `NullPointerException` | CRITICAL | 5 |
| WARN 로그 | `\[WARN\]` | WARN | 3 |
| Tomcat 에러 | `SEVERE\|FATAL` | CRITICAL | 5 |
4. **테스트** 버튼으로 정규식 검증 가능
### 3-2. 서버 등록
1. **서버 관리** 메뉴 클릭
2. **+ 서버 추가** 클릭
3. 서버 정보 입력:
**비밀번호 인증 예시:**
```
서버명: 운영서버1
호스트: 192.168.1.100
포트: 22
사용자명: username
인증방식: 비밀번호
비밀번호: ********
```
**키파일 인증 예시:**
```
서버명: 개발서버
호스트: 10.0.0.50
포트: 22
사용자명: deploy
인증방식: 키 파일
키 파일 경로: C:\Users\사용자\.ssh\id_rsa
Passphrase: (없으면 비워둠)
```
4. **테스트** 버튼으로 연결 확인
### 3-3. 로그 경로 등록
1. 서버 목록에서 **경로** 버튼 클릭
2. 로그 경로 추가:
| 경로 | 파일 패턴 | 설명 |
|------|-----------|------|
| `/var/log/tomcat/` | `catalina.*.log` | Tomcat 로그 |
| `/var/log/` | `*.log` | 시스템 로그 |
| `/app/logs/` | `application-*.log` | 애플리케이션 로그 |
### 3-4. 분석 실행
1. **대시보드** 메뉴 클릭
2. 개별 서버 **분석 실행** 또는 **전체 분석 실행**
3. 진행상황 확인 (프로그레스 바)
4. 완료 후 **에러 이력**에서 결과 확인
### 3-5. 결과 확인 및 내보내기
1. **에러 이력** 메뉴 클릭
2. 필터로 검색 (서버, 심각도, 기간 등)
3. **상세** 버튼으로 컨텍스트 확인
4. **HTML 내보내기** 또는 **TXT 내보내기**
---
## 4. 단일 JAR 빌드
### 4-1. 전체 빌드 (Frontend + Backend)
```bash
cd /Users/coziny/devs/osolit-research/workspace/log-hunter
# Frontend 빌드
cd frontend && npm run build && cd ..
# JAR 빌드
./gradlew clean bootJar
```
### 4-2. 빌드 결과
```
build/libs/log-hunter-0.0.1-SNAPSHOT.jar
```
### 4-3. JAR 실행
```bash
java -jar build/libs/log-hunter-0.0.1-SNAPSHOT.jar
```
---
## 5. Windows 실행 스크립트
### run.bat 생성
```batch
@echo off
title LogHunter
echo LogHunter 시작 중...
java -jar log-hunter.jar
pause
```
### 배포 폴더 구조
```
LogHunter/
├── log-hunter.jar
├── run.bat
└── data/ <- 자동 생성됨 (SQLite DB)
```
---
## 6. 트러블슈팅
### 포트 충돌 (8080 사용 중)
```bash
# application.yml에서 포트 변경
server:
port: 9090
```
또는 실행 시 지정:
```bash
java -jar log-hunter.jar --server.port=9090
```
### SFTP 연결 실패
- 호스트/포트 확인
- 방화벽 확인 (22번 포트)
- 사용자명/비밀번호 확인
- 키파일 경로 확인 (Windows: `C:\Users\...`, 절대경로)
### 한글 깨짐
- 로그 파일 인코딩이 UTF-8인지 확인
- 필요시 서버에서 `file -i 파일명`으로 인코딩 확인
### DB 초기화 (데이터 삭제)
```bash
# data 폴더의 DB 파일 삭제
rm -rf data/loghunter.db
```
---
## 7. 개발 모드 (Hot Reload)
### Frontend 개발 서버
```bash
cd frontend
npm run dev
```
- http://localhost:5173 에서 실행
- API 프록시 설정으로 백엔드(8080)와 연동됨
### Backend만 재시작
```bash
./gradlew bootRun
```
---
## 8. API 테스트 (curl 예시)
```bash
# 서버 목록 조회
curl http://localhost:8080/api/servers
# 패턴 목록 조회
curl http://localhost:8080/api/patterns
# 연결 테스트
curl -X POST http://localhost:8080/api/servers/1/test-connection
# 스캔 실행 (동기)
curl -X POST http://localhost:8080/api/scan/execute/1
# 에러 로그 검색
curl "http://localhost:8080/api/error-logs?page=0&size=10"
```
---
## 체크리스트
- [x] Java 17+ 설치 확인
- [x] Node.js 18+ 설치 확인
- [x] Frontend 빌드 완료 (2025-01-06 19:23 확인)
- [x] Backend 실행 성공 (2025-01-06 19:23 확인)
- [x] 브라우저 접속 확인 (localhost:8080)
- [ ] 패턴 등록
- [ ] 서버 등록
- [ ] 연결 테스트 성공
- [ ] 로그 경로 등록
- [ ] 분석 실행
- [ ] 에러 검출 확인
- [ ] 내보내기 테스트