서버가 멀쩡해도 몇 주씩 모르고 지나던 업무 실패까지 찾아냅니다
서비스 3개의 서버 구성요소 13곳과 송장 전송·알림톡 같은 업무 결과를 감시합니다. 서버 API와 사용자 PC 앱의 오류도 모아, 슬랙 알림을 받으면 관리자 화면에서 원인을 찾아보게 했습니다.
- 0.5초 → 0.1초느린 조회 개선 직후 관측한 주문 서비스 DB 평균 응답
- 6건감시 알림으로 찾아 원인을 고친 운영 문제
- 13곳1분마다 확인하는 서버 구성요소
직접 개발한 관리자 상태 화면입니다. 서비스별 현재 상태와 가동 기록을 보여 줍니다. 내부 식별정보는 가렸습니다.
- 맡은 역할
- 감시 기준과 알림 흐름을 설계했습니다. 감시 프로그램과 서버 상태 화면, 업무 결과 확인, API 오류와 PC 앱 오류 수집, 이를 모아 보는 관리자 콘솔까지 직접 개발했습니다.
- 만들어낸 결과
- 서버 상태와 업무 처리 결과, API와 PC 앱 오류를 지켜보는 감시 체계를 만들었습니다. 경보, 복구 알림, 정기 보고를 보내고 관리자 콘솔도 만들었으며, 감시가 찾아낸 느린 조회와 송장·알림톡 연동 문제 6건의 원인을 고쳤습니다.
- 1서버 감시13곳을 정상, 성능 저하, 장애, 확인 불가로 판정
- 2업무 결과 확인요청이 접수됐는지가 아니라 실제로 처리됐는지로 판정
- 3알림과 보고3번 연속 실패하면 경보, 복구 때 한 번 더, 하루 두 번 정기 보고
- 4오류 수집서버 API 오류와 PC 앱 오류를 모아 같은 오류끼리 묶음
이 기술로 기대하는 변화
작은 팀의 운영 대응
담당자가 관리 화면을 계속 지켜보지 않아도 이상과 복구를 알림으로 받습니다. 반복 점검에 들던 시간을 원인을 찾는 데 쓸 수 있습니다.
고객보다 먼저 문제 찾기
서버가 정상이어도 배송 정보나 업무 알림이 빠지는 실패를 잡아내, 고객 문의가 오기 전에 조치할 수 있습니다.
반복되는 오류 찾기
서버와 사용자 PC에서 난 오류를 같은 것끼리 묶어 반복되는 문제를 찾고, 고친 뒤 나아졌는지 비교할 수 있게 기록을 남깁니다.
문제와 해결
문제서버가 정상이어도 송장 전송이나 알림톡 발송은 실패한 채 남을 수 있습니다.
해결요청이 접수됐는지와 실제로 처리됐는지를 따로 보고, 실패한 업무와 끝나지 않은 실행도 감시 대상에 넣었습니다.
문제관리자 분석 작업이나 첫 결과를 기다리는 상태가 실제 장애처럼 보였습니다.
해결작업 출처를 구분하고 수집 대기·결과 미확인·확정 실패를 나눠, 대응이 필요한 이상을 가려내게 했습니다.
문제장애 중에 수집 연결이 끊기면 그동안의 상태 이력이 비었습니다.
해결관측을 임시 보관했다가 연결이 돌아오면 중복 없이 보내, 장애부터 복구까지 이력이 끊기지 않게 했습니다.
문제서버가 늦거나 끊겼을 때 오류 전송을 기다리면 가구빌더 편집과 출력이 멈춥니다.
해결편집과 출력을 기다리게 하지 않고 오류를 따로 전송하며, 같은 오류의 반복 전송을 제한했습니다.
문제오류 메시지에 토큰이나 파일 경로가 섞여 들어올 수 있습니다.
해결PC와 서버 양쪽에서 민감한 부분을 지운 첫 줄만 남기고, 도면 내용은 보내지 않습니다.
확인한 결과
- 관리자 상태 화면과 슬랙 보고, 장애·복구 이력을 서로 대조했습니다.
- 느린 조회 수정 직후 DB 평균 응답이 0.5초대에서 0.1초 안팎으로 변한 운영 그래프를 확인했습니다.
- 송장·알림톡·DB 연결 등 감시 알림에서 원인을 추적해 조치한 6건을 기록했습니다.
13곳을 1분마다 확인합니다
설계·가공 플랫폼8곳
- Nginx (운영, 개발)앞단 서버 자체 응답
- API 서버 (운영, 개발)상태 응답과 엔진 로드
- GPU 워커 (운영, 개발)마지막 하트비트
- DB (운영, 개발)연결과 느린 조회
가구 주문 서비스3곳
- 웹 서비스 (운영)첫 화면과 앱 파일 응답
- DB (운영)연결과 느린 조회
- DB 함수 호출 (운영)함수별 평균 응답 시간
공장 관리 서비스2곳
- 웹 서비스 (운영)로그인 화면과 앱 파일 응답
- API 서버 (운영)읽기 전용 요청 응답
- 정기 작업
- 결제 후처리
- 작업 대기열
- 외부 연동
- 알림톡 발송
오류는 생길 때마다 모읍니다
서버 API설계·가공 플랫폼
5xx와 처리하지 못한 예외는 모두, 4xx는 표본만
API 오류 화면같은 오류끼리 묶고 처리 상태와 이력을 남김
사용자 PC 앱가구빌더, 커넥터, 플로터
작업을 멈추지 않고 오류 위치와 대상만 전송
로컬 앱 이슈 화면프로그램별 추이, 오류 코드별 묶음, 처리 완료 표시
감시가 찾아낸 문제 6건
주황 선이 주문 서비스 DB입니다. 기록을 시작한 저녁, 느린 조회를 고친 직후 평균 응답이 0.5초대에서 0.1초 안팎으로 떨어졌습니다.
감시를 켠 첫날, 주문 서비스 DB의 평균 응답이 0.5초 안팎으로 느렸고 관리 화면의 기간별 추이 조회가 평균 4~5초씩 걸리는 것이 잡혔습니다.
조회를 고친 직후 DB 평균 응답이 0.1초 안팎으로 떨어졌습니다. 같은 원인이던 조회 17개도 같은 방식으로 고쳤습니다.
배포 점검 작업이 DB 트랜잭션을 연 채 파일 저장소를 읽어, 연결을 10초 넘게 붙잡았습니다.
DB 조회만 연결 안에서 하고, 파일 확인은 연결을 닫은 뒤 하게 했습니다.
같은 순간 시작한 송장 전송 두 건이 함께 실패로 기록됐습니다.
전송 충돌과 같은 송장의 중복 전송을 없앴습니다.
배송 알림톡 4건의 발송 결과가 끝내 오지 않았습니다. 최근 120일을 점검하니 결과를 못 받은 메시지가 65건이었습니다.
발송 뒤 결과가 없는 메시지를 1분마다 다시 조회해 맞추게 했습니다.
주문 하나가 9월 초부터 6주 동안 송장 전체 전송 때마다 실패하고 있었습니다.
이미 등록된 번호와 비교해 완료로 기록하게 고쳤습니다.
가상계좌 입금 때 주문 완료 알림톡을 다시 보내다 거절됐습니다.
주문할 때 이미 보낸 알림톡을 입금 때 다시 보내지 않게 했습니다.
운영에서 확인하는 화면
하루 두 번 모든 구성요소의 상태를 보고합니다. 장애와 복구 경보도 같은 채널로 보냅니다.
잠깐 튄 값과 계속되는 이상을 비교해 봅니다.
장애가 시작된 때부터 복구까지 기록합니다.