트랜잭션 익스플로러
트랜잭션 익스플로러는 트랜잭션 데이터를 심층 분석하여 패턴을 발견하고 성능 최적화 분석 결과를 제공하는 기능입니다. 검색 탭과 트래픽 분석 탭을 통해 다양한 관점에서 데이터를 탐색할 수 있습니다.
1. 용도와 목적
0.1 기능 개요
트랜잭션 익스플로러는 대규모 트랜잭션 데이터에서 의미 있는 패턴을 발견하고, 비정상적인 트래픽을 탐지하며, 성능 병목 지점을 식별하는 것을 목적으로 합니다.
| 목적 | 설명 |
|---|---|
| 패턴 발견 | 시간대별 트랜잭션 분포 확인, 트래픽 추이 분석 |
| 이상 탐지 | 임계값 초과 항목 자동 감지, 봇 트래픽 식별 |
| 성능 분석 | 느린 트랜잭션, 오류 트랜잭션 집중 구간 파악 |
| 심층 탐색 | 드릴다운(drill-down) 방식으로 원인 트랜잭션 상세 조회 |
0.2 주요 사용 시나리오
- 트래픽 급증 원인 파악: 특정 시간대에 트래픽이 급증한 원인을 IP 주소/요청 경로/사용자 에이전트별로 분석
- 봇 트래픽 식별: AI 크롤러, 검색 엔진 봇 등 자동화된 트래픽 탐지
- 성능 저하 구간 분석: 느린 트랜잭션이 집중된 시간대와 원인 서비스 식별
- 보안 이벤트 조사: 특정 IP 주소에서의 다중 요청 경로 공격(URL Enumeration) 패턴 탐지
2. 페이지 개요
1.1 기능 설명
| 기능 | 설명 |
|---|---|
| 디스커버리 탭 | 시계열 히스토그램, 필드 목록, 문서 목록을 통한 탐색 |
| 트래픽 분석 탭 | 트래픽 통계, 상위 집계, 이상 징후 탐지 |
| 브러시 선택 | 히스토그램 바 클릭으로 시간 범위 재검색 |
| 셀 클릭 필터 | 문서 목록의 셀 클릭으로 필터 팝업 검색 |
1.2 접근 경로
URL: /workgroup/[workgroupId]/tx-mining/[mining]
메뉴: 대시보드 > 트랜잭션 익스플로러
로그인한 사용자면 누구나 접근할 수 있습니다.
1.3 사용자 역할 제약
트랜잭션 익스플로러는 역할 기반 접근 제어(RBAC)를 적용하여 사용자가 할당된 리소스에만 접근할 수 있습니다.
1.3.1 리소스 접근 제어
| 제어 항목 | 설명 | 제한 내용 |
|---|---|---|
| 서버 접근 | 역할에 할당된 수집 서버만 표시 | roleTargetAccess.serverIds에 포함된 서버 |
| 오브젝트 접근 | 역할에 할당된 오브젝트만 표시 | roleTargetAccess.objHashes에 포함된 오브젝트 |
서버 목록은 서버 사이드 렌더링(SSR) 단계에서 역할 기반으로 필터링됩니다. 클라이언트로 전송되는 데이터는 이미 사용자가 접근 권한이 있는 리소스로 제한됩니다.
1.3.2 메뉴 표시 제어
| 메뉴 항목 | 상태 | 설명 |
|---|---|---|
| 로그 (검색) | 활성 | 현재 페이지 |
| 통계 | 비활성 | 개발 예정 |
| 배치 | 비활성 | 개발 예정 |
| 스토리지 관리 | 비활성 | 개발 예정 |
역할에 관계없이 비활성화된 메뉴 항목(통계, 배치, 스토리지 관리)는 접근할 수 없습니다.
1.3.3 읽기/쓰기 권한
| 권한 | 설명 | 영향 |
|---|---|---|
| 읽기 (read) | 데이터 조회 가능 | 모든 로그인 사용자 |
| 쓰기 (write) | 데이터 수정/삭제 가능 | 별도 기능 권한 필요 |
트랜잭션 익스플로러는 데이터 분석 전용 기능이며, 쓰기 권한이 없는 사용자도 모든 조회 기능을 사용할 수 있습니다.
3. 화면 구성
2.1 주요 영역
| 영역 | 설명 |
|---|---|
| 검색 영역 | 시간 범위, 서버, 오브젝트, 필터 설정 |
| 탭 영역 | 디스커버리 탭/트래픽 분석 탭 |
| 콘텐츠 영역 | 선택한 탭의 상세 데이터 |
2.2 전체 화면

2.3 UI 구성도
4. 사용 방법
3.1 기본 동작
- 시간 범위 설정: 시작일과 종료일을 선택하십시오. (최대 30일)
- 서버 선택: 분석할 수집 서버를 선택하십시오.
- 오브젝트 선택: 모니터링 대상 오브젝트를 선택하십시오.
- 검색 실행: 검색 버튼을 클릭하여 데이터를 조회합니다.
- 탭 전환: 디스커버리 탭과 트래픽 분석 탭을 전환하며 데이터를 확인합니다.
탭 전환 시 자동으로 해당 탭의 데이터를 로드합니다. 별도로 검색 버튼을 클릭할 필요가 없습니다.
3.2 디스커버리 탭
| 영역 | 설명 |
|---|---|
| 시계열 히스토그램 | 시간대별 정상/느린/오류 트랜잭션 분포 |
| 필드 목록 | 표시할 컬럼 선택(왼쪽 패널) |
| 문서 목록 | 트랜잭션 상세 데이터 테이블(DataTable) |
3.2.1 브러시 선택
히스토그램의 특정 바를 클릭하면 해당 시간 범위로 문서 목록이 재검색됩니다.
- 선택: 바 클릭으로 시간 범위 좁히기
- 해제: 동일 바 재클릭으로 전체 범위 복원
히스토그램과 통계는 전체 검색 범위를 유지하며, 문서 목록만 선택한 시간 범위로 필터링됩니다.
3.2.2 셀 클릭 필터
문서 목록의 특정 셀을 클릭하면 해당 값으로 필터링된 검색 팝업창이 표시됩니다.
| 필드 | 설명 |
|---|---|
| service | 서비스명으로 필터링 |
| ipaddr | IP 주소로 필터링 |
| userAgent | 사용자 에이전트로 필터링 |
| objectName | 오브젝트명으로 필터링 |
| referrer | 리퍼러로 필터링 |
| error | 에러 메시지로 필터링 |
| internalId | 내부 ID로 필터링 |
클릭 가능한 셀은 마우스 오버 시 밑줄이 표시되며, 클릭 시 필터링된 검색 팝업창이 나타납니다.
3.3 트래픽 분석 탭
| 영역 | 설명 |
|---|---|
| 유니크 카운트 | 유니크 IP/유니크 IP URL/유니크 IP 사용자 에이전트 수 |
| 상위 집계 데이터 테이블 | IP 주소+요청 경로, IP 주소+사용자 에이전트별 상위 집계(DataTable) |
| 이상 징후 패널 | 임계값 초과 항목 탐지(2-패널 레이아웃) |
| 임계값 컨트롤 | 이상 징후 기준 설정 |
3.3.1 유니크 카운트 카드
화면 상단에 3개의 통계 카드가 표시됩니다. 각 카드에는 이전 기간 대비 변화율(delta) 아이콘이 함께 표시되어 트래픽 증감 추이를 즉시 파악할 수 있습니다.
| 카드 | 설명 |
|---|---|
| 유니크 IP | 조회된 데이터의 유니크 IP 주소 수 |
| 유니크 IP+URL 조합 | 유니크 IP와 요청 경로의 고유 조합 수 |
| 유니크 IP+사용자 에이전트 조합 | 유니크 IP와 사용자 에이전트의 고유 조합 수 |
3.3.2 상위 집계 데이터 테이블(TopN)
두 개의 상위 집계 데이터 테이블(DataTable)이 좌우로 배치됩니다.
| 테이블 | 컬럼 | 설명 |
|---|---|---|
| 상위 IP + URL | IP 주소, 요청 경로, 요청 수 | IP 주소별 가장 많이 호출된 요청 경로 |
| 상위 IP + 사용자 에이전트 | IP 주소, 사용자 에이전트, 요청 수 | IP 주소별 사용된 사용자 에이전트 분포 |
두 테이블은 서로 다른 임계값 기준을 사용합니다.
IP + URL 테이블
- 안내(notice): 5,000회 미만
- 경고(warning): 5,000 ~ 20,000회
- 심각(critical): 50,000회 이상
IP + 사용자 에이전트 테이블
- 안내(notice): 2,000회 미만
- 경고(warning): 2,000 ~ 10,000회
- 심각(critical): 30,000회 이상
검색 후 처음 테이블을 방문하면 첫 번째 행에 펄스(pulse) 애니메이션이 표시됩니다. 클릭하여 드릴다운 분석을 시작하십시오.
3.3.3 이상 징후 2-패널 레이아웃
이상 징후 영역은 데스크톱에서 좌우 2열 배치, 모바일에서 상하 배치되는 반응형 구조입니다.
[데스크톱 — 좌우 배치]
+-------------------------+-------------------------+
| IP+URL TopN 이상 징후 | 사용자 에이전트 확산 / IP Flood |
| (좌측 패널) | 탭 전환 (우측 패널) |
+-------------------------+-------------------------+
[모바일 — 상하 배치]
+------------------------------------------+
| IP+URL TopN 이상 징후 (상단) |
+------------------------------------------+
| 사용자 에이전트 확산 / IP Flood 탭 전환 (하단) |
+------------------------------------------+
- 좌측 패널: IP 주소+URL TopN 이상 징후
- 우측 패널: 사용자 에이전트 확산(UA Spread) / IP 주소 플러드(IP Flood) 탭 전환
3.3.4 이상 징후 패널 컬럼
| 컬럼 | 설명 |
|---|---|
| 소스 (source) | IP 주소 (클릭 시 트랜잭션 조회 팝업창 표시) |
| 타겟 (target) | 요청 경로 또는 사용자 에이전트 (클릭 시 트랜잭션 조회 팝업창 표시) |
| 요청 수 (count) | 해당 조합의 총 요청 수 |
| 사용자 에이전트 (userAgent) | 봇 탐지 시 표시 |
| 봇 유형 (botType) | AI 크롤러, 검색 봇, 소셜 봇 등 자동 분류 결과 |
| 봇 의심 (botSuspect) | 봇으로 의심되나 확실하지 않은 경우 표시 |
이상 징후 패널의 행을 클릭하면 XLOG 검색 팝업창이 열려 해당 IP 주소/요청 경로의 트랜잭션을 상세 조회할 수 있습니다.
5. 상호 작용 이벤트
4.1 클릭 가능한 셀
트랜잭션 익스플로러에서는 다양한 셀을 클릭하여 상세 검색을 수행할 수 있습니다.
| 영역 | 클릭 대상 | 동작 |
|---|---|---|
| 문서 목록 | service, ipaddr, userAgent, objectName | 해당 값으로 필터링된 검색 팝업창 표시 |
| 상위 집계 테이블 | IP 주소, 요청 경로, 사용자 에이전트 | 해당 값의 트랜잭션 검색 팝업창 표시 |
| 이상 징후 패널 | 소스(IP 주소), 타겟(요청 경로/사용자 에이전트) | 해당 값의 트랜잭션 검색 팝업창 표시 |
| 시계열 히스토그램 | 막대 바 | 해당 시간 범위로 문서 목록 재검색 |
4.2 트랜잭션 조회 화면
트랜잭션 익스플로러에서 셀 클릭 시 표시되는 트랜잭션 조회 화면은 특정 필터 값으로 트랜잭션을 상세 조회하는 기능을 제공합니다.
4.2.1 팝업창 목적
| 목적 | 설명 |
|---|---|
| 드릴다운 분석 | 집계 데이터에서 개별 트랜잭션으로 심층 분석 |
| 원인 규명 | 특정 IP 주소/요청 경로/사용자 에이전트의 트랜잭션 패턴 확인 |
| 타임라인 조회 | 선택한 필터의 트랜잭션 타임라인 및 프로파일 확인 |
4.2.2 지원 필터 유형
| 필터 타입 | 설명 | 사용 예시 |
|---|---|---|
| service | 서비스명 텍스트 패턴 | /api/user/* |
| serviceHash | 서비스 해시값 (고속) | 정확한 URL 매칭 |
| userAgentHash | 사용자 에이전트 해시값 | 브라우저/봇 식별 |
| address | IP 주소 | 192.168.1.1 |
| errorHash | 에러 해시값 | 특정 에러 타입 |
| referrer | 리퍼러 | 유입 경로 분석 |
| userId | 사용자 ID | 사용자별 트랜잭션 |
serviceHash, userAgentHash 등 해시값 기반 필터는 클라이언트 사이드에서 처리되어 대용량 데이터 조회 시 빠른 성능을 제공합니다.
4.2.3 팝업창 기능
- 자동 검색: 팝업창 열릴 때 자동으로 검색 실행
- 범위 모드: 트래픽 분석 탭에서는 검색된 시간 범위(from~to)를 그대로 적용
- 타임라인 차트: 트랜잭션 실행 시간 시각화
- 점 클릭 분석: 차트의 특정 점 클릭으로 프로파일 상세 조회
- 닫기 시 중단: 팝업창 닫을 때 진행 중인 검색 자동 중단
4.2.4 사용 시나리오
| 시나리오 | 설명 |
|---|---|
| IP 주소 분석 | 상위 집계 테이블에서 IP 주소 클릭 → 해당 IP 주소의 모든 트랜잭션 조회 |
| 요청 경로 분석 | 이상 징후 패널에서 요청 경로 클릭 → 해당 요청 경로를 호출한 IP 주소 목록 확인 |
| 봇 트래픽 확인 | 봇 표시 항목의 사용자 에이전트 클릭 → 봇의 요청 패턴 분석 |
| 시간 범위 분석 | 트래픽 분석 탭에서 셀 클릭 → 해당 시간 범위 내 트랜잭션만 정확히 조회 |
- 트래픽 분석 탭에서 상위 집계 확인
- 관심 항목의 IP 주소/요청 경로 셀 클릭
- XLOG 검색 팝업창에서 해당 트랜잭션의 타임라인 확인
- 느린 요청(점) 클릭으로 프로파일 상세 분석
4.3 이벤트 흐름
[사용자 클릭]
↓
[필터 값 추출] (IP 주소/요청 경로/사용자 에이전트 해시)
↓
[XLOG 검색 팝업창 열기]
↓
[필터 적용 검색 실행]
↓
[상세 트랜잭션 목록 표시]
6. 이상 감지
5.1 이상 감지 개요
트랜잭션 익스플로러는 설정된 임계값을 초과하는 항목을 자동으로 탐지하여 표시합니다.
| 항목 | 설명 |
|---|---|
| 임계값 | 이상으로 판단할 최소 요청 수 (기본값: 100) |
| 탐지 유형 | IP 주소+요청 경로, 사용자 에이전트 확산, IP 주소 플러드 |
| 봇 분류 | AI 크롤러, 검색 봇, 소셜 봇 등 자동 분류 |
5.2 이상 징후 유형
| 유형 | 코드 | 설명 | 탐지 기준 |
|---|---|---|---|
| IP 주소+요청 경로 이상 | ipurl | 단일 IP 주소가 특정 요청 경로를 임계값 이상 호출 | IP 주소별 요청 경로 호출 수 ≥ 임계값 |
| 사용자 에이전트 확산 | uaSpread | 단일 IP 주소가 다양한 사용자 에이전트로 호출 | IP 주소별 고유 사용자 에이전트 수 ≥ 임계값 |
| IP 주소 플러드 | ip_flood | 단일 IP 주소가 다양한 요청 경로를 대량 호출 | IP 주소별 요청 경로 호출 수 ≥ 임계값 |
사용자 에이전트 확산과 IP 주소 플러드 탐지는 분산 서비스 거부(DDoS) 공격이나 스크래핑 봇을 식별하는 데 활용됩니다.
5.3 봇 분류
이상 징후 패널에서는 사용자 에이전트를 분석하여 봇 유형을 자동으로 분류합니다.
| 봇 유형 | 설명 | 표시 색상 |
|---|---|---|
| ai_crawler | AI 크롤러 (ChatGPT, Claude 등) | 빨간색 |
| search_bot | 검색 엔진 봇 (Googlebot, Bingbot 등) | 노란색 |
| social_bot | 소셜 미디어 봇 | 파란색 |
| seo_tool | SEO 도구 | 노란색 |
| crawler | 일반 크롤러 | 빨간색 |
| browser | 일반 브라우저 | 기본값 |
botSuspect 필드가 표시된 항목은 로봇으로 의심되나 확실하지 않은 경우입니다. 노란색 로봇 아이콘으로 표시됩니다.
5.4 임계값 설정
각 이상 징후 패널에는 **슬라이더와 텍스트 입력 필드가 동시에 제공(ThresholdSlider)**되어, 드래그로 빠르게 조정하거나 정확한 수치를 직접 입력할 수 있습니다.
| 설정 항목 | 기본값 | 실용 범위 | 설명 |
|---|---|---|---|
| IP 주소+URL 임계값 | 5,000 | 5,000 / 20,000 / 50,000 | 단일 IP 주소가 특정 요청 경로를 호출하는 횟수 기준 |
| 사용자 에이전트 확산 임계값 | 2,000 | 2,000 / 10,000 / 30,000 | 단일 IP 주소가 사용하는 고유 사용자 에이전트 수 기준 |
| IP 주소 플러드 임계값 | 2,000 | 2,000 / 10,000 / 30,000 | 단일 IP 주소가 호출하는 요청 경로 수 기준 |
임계값 변경 후 즉시 재계산되어 이상 징후 목록이 업데이트됩니다.
임계값이 너무 낮으면 정상 트래픽도 이상으로 탐지할 수 있습니다. 환경에 맞게 적절히 조정하십시오.
7. 필터 및 검색
6.1 필터 옵션
| 필터 항목 | 설명 | 사용 예시 |
|---|---|---|
| 시간 범위 | 조회할 시간 구간 (최대 30일) | 최근 1시간, 사용자 지정 |
| 날짜 프리셋 | 자주 쓰는 기간 빠른 선택 | 오늘 / 최근 7일 / 최근 30일 |
| 최근 검색 이력 | 최대 3건의 이전 검색 조건 재사용 | 이전 검색 클릭으로 즉시 적용 |
| 서버 | 수집 서버 선택 | collector-001 |
| 오브젝트 | 모니터링 대상 오브젝트 | 모두 선택 / 일부만 선택 |
| 최소 응답시간 | 응답시간 하한 필터 | 1000ms 이상만 조회 |
검색이 진행 중인 동안에는 탭 전환이 비활성화됩니다. 검색 완료 후 탭을 전환하십시오.
6.2 고급 검색
고급 검색 버튼을 클릭하면 다음 조건을 추가할 수 있습니다.
| 조건 | 필터 필드 | 설명 |
|---|---|---|
| 서비스명 | service | 서비스(URL) 패턴 매칭 |
| IP 주소 | ipaddr | 클라이언트 IP 주소 |
6.3 필드 필터 통합
검색 실행 시 검색 영역의 각 조건이 하나의 필드 필터(fieldFilters)로 통합되어 서버에 전달됩니다.
| 검색 조건 | 필터 필드명 | 설명 |
|---|---|---|
| 고급 검색 > 서비스명 | service | 서비스 URL 패턴 |
| 고급 검색 > IP 주소 | ipaddr | 클라이언트 IP 주소 |
| 최소 응답시간 | elapsed | 응답시간 하한 필터 (밀리초) |
| 오브젝트 | objectHash | 선택한 오브젝트의 해시값 |
디스커버리 탭의 시계열 히스토그램은 HistogramV2 API를 사용하여 시간대별 트랜잭션 분포를 표시합니다. 정상(normal), 느린(slow), 오류(error) 트랜잭션을 색상으로 구분합니다.
8. 데이터 갱신
7.1 수동 갱신
- 검색 버튼: 필터 조건 변경 후 데이터 재조회
- 탭 전환: 탭 변경 시 자동으로 해당 탭 데이터 로드
- 임계값 변경: 임계값 입력 후 즉시 재계산
트랜잭션 익스플로러는 실시간 갱신을 지원하지 않습니다. 검색 버튼을 클릭하거나 탭을 전환할 때 데이터를 갱신합니다.
7.2 빈 상태(Empty State) 안내
검색 결과가 없을 때는 단계별 안내 메시지(Progressive Empty State)가 표시됩니다.
| 단계 | 표시 조건 | 안내 내용 |
|---|---|---|
| 초기 상태 | 검색 전 | 검색 조건 설정 안내 |
| 결과 없음 | 검색 후 데이터 없음 | 조건 변경 또는 기간 확장 권장 |
이상 징후 패널 우측 상단의 SeverityLegend 범례를 통해 경고 색상(안내/경고/심각)의 기준을 언제든 확인할 수 있습니다.
9. 문제 해결
8.1 자주 발생하는 문제
| 증상 | 원인 | 해결 방법 |
|---|---|---|
| 데이터가 표시되지 않음 | 선택한 조건에 데이터 없음 | 시간 범위 확장, 서버/오브젝트 재선택 |
| 목록 로딩 지연 | 데이터량 과다 | 필터 조건 추가, 시간 범위 축소 |
| 히스토그램이 표시되지 않음 | 검색 미실행 | 검색 버튼 클릭 |
| 이상 징후가 너무 많음 | 임계값 낮음 | 임계값 상향 조정 |
| 셀 클릭 반응 없음 | 검색 미실행 | 먼저 검색을 실행하십시오 |
검색 가능한 시간 범위는 최대 30일입니다. 장기간 검색 시 응답 시간이 길어질 수 있으므로 필요한 기간만 조회하십시오.
8.2 성능 최적화 팁
- 데이터 양 제한: 시간 범위를 좁혀서 조회하면 응답 속도가 빨라집니다.
- 오브젝트 필터: 관심 있는 오브젝트만 선택하여 불필요한 데이터 제외
- 필드 목록: 필요한 컬럼만 표시하여 렌더링 성능 향상