경력기술서 · 2022.10 – 2023.01 · KT / 퓨렌스

우리은행 AI기반 불완전판매방지 태블릿 서비스 고도화

백엔드 개발 및 중계망 구축 · 외부망 · 중계망 · 내부운영망

외부망의 태블릿 앱에서 녹취한 음성을 중계망을 거쳐 내부운영망 녹취 서버까지 안전하게 전달하는 서비스입니다. 중계망 TCP Proxy를 직접 구현하고, 웹뷰 화면이 Zeus Reverse Proxy를 거쳐 내부 WAS로 렌더링되도록 연결했습니다.

Netty TCP Proxy Zeus (Web Server) Reverse Proxy L4 / VIP WebView Spring Linux
00

망 구간 아키텍처

외부망 → 중계망 → 내부운영망 중계망 · 내부운영망 서버 1·2 이중화
외부망
중계망
내부운영망
녹취
TCP
태블릿 앱녹취 · 암호화
TCP
중계 VIP이중화
Proxy 1TCP Proxy
Proxy 2TCP Proxy

직접 구현

TCP
녹취 VIPHash
녹취 AP 1수신
녹취 AP 2수신

기존 솔루션 구축 환경 그대로

화면
HTTP
앱 웹뷰브라우저 렌더링
HTTP
ZeusWeb Server · Reverse Proxy
HTTP
WAS VIPRound Robin
WAS 1Tomcat
WAS 2Tomcat
내부운영망의 녹취 AP · WAS는 우리은행 AI 기반 불완전판매방지 솔루션 구축에서 구성한 환경을 그대로 사용합니다. 중계망이 외부망과 내부운영망 사이를 이어 줍니다.
01

규모와 역할

3개 망 연결외부망 · 중계망 · 내부운영망
TCP Proxy중계망 직접 구현
백엔드 개발태블릿 맞춤 대응 · 중계망 구축
3개월2022.10 – 2023.01
02

태블릿 녹취와 웹뷰 화면 흐름

녹취는 TCP로 중계망 Proxy를 거쳐 녹취 서버로, 화면은 HTTP로 Zeus를 거쳐 내부 WAS로 이어집니다.

태블릿 앱
중계 VIP
TCP Proxy 1·2
녹취 VIP
녹취 AP 1·2
Zeus
WAS 1·2
녹취 전송 (TCP)
① 녹취 · 암호화 음성
② Proxy 1·2 분산
③ TCP 중계
④ Hash · 같은 AP 고정
웹뷰 화면 (HTTP)
⑤ 웹뷰 화면 요청
⑥ Reverse Proxy
⑦ 화면 · 정적 리소스 응답
③ TCP Proxy

외부망의 앱이 내부운영망 녹취 서버에 바로 붙지 않도록, 중계망에 TCP Proxy를 직접 구현해 연결을 이어 줬습니다.

④ Hash

녹취는 한 상담의 음성이 한 파일로 이어져야 하므로, 중계망에서 녹취 서버로 갈 때도 녹취 VIP의 Hash 분산으로 같은 녹취 AP에 고정합니다.

⑤ ⑦ 웹뷰

앱은 웹뷰라 화면을 직접 그리지 않고, Zeus Reverse Proxy를 거쳐 내부 WAS가 렌더링한 화면을 받아 표시합니다.

03

트러블슈팅

01Zeus Reverse Proxy 웹뷰 렌더링 지연

문제

Reverse Proxy를 거치면서 웹뷰 화면의 브라우저 캐시 · 리소스 로딩이 매우 느려 렌더링이 지연됐습니다.

원인 파악

실제 태블릿 웹뷰로 재현하고, Zeus 로그로 리소스마다 몇 ms에 내려받아지는지 확인했습니다. 정적 리소스가 캐시되지 않고 요청마다 내부 WAS까지 다시 받아오고 있었습니다.

해결

Zeus 설정을 조정했습니다. 정적 리소스(JS · CSS · 이미지)에 캐시 헤더(Cache-Control · Expires)를 적용하고, 응답 압축과 Keep-Alive 연결 재사용을 켜서 반복 다운로드와 연결 비용을 줄였습니다.

결과

리소스 재다운로드가 사라져 웹뷰 화면 렌더링 지연을 해소했습니다.

02TCP Proxy 연결 끊김 — 녹취 단절 방지

문제

직접 구현한 TCP Proxy에서 idle timeout 등으로 연결이 비교적 자주 끊겨 녹취가 중단될 위험이 있었습니다.

원인 파악

앱 → Proxy, Proxy → 녹취 서버 양방향으로 로그를 남겨 비교하고, timeout 처리가 되지 않은 구간을 찾았습니다.

해결

timeout 미처리 구간을 보완하고, 연결이 끊겼을 때를 대비한 폴백 전략을 구축했습니다.

결과

연결이 끊기는 상황에서도 녹취가 끊기지 않도록 개선했습니다.

04

핵심성과

안정성 녹취 끊김 없는 TCP 중계

양방향 로그로 timeout 미처리 구간을 찾아 보완하고 폴백 전략을 더해, 연결이 끊겨도 녹취가 이어지게 만들었습니다.

성능 웹뷰 렌더링 지연 해소

Zeus 로그로 리소스별 다운로드 시간을 측정하고 캐시 · 압축 설정을 조정해, 리소스 재다운로드를 없앴습니다.

구축 외부망 태블릿 → 내부망 녹취 연결

중계망 TCP Proxy를 직접 구현해, 기존 녹취 인프라를 그대로 쓰면서 태블릿 녹취를 받을 수 있게 했습니다.