👤: 김용건 / 1995.07.19 (31세)
✉️ : [email protected]
📞 : 010-8266-6583
📃 : https://blog.yonggeon.kr
🌐 : https://github.com/Potwings

개발의 주목적은 사용자에게 더 나은 경험을 제공하는 것이라 생각합니다.
사용자의 니즈를 충족시켰을 때 제 작업이 진정한 가치를 가지게 되고, 저의 개발자로서의 가치도 높아진다 생각합니다. 저는 이러한 신념을 바탕으로 스팸 메일 차단 솔루션을 개발하며 사용자들이 원치 않는 메일을 더 쉽게 걸러낼 수 있도록 복합 조건 필터 기능을 개발하였고, 메일을 더 빠르게 받아 볼 수 있도록 필터링 성능을 개선하고자 하였습니다. 때로는 운영 중인 고객사에서 기능 추가 요청도 있었습니다. 한번은 메일 발송량 제한 기능 추가 요청을 받았고, 팀 내에서는 이를 어떻게 개발할지에 대한 이야기가 오가고 있었습니다. 하지만 제 생각은 달랐습니다. 고객이 기능 추가를 요청하게 된 근본적인 이유가 있을 것이라 생각하였고, 확인 결과, 사용자의 계정이 탈취되어 외부 공격자가 악성 메일을 발송하는 것을 방지하기 위함이었습니다. 저는 개발 대신 DNS에 노출되어 있는 서버에서 메일 발송 기능을 비활성화하고, 기존 사용자들은 DNS에 노출되어 있지 않은 발신 서버를 통해 메일을 발송할 수 있도록 정책을 수정하여 개발 공수를 들이지 않고 이를 해결할 수 있었습니다.
솔루션의 실사용자뿐만이 아닌 제가 구축한 프로세스로 내부 업무를 진행하는 동료들 또한 소중한 사용자였습니다. 이들에게 가장 중요한 것은 효율적으로 업무를 수행하고 정시에 퇴근할 수 있도록 하는 것이라 생각하였습니다. 매번 수동으로 진행해야 했던 패키지 배포 작업을 CI/CD 파이프라인을 구축하여 자동화하고, 신규 서비스 오픈 시 라이센스를 발급 후 전달해 주어야 했던 프로세스를 자동화하여 반복되는 업무로 인한 피로도를 줄였습니다. 또 서비스 재기동이 필요하여 업무 시간 외 진행해야 했던 라이센스 갱신 프로세스를 개선하여 그들의 불필요한 야근을 줄였습니다.
경력
크리니티 / R&D 팀 (2021.06 ~ )
스팸 메일 차단 솔루션 개발 및 운영 (2021.06 ~ )
- Spring Web 관리자 페이지 & Netty 기반 메일 수/발신 엔진으로 구성된 스팸 메일 차단 솔루션 기능 개발 및 개선
- 엔진 기동 시 필터를 메모리에 올리는 과정에서 발생하는 서비스 중단 시간을 줄이기 위해 사용자 필터 캐싱하도록 구조 변경. 서비스 기동 시간 개선 (1분 40초 → 15초), 필터 Heap 메모리 사용량 20% 개선
- 하나의 조건만으로 특정하기 힘든 악성 메일을 사용자가 쉽게 차단할 수 있도록 하나의 필터에 여러 개의 조건을 추가할 수 있도록 필터 구조 개선. 이를 주요 요구사항으로 하는 5개의 고객사 계약 성사
- 검사 예외 아이피 기능이 추가됨에 따라 등록된 예외가 많아질 경우 대비하여 아이피 대역대 포함 여부 확인 기능 시간복잡도 개선 (O(n) → O(logN)) (Github : [링크] https://github.com/Potwings/IPChecker )
- 필터가 많아질 경우에도 사용자가 메일을 빠르게 받아볼 수 있도록 필터링 과정에서 진행되는 문자열 매칭 아호코라식 알고리즘을 적용하여 개선 시도 (36ms → 5ms) (작업 일지 : [링크] https://blog.yonggeon.kr/64 )
- 지나치게 긴 시간 동안 CPU를 과점유하여 서비스에 영향을 끼치던 만료 데이터 삭제 프로세스를 MySQL 쿼리 개선을 통해 성능 개선 (22시간 → 3분) (작업 일지 : [링크] http://blog.yonggeon.kr/54 )
- 관리자 웹과 메일 엔진 간 SMTP를 통한 설정값 동기화 과정에서 설정이 엔진에 반영되지 않는 문제가 때때로 발생. 이를 DB Polling 방식으로 개선하여 설정값 누락률 0% 달성
- 직접 수동으로 진행해야 해 약 15분이 소요되던 패키지 배포 작업이 비효율적이라 생각되어 Jenkins 파이프라인을 구성을 통한 자동화
- 사내 엔지니어들의 역량을 향상시켜 반복되는 유지 보수 문의를 줄이기 위해 사내 노션에 15개의 지식 공유 문서 & 17개의 트러블 슈팅 문서 작성, 5회의 릴리즈 세미나를 진행하여 지식 공유 주도
- 공공기관 클라우드 서비스를 위해 NAVER CLOUD Linux 서버에 운영 인프라 구성, CCE, CVE 취약점 조치하여 CSAP SaaS 보안 인증 취득
- 서비스 업그레이드 진행 시에도 사용자들이 불편함 없이 서비스를 이용할 수 있도록 Blue/Green & Rolling 방식을 결합한 배포 프로세스 구성하여 무중단 업그레이드 수행