LG전자 Zendesk Private App 고도화
LG전자 글로벌 상담 데이터를 기간계로 보내는 Zendesk 사이드바 앱을 맡아, 증상 기반 CallCode 추천으로 상담 입력 흐름을 바꾸고 기간계 신규 시스템(N-GSFS) 전환을 7월·10월 두 차례 대응했습니다.
- 기간
- 2026.03 - 2026.10
- 소속
- 지에스네오텍(주)
- 역할
- 유지보수 · 연동 설계 및 개발
- 기여도
- 100%
Background
LG전자 글로벌 고객센터는 Zendesk로 상담을 받고, 티켓 사이드바에서 동작하는 Private App이 상담 내용을 기간계 서비스 시스템(GSFS)으로 전송합니다. 빌드 도구 없이 순수 HTML/JS로 만들어진 앱(v2.9)을 인수받아 세 단계로 고도화했습니다. 먼저 증상 기반 CallCode 추천으로 상담 입력 UX와 조회 로직을 바꿨고, 이어 기간계가 신규 시스템(N-GSFS)으로 법인별 순차 이관되면서 7월 아시아 8개 법인, 10월 중동·아프리카 11개 법인과 인도네시아의 전환을 앱 쪽에서 대응했습니다.
Key Work
- 01[증상 기반 추천] CallCode 조회 순서를 '제품 선택 후'에서 '증상 선택 후'로 변경하고 연관 CallCode 상위 3개 자동 추천, 전체 목록을 보는 [ALL] 버튼 추가
- 02[증상 기반 추천] Zendesk Sunshine Objects API(구버전)를 Custom Objects API로 전면 전환, 증상-CallCode 매핑 데이터 일괄 생성 함수
- 03[7월 전환] 국가코드 기준 기존 GSFS / N-GSFS 서버 라우팅과 셧다운 기간 임시저장 처리로 법인별 순차 전환 지원
- 04[10월 전환] 유럽(EIC) 리전 추가에 맞춘 리전별 서버 라우팅 구조 개편
- 05[10월 전환] 수동 셧다운 상수를 일정표 기반 자동 전환(셧다운 전 / 중 / 오픈 후 3단계)으로 교체
- 06[10월 전환] Zendesk 서버 시각 보정, 셧다운 안내 문구를 상담원 현지 시각으로 표시
- 07[10월 전환] 다음 전환을 위한 타임라인형 RUNBOOK, 운영 데이터 조회·누락 점검 콘솔 스크립트, Claude Code 작업 규칙(CLAUDE.md)
- 08[운영] 삭제된 CallCode 노출 차단(deleteFlag 필터), Apple Messages for Business 채널 접수 코드 추가
Problem & Solution
Problem 01
상담원은 제품을 고른 뒤 긴 CallCode 목록에서 해당 상담에 맞는 코드를 직접 찾아야 했고, 고객이 말한 증상과 CallCode 사이의 연결이 화면에 드러나지 않았습니다.
Solution
증상(3뎁스)을 먼저 고르면 CallCode를 불러오도록 입력 흐름을 바꾸고, 증상-CallCode 매핑으로 연관 코드 상위 3개를 자동 추천했습니다. 추천 밖의 코드는 [ALL] 버튼으로 전체를 볼 수 있게 했습니다.
Problem 02
앱이 쓰던 Zendesk Sunshine Objects API가 구버전이었고, 조회를 다시 할 때마다 코드 목록이 초기화되지 않고 누적되는 버그가 있었습니다.
Solution
엔드포인트를 Custom Objects API로 전면 교체하고 조회 결과를 클라이언트에서 필터링하도록 바꿨으며, 재호출 시 목록을 초기화해 누적 버그를 고쳤습니다.
Problem 03
7월 첫 전환에서는 일부 법인만 신규 시스템으로 옮기고 나머지는 기존 시스템을 계속 써야 했고, 이관 중 시스템이 멈추는 셧다운 기간의 상담도 잃지 않아야 했습니다.
Solution
상담 건의 국가코드로 기존 GSFS와 N-GSFS 중 보낼 서버를 고르고, 셧다운 기간에는 게이트웨이 임시저장으로 보낸 뒤 오픈 후 전송되게 해 법인별 순차 전환을 지원했습니다.
Problem 04
10월 전환은 법인군마다 셧다운 시작 시각이 달라, 7월처럼 셧다운 상수를 직접 바꿔 재배포하는 방식으로는 대응할 수 없었습니다. 기존 구조도 '전환 대상은 모두 아시아 리전'이라는 전제라 유럽 리전을 표현하지 못했습니다.
Solution
리전·대상 국가·셧다운 시작·오픈 시각을 담은 일정표와 현재 단계를 계산하는 함수로 바꿔, 일정만 미리 등록해 배포하면 재배포 없이 자동 전환되게 했습니다. 전환 국가 목록도 리전별 구조로 개편했습니다.
Problem 05
전 세계 상담원이 쓰는 앱이라 상담원 PC 시계가 틀리면 전환 시각 판단이 어긋나고, 안내 문구의 오픈 일시도 한국 시간으로 하드코딩되어 있었습니다.
Solution
Zendesk API 응답의 Date 헤더로 서버와 PC의 시각 차이를 보정해 서버 시각 기준으로 판단하고, 오픈 시각은 상담원 프로필 타임존의 현지 시각으로 변환해 보여주도록 했습니다.
Problem 06
10월 작업 중 7월 전환에서 '법인 1개 = 국가 1개'로 등록해 10개국이 빠져 있던 것을 발견했고, 앱에 들어 있는 국가코드 파일도 운영 데이터와 달랐습니다.
Solution
운영 Zendesk의 Custom Object를 기준 데이터로 정하고 대상 국가 조회·누락 점검 스크립트를 만들어 누락된 10개국을 바로잡았습니다. 국가코드 선조회를 RUNBOOK과 CLAUDE.md의 필수 규칙으로 남겼습니다.
Problem 07
자동 전환을 도입하자 셧다운 전 기간 내내 상담이 이중 전송되고, 얕은 복사로 원본 요청 값이 바뀌고, 캐시 키 변경 후 [ALL] 버튼이 전체 목록을 못 불러오는 부작용이 생겼습니다.
Solution
이중 전송 분기를 제거하고 요청 데이터까지 깊게 복사하도록 고쳤습니다. 캐시 키 생성 함수를 하나로 통일하고 캐시가 없으면 다시 조회하도록 해 오픈 직전 핫픽스로 배포했습니다.
Results
- ✓증상 기반 추천으로 상담원이 긴 CallCode 목록에서 찾던 과정을 상위 3개 선택으로 단축
- ✓2026.07 아시아 8개 법인 N-GSFS 전환 대응
- ✓2026.10 중동·아프리카 11개 법인(73개국)과 인도네시아 전환을, 당일 일정 변경에도 대응하며 완료
- ✓7월 전환에서 누락됐던 10개국을 찾아 반영하고, 다음 담당자가 그대로 따라 할 수 있는 RUNBOOK과 점검 스크립트 정리
Learnings
- →시각에 따라 동작이 바뀌는 기능은 '누구의 시계, 어느 타임존 기준인가'부터 정해야 한다는 점
- →기준 데이터(source of truth)를 운영 데이터로 명확히 정하는 것의 중요성
- →같은 작업을 두 번 해 보며, 반복되는 운영 작업은 절차서와 점검 도구로 남겨야 같은 실수가 반복되지 않는다는 점
- →AI 코딩 도구를 레거시 분석과 문서화에 효과적으로 접목하는 방법