← 홈으로

2026 · 회사

MetaForest 웹·백엔드Node.js · MySQL · AWS

예약·딥링크·기관 관리 등 실사용자 장애를 원인까지 추적해 고쳤습니다

역할
백엔드·웹 개발
기간
2026.05 – 2026.07
상태
운영 중
스택
Node.js, MySQL, Docker, nginx, AWS

배경

MetaForest 웹(예약·기관 관리·상담 기록)과 Node.js 백엔드입니다. 단일 EC2에 dev/prod 컨테이너로 올라갑니다.

딥링크 입장 링크 만료 장애

상담 일정을 변경하면 새 토큰이 발급되지만 옛 토큰의 만료가 따라가지 않아, 예약 문자에 이미 삭제된 토큰이 실려 나갔습니다. 일정 변경 경로에서 토큰 만료를 함께 갱신하도록 고치고, 배포본을 직접 실행해 검증한 뒤 운영에 반영했습니다.

컬럼 하나가 만든 세 가지 증상

AI 상담이 “비활성화”로 보이고, SNS 로그인이 튕기고, 기본 기관이 잘못 표시되는 세 가지 신고가 따로 들어왔는데 원인은 전부 레거시 users.partnerId였습니다. 코드를 고치고 데이터 72명을 전수 교정했습니다. 죽은 조건(|| 상수)은 되살리면 깨져서 제거만 했습니다. 회귀 0을 실측했습니다.

예약 화면 버그 4건

PC 날짜 달력(.dateArrow pointer-events), 채팅 링크 다중 기관 LNB(세션 복구 회귀), 날짜칸 autocomplete, 모바일 예약 기관 select 미채움. 처음엔 세션 복구 회귀로 짚었지만 실제 핵심은 예약 모달 select 미채움이었습니다. 오진단을 기록으로 남겼습니다.

캐시 정책과 그 밖에

  • 배포 직후 옛 JS가 보이던 문제를 쿼리 버전(?v=) + html no-cache + js/css 1일 캐시로 정리했습니다. 배포 도구 쪽 PR과 함께 dev·prod 라이브.
  • 산하 기관 계층 기능(교육청 산하 기관 매핑), Agora webhook 기반 음성 비용 측정 페이지(webhook 중복 세션 레이스 수정 포함).