ERS- Enterprise Report Solution

컨택센터에서 발생하는 모든 통계 데이터를 수집하여, 그리드 형식으로 통계 데이터 제공 및 컨택센터 운영에 필요한 통합 운영 설정 기능을 제공하는 솔루션.

기존에 회사의 솔루션 중 하나인 ERS 개발자로 근무했으며, 솔루션 개발 및 프로젝트 진행시 고객사와 요구사항 협의 및 요구사항에 맞게 요건 개발을 주 업무로 진행함.

Solution Features


1. 년/월/일/시간/30분/15분/일+시간 별 통계 데이터 제공

  • 검색 조건에 맞게 데이터를 웹 및 엑셀 파일로 제공

2. 컨택센터 상담원 관리 기능

  • 각 벤더(Cisco, Aspect, Avaya) 에서 제공하는 Rest API 를 호출하여 상담원 추가/수정/삭제 기능 개발.

3. 실시간 모니터링 제공

  • Node.js 를 이용해 실시간 통계 데이터 제공

4. 보고서 Wizard 제공

  • 기본적으로 제공하는 보고서 외에도, 관리자가 스스로 통계 보고서를 작성할 수 있도록 동적 보고서 생성 기능 제공

Role


주로 아래 스킬을 사용하여 개발을 진행 함.

1. Spring Framework 3.x

  • Spring Framework 를 사용해 MVC 모델로 통계 보고서 Back-end 기능 개발

    • Client의 Request를 받아 Controller <–> Service <–> Repository <–> DB 순으로 각 계층의 역할에 맞게 기능 개발
  • 각 벤더에 맞게 상담원 추가/수정/삭제 관련 Rest API 서버 기능 개발

    • Cisco / Avaya / Aspect 에서 제공하는 상담원 추가/수정/삭제 및 상담센터 운영에 필요한 데이터를 제공하는 API 기능 개발
    • 타 솔루션에서, 벤더가 무엇인지 알필요 없이, 필요한 요청에 따라 작업을 수행할 수 있게 ERS API Server 가 미들웨어 역할을 진행하도록 기능 개발을 하였음.
  • 사용자가 스스로 보고서를 동적으로 만들 수 있도록 보고서 Wizard 기능 개발

    • 통계 DB 에서 가져올 수 있는 모든 데이터를 XML 파일로 작성 후, 사용자가 해당 데이터 중 필요한 데이터만 뽑아 통계 보고서를 만들면, 해당 컬럼에 대해 DB 에 저장 후 보고서 조회 시, 해당 컬럼만 조회하도록 동적으로 보고서 개발
  • Jsp에 Bootstrap / Jquery 를 이용하여 폴링 방식 위주의 View 화면 개발

2. iBATIS + Oracle

  • 통계 데이터 집계를 위한 쿼리 작성 및 쿼리 튜닝 작업 진행
    • Full scan 유발하는 슬로우 쿼리 대해 쿼리 튜닝
    • 테이블 인덱스 튜닝
      • Insert / Update / Delete 와 같이 자주 변경되는 컬럼에 잡혀있는 인덱스
      • 조건으로 거의 사용되지 않는 컬럼에 걸려있는 인덱스
      • 로우마다 모두 다른 컬럼에 걸려있는 인덱스

3. Node.js

  • Express 를 사용하여 실시간 통계 데이터 제공을 위한 웹 서버 개발

    • 3-Layer Architecture 인 Router <–> Servcie <–> Repository 계층을 나눠 서버 구성

    • 스케줄링 방식으로 벤더에서 제공하는 실시간 데이터를 가져와 객체에 보관 후 Client에 소켓 통신을 통해 데이터를 제공

  • EJS 를 이용하여, SSR 방식으로 실시간 통계 화면 제공

Architecture


1. ERS WAS

ers_structure

2. ERS - Real Time Service

ers_realtime_service

Written on September 7, 2021