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)
- 기여한 점
- Master Agent 개발
- 경로탐색/ POI(Point Of Interest) Agent 등을 관리 및 발화 의도 분류
- 멀티턴 대화를 위한 대화 기록 및 대화요약 저장을 통한 개인화 (Redis + Langchain)
- pgvector 기반 개인화 고도화
- GPU 서버 기반 JupyterLab 및 SageMaker 환경 구축하여 LLM 모델 학습 및 서빙 지원
- LLM 서비스 API 제공을 위한 인프라 및 DevOps 체계 구축
- Master Agent 개발
- 활용 기술
- 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초)
- 상황
- Customizable Contraction Hierarchy(CCH) 알고리즘 적용(PoC)
- 활용 기술
- 알고리즘: 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% 단축, 장애 발생 시 롤백 시간 감소, 무중단 배포
- 상황
- 기존 VM 기반 서비스 → 컨테이너 기반 전환
- 활용기술
- 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 패턴 도입하여 명령과 조회 로직을 분리하여 데이터 일관성 강화
- Akka Persistence 및 이벤트 소싱 적용을 통한 데이터 일관성 및 확장성 강화
- 성과
- 이벤트 소싱 적용 후 장애 발생 시 데이터 복구율 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%로 감소
- 상황
- 검색, 기기 설정, VOD 재생 화면 개발 및 서버 연동
- 활용 기술
- Android Studio, Java, Leanback Library
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.