진단 도구와 계층
주제 목차 · 다음: 결함 재현과 원인 분석
이 문서의 결과: 계층별 진단 도구와 확인 순서를 설명한다.
왜 순서가 중요한가
거래 하나가 실패하면 화면, transact, dbclient(또는 function)까지 여러 계층을 거칩니다. 아무 로그나 먼저 열어 보면 시간이 오래 걸립니다. 01. HandStack 기초 개념에서 배운 요청 흐름을 거슬러 올라가는 순서로 진단하면 원인 범위를 빠르게 좁힐 수 있습니다.
진단 순서
| 순서 | 확인 위치 | 무엇을 보는가 |
|---|---|---|
| 1 | 브라우저 개발자 도구 네트워크 탭 | 요청이 서버에 도착했는가, 응답 코드는 무엇인가 |
| 2 | 응답 본문 | message, acknowledge 값으로 실제 성공/실패 판단 |
| 3 | 거래 이력(GlobalID) | 어느 서비스ID에서 실패했는지 추적 |
| 4 | 모듈별 로그(transact/dbclient/function) | SQL 오류, 함수 예외, 계약 문법 오류 확인 |
각 단계는 이전 단계에서 "정상"으로 확인된 다음에만 넘어갑니다. 예를 들어 네트워크 탭에서 요청 자체가 나가지 않았다면, 서버 로그를 뒤지기 전에 화면 스크립트의 이벤트 연결부터 다시 봐야 합니다.
도구별로 확인할 수 있는 것과 없는 것
| 도구 | 확인 가능 | 확인 불가능 |
|---|---|---|
| 네트워크 탭 | 요청 전송 여부, HTTP 상태 코드, 응답 원문 | 서버 내부에서 어느 SQL이 실행됐는지 |
| 거래 이력 | GlobalID, 성공/실패, 소요 시간 | 예외의 상세 스택 |
| 모듈 로그 | 예외 스택, SQL 오류 메시지 | 화면에서 실제로 어떤 값을 보냈는지(로그에 남기지 않았다면) |
한 도구만으로 전체 그림을 볼 수 없기 때문에, 계층을 넘나들며 근거를 모으는 것이 진단의 핵심입니다.
이것만 기억하세요
- 요청 흐름의 앞 단계부터 순서대로 확인한다.
- 하나의 도구로 모든 것을 알 수 없다 — 화면·이력·로그를 함께 봐야 한다.