SKT와 한전의 대용량 Request들을 처리 하기위해 기존 DB 구조 및 쿼리와 소스 코드를 리팩토링 하였으며, 다양한 모뎀들과 인증 서버 및 검침 서버간의 원활한 패킷 통신을 위해 Kafka, Ngnix 서버를 유지보수 하였으며, MariaDB와 Oracle DB를 통한 DB 서버 구축, 그리고 Spring Boot와 Tomcat, JSP를 이용하여 웹 엔진을 구축하였습니다.
제가 진행한 대표적인 성과는 다음들과 같습니다.
1. 네트워크 패킷 분석 자동화
기존 네트워크 패킷을 일일이 규격서와 비교하며 분석을 하던 업무를 Python을 이용하여서 자동으로 패킷을 분석하는 프로그램을 구현하였습니다. 기존 네트워크 패킷 전체를 10분동안 분석하던 것을 1초 미만으로 작업 시간을 단축시켰습니다.
2. DB Insert 쿼리 5초에서 0.2초로 감소
기존 코드의 유지보수를 맡아 기존 코드에서 리팩토링이 필요한 부분을 찾다가, 유난히 Insert에 오래걸리는 코드를 발견하였습니다. 한번에 10,000건 정도의 Insert를 진행하는 기능이었는데 이러한 기능을 단건 쿼리로 진행하고 있었던 것입니다. 이러한 코드를 JDBC의 Batch Insert를 도입하여서 쿼리 질의 시간을 2s에서 0.4s까지 단축시켰습니다.
아래 주소는 해당 과정과 코드에 대해서 설명한 블로그 글입니다.
https://velog.io/@kevin_/우당탕탕-JDBC-Bulk-Insert-도입기
3. Cursor 기반 Pagination 도입
회사의 기존 MySQL 에서 Offset 기반을 통해서 Pagination을 하는 것을 발견하였습니다. 이 때 몇 만건의 데이터가 있는 경우에는 페이지네이션을 위해 데이터를 조회하던 중 3s가 넘게 걸리는 경우가 있었습니다. 그래서 Cursor 기반 페이지네이션을 통해서 페이지네이션을 이용한 조회시 1s 미만의 조회시간으로 단축시켰습니다.
아래 주소는 해당 과정과 코드에 대해서 설명한 블로그 글입니다.
https://velog.io/@yardyard/DB-Cursor-기반-페이지네이션
查看更多