Who am I

  • Backend Engineer

What I Interested in

Programming Language & Framework

  • Scala, Lagom, Akka
  • Java, SpringBoot, WebFlux
  • Python, FastAPI, LangChain
  • Javascript, React, Node.js

Infra

  • Docker & Docker Compose
  • Kubernetes
  • AWS, Azure

LLM

  • LangChain, LangSmith
  • pgvector
  • RAG

ETC

  • Cassandra, Redis, PostgreSQL, PostGIS
  • Kafka
  • Jenkins
  • Android

Projects

KT내비게이션 앱 내 챗봇 AI Agent 개발

  • 기간 : 2024.6 ~ 2024.12
  • 프로젝트 개요
    • 멀티턴 대화를 지원하는 LLM 기반 챗봇 서비스 개발(PoC)
  • 기여한 점
    1. Master Agent 개발
      • 경로탐색/ POI(Point Of Interest) Agent 등을 관리 및 발화 의도 분류
      • 멀티턴 대화를 위한 대화 기록 및 대화요약 저장을 통한 개인화 (Redis + Langchain)
      • pgvector 기반 개인화 고도화
      • GPU 서버 기반 JupyterLab 및 SageMaker 환경 구축하여 LLM 모델 학습 및 서빙 지원
    2. LLM 서비스 API 제공을 위한 인프라 및 DevOps 체계 구축
  • 활용 기술
    • Backend: Python, FastAPI, LangChain, Redis, pgvector
    • Infra & DevOps: AWS(Lambda, API Gateway, EC2, EKS), Jenkins

경로탐색엔진 성능 고도화

  • 기간 : 2023.7 ~ 2024.6
  • 프로젝트 개요
    • 기존 내비게이션 엔진의 경로 탐색 속도를 서울역-제주공항 기준 7초 → 2초 미만으로 단축목표
    • 양방향 다익스트라, Contraction Hierarchy(CCH) 알고리즘을 활용하여 효율적인 도로네트워크 그래프 모델을 구성하고, 이를 기반으로 빠른 속도의 경로탐색 구현
  • 주요 역할 및 성과
    • Customizable Contraction Hierarchy(CCH) 알고리즘 적용(PoC)
      • 상황
        • 도로네트워크 링크 수 증가(2024년 3,757,898개)로 인한 경로탐색 속도 저하 문제
        • 기존 양방향 다익스트라알고리즘에서는 모든 도로네트워크를 탐색해야 했음
      • 기여한 점
        • Contraction Hierarchy 알고리즘을 통해 경로탐색 모델을 구축
        • 그래프의 노드를 가중치(큰길우선, 무료도로우선 등) 우선순위에 따라 경로 탐색 시 불필요한 경로를 제외하는 전처리 작업을 통해 경로탐색 효율성 향상
      • 성과 및 영향
        • 경로탐색 속도 대폭 개선 (서울역 → 제주공항 / 7초 → 약 3초)
  • 활용 기술
    • 알고리즘: Bidirectional Dijkstra, Contraction Hierarchy(CCH)
    • PostgreSQL(PostGIS), Java

KT 내비게이션 서버 컨테이너화

  • 기간 : 2023.1 ~ 2023.6
  • 프로젝트 개요
    • 기존 VM 기반으로 운영되던 서비스를 KT Cloud 컨테이너 환경으로 이전하여 리소스 최적화
  • 주요 역할 및 성과
    • 기존 VM 기반 서비스 → 컨테이너 기반 전환
      • 상황
        • 기존 서비스는 VM 환경에서 개별적으로 운영되어 서버 리소스 낭비가 발생, 배포 및 확장성 관리가 어려운 문제가 있었음
      • 기여한 점
        • API Call 수 및 리소스 사용률 기반으로 필요 인프라 설계, 유관 부서들과 논의하여 인프라 구축
        • Docker & k8s를 활용하여 기존 VM 기반 서비스를 컨테이너 환경으로 전환
        • 필요 시 자동 확장(Auto Scaling)이 가능하도록 k8s Horizontal Pod Autoscaler(HPA) 적용
        • 인프라 전환 시 높은 보안 수준을 달성하기 위해 보안단과 협업하여 보안성 검토 프로세스를 진행
      • 성과 및 영향
        • VM 서버 30대 → VM 서버 8대(컨테이너 16대)로 축소, 운영 비용 절감 및 효율성 향상
        • k8s 기반으로 서비스 가용성이 99.99% 이상 유지
    • CI/CD 파이프라인 구축을 통한 개발 환경 생산성 증가
      • 상황
        • 기존 VM 환경에서는 수동 배포(커맨드) 방식으로 운영되어 배포 시간이 길고, 운영 중 장애 발생 시 롤백 절차가 복잡했음
      • 기여한 점
        • Jenkins 기반 CI/CD 파이프라인 구축 (빌드 → 테스트 → 배포)
        • 쿠버네티스 설정값 튜닝을 통한 배포 안정성 강화
      • 성과 및 영향
        • 배포시간 약 50% 단축, 장애 발생 시 롤백 시간 감소, 무중단 배포
  • 활용기술
    • Docker, 쿠버네티스, Jenkins

KT 내비게이션 통합로그 시스템 개발

  • 기간 : 2022.9 ~ 2022.12
  • 프로젝트 개요
    • 내비게이션 앱에서 발생하는 GPS 정보, 사고제보, 그룹 주행 정보 등의 로그와, 관리자시스템에서 입력하는 유고 정보(사고 차량, 도로 통제 등) 를 효율적으로 수집하고 분석할 수 있도록 로그 집계 시스템 개발
    • 기존에는 각 시스템에서 여러 유형의 로그를 모두 처리해야 했지만, 모든 로그를 집계하는 통합로그 시스템 구축을 통해 하나의 시스템에만 의존할 수 있도록 개선
  • 기여한 점
    • 관리자 시스템에서 유고정보 입력 및 데이터 흐름 개선
      • React 기반 관리자페이지에서 유고정보 입력 기능 개발
      • SpringBoot 서버에 유고정보 저장 및 Kafka 메시지 Pub 로직 추가
    • Kafka 기반의 통합로그 시스템 개발
      • 내비게이션 앱에서 서버로 전송하는 GPS, 사고제보, 그룹주행 로그 등을 Kafka에 메시지 Pub
      • Kafka 기반으로 유고정보를 메시지 Sub하고 내비게이션 앱으로 실시간 응답
  • 성과 및 영향
    • 로그 집계 및 메시징 시스템 도입으로 유지보수성 향상
    • 로그의 원천으로부터 다른 시스템간의 결합도 감소
  • 활용 기술
    • React, SpringBoot, Spring Webflux, Kafka

KT 내비게이션 녹색교통 패턴 정책화

  • 기간 : 2022.7 ~ 2022.8
  • 프로젝트 개요
    • 기존에는 변동이 거의 없는 녹색교통 정책이 Batch 방식으로 1시간마다 긴급정보 서버로부터 불필요하게 갱신
    • 이를 개선하기 위해 KT내비게이션 관리자시스템에서 직접 녹색교통 정책을 등록 및 관리하고, 정책 변경이 발생할 때만 앱에 적용되도록 이벤트 기반으로 최적화.
  • 기여한 점
    • 관리자시스템에서 녹색교통 정책 입력 및 메시지 발행 기능 개발
      • React 기반 관리자페이지에서 녹색교통 입력 기능 개발
      • SpringBoot 서버에 녹색교통 저장 및 Kafka 메시지 Pub 로직 추가
    • Kafka 기반 메시징 시스템 구축
      • 녹색교통 정책 Topic을 생성, 관리자시스템에서 Pub, 내비게이션 GW서버에서 Sub
    • 내비게이션 GW서버의 2주치 정책 스케줄 생성 및 앱 활성화 시 정책 로딩 로직 개발
  • 성과 및 영향
    • 정책 변경 발생 시에만 유효한 데이터를 제공하여 불필요한 요청 제거
  • 활용 기술
    • React, Spring Boot, Kafka, Scala, Lagom

KT내비게이션 API GW 내재화 및 고도화

  • 기간 : 2021.9 ~ 2022.6
  • 프로젝트 개요
    • 원내비 내재화 프로젝트에서 API Gateway 서버 개발 담당
    • 내비게이션 서비스의 트래픽 처리 최적화, 사용자 데이터 관리 시스템 구축, 인증 시스템 구축
  • 주요 역할 및 성과
    • 동기 호출 개선
      • 상황
        • 출퇴근 시간과 명절과 같은 높은 트래픽 유입시 서비스 간 통신이 동기호출방식이 많아 병목 현상 발생, 장애 발생 시 서비스 전체가 영향 받음
      • 기여한 점
        • 비동기 프로세싱 적용
          • 기존 동기 API 호출을 Akka Actor 기반 비동기 메시징 방식으로 변경, 서비스간 병목 현상 제거
          • Kafka를 활용, 일부 요청을 이벤트 기반 아키텍처로 변경
          • Circuit Breaker 패턴을 도입하여 특정 서비스 장애 발생 시 API GW의 정상 작동 보장
      • 성과
        • 일부 쓰기 작업에 대해 비동기 메시징 적용, API 응답속도 40% 단축 (평균 1.5초 -> 900ms)
        • Circuit Breaker 도입으로 장애 발생 시 자동 복구율 향상
    • 데이터 정합성 개선
      • 상황
        • 기존시스템은 JPA, RDBMS를 사용하여 다중 인스턴스 환경에서 동일한 사용자 데이터가 여러 개의 노드에 존재, 특정 시점에서 다른 노드와 데이터 불일치 발생
      • 기여한 점
        • Akka Persistence 및 이벤트 소싱 적용을 통한 데이터 일관성 및 확장성 강화
          • 실시간 주행 기록, 상태 정보 등의 데이터를 이벤트 소싱으로 저장하여 최신 상태를 유지하고 트랜잭션 일관성 확보
          • 데이터베이스 레벨에서 Read/Write 분리하고, 고속 데이터 쓰기/읽기 성능을 위해 Cassandra 도입
          • CQRS 패턴 도입하여 명령과 조회 로직을 분리하여 데이터 일관성 강화
      • 성과
        • 이벤트 소싱 적용 후 장애 발생 시 데이터 복구율 99.9%
        • 데이터 정합성 문제로 인한 고객 문의 80% 감소
    • 로드밸런싱 문제 개선
      • 상황
        • 기존시스템은 트래픽이 몰릴경우 특정 노드가 과부하 상태가 되는 문제 발생
        • 로드밸런싱이 동기 방식 기반으로 적용되어 스케일링이 어려움
      • 기여한 점
        • Akka의 Cluster Sharding 적용, 특정 노드에 부하가 집중되는 문제 해결, 인스턴스ID를 기반으로 노드 간 트래픽을 자동으로 분산
        • OpenResty, Kong을 활용하여 트래픽을 균등 분산
      • 성과
        • 서버 과부하 문제 해결 -> 평균 CPU 사용률 5% 감소
        • 서비스 다운타임 60% 감소 -> SLA 개선
  • 활용 기술
    • Scala, Lagom, Akka, Kafka, Cassandra, OpenResty

지니TV Android 네이티브 앱 전환 개발

  • 기간 : 2020.12 ~ 2021.8
  • 프로젝트 개요
    • 웹뷰 기반으로 제공되던 기존 올레TV 서비스를 안드로이드 TV 플랫폼으로 전환
  • 주요 역할
    • 검색, 기기 설정, VOD 재생 화면 개발 및 서버 연동
      • 상황
        • 기존 올레TV 검색 기능은 웹뷰 기반이라 속도가 느리고 관련 VoC가 많았음
        • 리모컨 포커스 손실 이슈, 예상치 못한 UI 비활성화 이슈 발생
      • 기여한 점
        • 안드로이드 TV 환경에 맞춰 Leanback 라이브러리 기반의 검색 UI 개발
        • AI스피커(기가지니)를 연동한 음성 검색기능 추가를 통한 사용자 편의성 강화
        • Leanback 라이브러리 및 커스텀 포커스 핸들링을 적용, Fragment 간 포커스 이동 경로 최적화
      • 성과 및 영향
        • 기존대비 UI 렌더링 속도 2배 향상, 속도관련 VoC 발생률 0%로 감소
        • 검증팀 테스트 결과 포커스 사라지는 결함 0%로 감소
  • 활용 기술
    • Android Studio, Java, Leanback Library
Author

hamin

Posted on

2025-03-07

Updated on

2025-03-12

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.