본문으로 건너뛰기

2단원: 트랜잭션과 XLOG

학습 목표

이 단원을 마치면 다음을 할 수 있습니다.

  • 트랜잭션의 개념과 구성 요소를 설명할 수 있습니다
  • XLOG 차트에서 느린 트랜잭션을 식별할 수 있습니다
  • 프로파일 분석으로 병목 구간(SQL, 외부 호출)을 찾을 수 있습니다

1. 트랜잭션이란?

1.1 기본 개념

트랜잭션(Transaction) 은 사용자의 요청이 서버에 도착하여 응답을 보내기까지의 전체 과정입니다.

사용자 요청(HTTP) → 서버 처리 → 응답 반환
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
이 전체 과정이 하나의 트랜잭션

예를 들어, 사용자가 "주문 내역 조회" 버튼을 누르면 다음과 같은 과정이 하나의 트랜잭션입니다.

순서구간예시
1HTTP 요청 수신GET /api/orders
2비즈니스 로직권한 확인, 데이터 가공
3DB 조회SELECT * FROM orders WHERE user_id = ?
4외부 호출결제 서비스 API 호출
5HTTP 응답 반환JSON 데이터 전송

1.2 왜 트랜잭션 분석이 중요한가요?

응답이 느릴 때, 전체 트랜잭션의 어떤 구간에서 시간이 오래 걸리는지 알아야 문제를 해결할 수 있습니다.

병목 구간증상해결 방향
SQL 쿼리DB 조회에서 대부분의 시간 소비쿼리 최적화, 인덱스 추가
외부 호출외부 API 응답 대기타임아웃 설정, 비동기 처리
비즈니스 로직코드 내부 처리 시간 과다알고리즘 개선, 캐싱 적용

2. XLOG: 트랜잭션 산점도

2.1 XLOG란?

XLOG는 트랜잭션의 응답시간을 시간축 위에 점으로 표시한 산점도(scatter chart)입니다. FlowKat에서 가장 많이 사용하는 분석 도구 중 하나입니다.

  • 가로축: 트랜잭션이 완료된 시간
  • 세로축: 응답시간(ms)
  • 각 점: 하나의 트랜잭션

2.2 XLOG 읽는 법

패턴의미조치
낮은 위치에 점이 고르게 분포정상 상태 (빠른 응답)특별한 조치 불필요
갑자기 높은 위치에 점이 나타남느린 트랜잭션 발생해당 점을 클릭하여 프로파일 확인
일정 높이에 수평선 형태특정 시간만큼 일괄 지연DB Lock이나 타임아웃 의심
점이 사라짐서비스 중단 또는 데이터 미수집서버 상태 확인
XLOG 접근 경로

FlowKat에서 XLOG를 확인하는 방법은 두 가지입니다.

구분경로설명
XLOG 검색/분석대시보드 > XLOG > XLOG 검색/분석시간 범위를 지정하여 트랜잭션을 검색합니다
실시간 XLOG 위젯시스템 대시보드 내 XLOG 차트대시보드에서 실시간으로 트랜잭션을 확인합니다

3. 프로파일: 트랜잭션 내부 분석

3.1 프로파일이란?

프로파일(Profile) 은 하나의 트랜잭션 내부에서 어떤 단계를 거쳤는지 시간순으로 기록한 것입니다. XLOG에서 트랜잭션을 선택하면 프로파일 상세 화면을 볼 수 있습니다.

프로파일에서 확인할 수 있는 정보입니다.

항목설명
스텝별 실행 추적메서드 호출, SQL 실행, 외부 호출 등 단계별 실행 경로
Gap Time각 스텝 사이의 시간 소비를 가로 막대로 시각화
SQL 쿼리실행된 SQL 문장과 바인드 변수
외부 호출HTTP 호출 대상 URL과 응답시간
Overview서비스명, 총 응답시간, 에러 여부 요약 정보

3.2 프로파일에서 병목 찾기

프로파일을 열면 각 스텝의 소요 시간이 표시됩니다. 가장 시간이 오래 걸린 스텝이 병목의 원인입니다.

[예시: 총 응답시간 2,500ms]

스텝 1: 메서드 호출 ████ 120ms
스텝 2: SQL 실행 ██████████████████████████ 2,100ms ← 병목!
스텝 3: 외부 호출 ███ 80ms
스텝 4: 응답 처리 ██ 50ms
Gap Time ██ 150ms

위 예시에서는 SQL 실행이 2,100ms로 전체 응답시간의 84%를 차지하고 있습니다. 이 SQL 쿼리를 최적화하면 응답 속도가 크게 개선됩니다.


4. 실습: XLOG로 느린 트랜잭션 찾기

단계 1: XLOG 페이지에 접속합니다

  • 좌측 메뉴에서 XLOG > XLOG 검색/분석을 클릭합니다
  • 조회할 시간 범위를 설정합니다 (예: 최근 1시간)
  • 대상 서버를 선택한 뒤 검색 버튼을 클릭합니다

단계 2: XLOG 차트에서 느린 트랜잭션을 찾습니다

  • 산점도에서 높은 위치에 있는 점이 느린 트랜잭션입니다
  • 마우스로 해당 영역을 드래그하여 선택합니다
  • 선택 영역 내 트랜잭션 목록이 하단에 표시됩니다

단계 3: 프로파일 상세를 확인합니다

  • 트랜잭션 목록에서 응답시간이 긴 항목을 클릭합니다
  • 프로파일 팝업이 열리면 Overview 영역에서 전체 요약을 확인합니다
  • 스텝 목록에서 소요 시간이 가장 긴 항목을 찾습니다

단계 4: SQL 및 외부 호출 구간을 확인합니다

  • SQL 스텝을 클릭하면 실행된 쿼리 문장과 바인드 변수를 볼 수 있습니다
  • 외부 호출 스텝을 클릭하면 호출 대상 URL과 응답시간을 확인합니다
  • Gap Time 막대에서 스텝 사이 빈 시간이 큰 구간을 확인합니다
SQL 뷰어 권한

SQL 쿼리 상세 보기는 역할 설정에서 ALLOW_SQL_VIEW 권한이 부여된 경우에만 표시됩니다. 권한이 없으면 관리자에게 요청하세요.


학습 완료 체크리스트

이 단원을 마쳤다면 아래 항목을 확인해 보세요.

  • 트랜잭션이 무엇인지, 어떤 구간으로 구성되는지 설명할 수 있다
  • XLOG 차트에서 느린 트랜잭션의 위치를 식별할 수 있다
  • XLOG에서 영역을 드래그하여 트랜잭션 목록을 조회했다
  • 프로파일에서 SQL 스텝과 외부 호출 스텝을 확인했다
  • 어떤 스텝이 병목인지 판단하는 방법을 알고 있다
확인 문제

다음 단원으로 넘어가기 전에 확인해 보세요.

  1. XLOG 차트에서 가로축과 세로축은 각각 무엇을 나타내나요?
  2. 프로파일에서 SQL 스텝이 전체 응답시간의 대부분을 차지한다면, 어떤 조치를 고려해야 하나요?
  3. XLOG 차트에서 특정 높이에 점이 수평선 형태로 나타나면 무엇을 의심해야 하나요?
정답 확인
  1. 가로축은 트랜잭션이 완료된 시간, 세로축은 응답시간(ms)입니다.
  2. SQL 쿼리 최적화(인덱스 추가, 쿼리 개선)를 고려해야 합니다. 프로파일에서 해당 SQL 문장을 확인하여 DBA와 협의하는 것이 좋습니다.
  3. DB Lock이나 타임아웃을 의심해야 합니다. 특정 시간만큼 일괄적으로 지연되는 패턴은 외부 리소스 대기를 의미합니다.

다음 단원

3단원: 이벤트 알람과 이슈 추적에서는 FlowKat의 이벤트 알람 시스템과 이슈 추적 기능을 배웁니다.