About Me
5년의 경력을 가진 소프트웨어 개발자로 주로 여러 임베디드 리눅스 환경에서 클라이언트 사이드의 어플리케이션들을 개발하였습니다.
항상 더 나은 소프트웨어를 위하여 주로 개인 프로젝트를 통해 업무와 관련된 주제나 관심있는 주제 혹은 다양한 기술에 대하여 직접 구현해보는 것으로 학습하고 있으며 개인 블로그를 운영하여 공부한 내용을 정리하고 있습니다.
최근에는 임베디드 소프트웨어 개발자를 벗어나 백앤드 개발자로 새롭게 발돋움하기 위해 꾸준한 노력을 하고 있습니다.
Experience
차량용 브라우저 및 HTML5 어플리케이션 프레임워크 개발
- Chromium 기반 차량용 브라우저 개발 및 유지보수
- 어플리케이션 프레임워크 개발 및 유지보수
- 어플리케이션 프레임워크 SDK 개발 및 유지보수
- 2023 상반기 우수사원 수상
자율주행 차량 서비스를 위한 플랫폼 개발
- 차량내의 여러 센서 연동 및 취득 시스템 개발
- 취득한 센서 데이터 전송 시스템 개발
다산지앤지
인턴
2017.07 ~ 2017.08
- AIM 데이터 사용량 통계 분석
Projects
토요타 프로젝트
- 차량용 브라우저
- Cnemo Media engine 포팅 및 미디어 스택 재구현
- 미디어 화면 출력을 위한 Transparent Hole 기능 포팅 및 window system 연동
- WebView Tag 기능 연동 및 구현
차량용 브라우저와 PlayReady DRM(SL2000) 연동
- PlayReady Porting Kit 개발환경 및 브라우저 연동환경 구축
- 브라우저의 EME 스택과 PlayReady DRM 연동을 위한 구조 설계
- 브라우저용 PlayReady Plugin 구현
차량용 브라우저와 CoreTrust DRM 연동을 위한 HLS 프록시 서버
- 기존의 레거시 프로젝트를 재설계 및 리펙토링을 통한 기능 재구현
- CoreTrust DRM 연동 구현
- C++ ASIO library 기반 HLS 프록시 서버 구현
- HLS 프록시 서버와 브라우저간 연동 Javascript Interface 구현
- 브라우저와 HLS 프록시 서버간 DBus IPC 통신 구현
현대 프로젝트
- 차량용 브라우저
- 렌더링 화면 출력 및 Touch Input 처리를 위한 브라우저의 window system(Wayland) 연동 구현 및 이슈 처리
- 미디어 화면 출력을 위한 Transparent Hole 기능 포팅 및 window system 연동
- 플렛폼의 CCU/DCU 네트워크 환경 연동
- 브라우저와 플렛폼 내부 DNS 서버 연동 환경 구축
- 내부 네트워크 라우팅용 프록시 어플리케이션 구현
- OTT 서비스의 미디어 재생중 Gstreamer 이슈 처리
- OTT 서비스의 미디어 재생중 Widevine DRM 이슈 처리
- 웹 어플리케이션 프레임워크
- CCOS 플렛폼과 연동을 위한 Web Application의 Lifecycle 구조 설계 및 구현
- CCOS 플렛폼과 연동을 위한 Window 관리 구조 설계 및 구현
- CCOS 플렛폼과 연동하여 network whitelist/balcklist 기능 개발
- CCOS 플렛폼과 연동하여 볼륨, 재생등과 같은 미디어 관련 기능 개발
- CCOS 플렛폼의 GUI 어플리케이션과 웹 어플리케이션 프레임워크간 DBus 통신 구현
차량용 브라우저와 Widevine DRM(L3) 연동
- Widevine CDM 개발환경 및 브라우저 연동환경 구축
- 브라우저용 Widvine Plugin 기능 구현
- 각 OTT 서비스별 연동 및 기능 구현
- OTT 재생중 provisioning 및 decrypt 이슈 처리
브라우저 엔진 업그레이드
- 브라우저 미디어 스택 업그레이드
- 브라우저 샌드박스 기능 업그레이드
- 브라우저 EME 스택에 맞춰 Widevine DRM 업그레이드
차량용 브라우저의 FFmpeg 기반의 미디어 스택을 Gstreamer 기반의 미디어 스택을 재구현
- 재생을 위한 Gstreamer 파이프라인 구축 및 구현
- 쉬운 디버깅을 위한 디버깅용 Gstreamer 파이프라인 구축 및 구현
- 플렛폼별 Gstreamer decoder 및 sink 연동 및 구현
- 미디어 재생상 이슈 처리
토요타 프로젝트
- 차량용 브라우저
- 타겟 디바이스의 GPU 드라이버 버그로 인한 렌더링 이슈 처리
- 렌더링중 CPU 사용량 개선을 위해 자주 렌더링되는 Tile 영역 검출 및 Tile 크기 재조정
- 렌더링중 CPU 사용량 개선을 위해 GPU Rasterize 환경 적용
- 웹 어플리케이션 프레임워크
- MISRA, CERT등 C++ secure coding 에 맞춰 기능 재구현
HTML5 어플리케이션 프레임워크 SDK
- QT5 기반 HTML5 어플리케이션 프레임워크 SDK 유지보수 및 추가 기능 개발
- 리펙토링을 통한 구조 개선
자율주행 셔틀의 운영자 모니터링 시스템
- 자율주행 셔틀의 데이터와 관제 연동을 위한 Kafka 기반 데이터 전송 구조 설계 및 구현
- 네트워크 모니터링(인터페이스, 대역폭 등) 기능 구현
- 차량의 영상 전송을 위한 HTTP 기반 MJPEG 이미지 전송 및 스트리밍 서버 구현
- JPEG 압축시 성능 개선을 위해 GPU 인코딩을 도입하여 약 30%의 CPU 사용율 개선
C++11, ROS, Python3, Kafka, MQTT, WebSocket, RTSP, Docker, Gstreamer, FFmpeg
2018.11 ~ 2019.11
자율주행 차량 운행데이터 관제 연동 단말기
- Camera, GNSS, LiDAR, Radar, IMU, CAN등 센서 및 데이터 연동 구현
- 각 센서 획득 어플리케이션들을 Docker를 도입하여 모듈화
- 관련 내용 특허 등록
- 센싱데이터 전송장치 및 방법(등록번호:1021977350000)
- 자율주행 시스템(등록번호:1022613060000)
- 획득한 센서 데이터 및 차량 데이터 전송 구조 설계 및 구현
- JSON 및 Protobuf 기반 데이터 구조 및 전송 규격 설계
- TCP, MQTT, WebSocket, Kafka 등 관제 시스템 버전에 맞춰 다양한 통신 인터페이스로 전송 구현
- 멀티 Camera 기반 RTSP 서버 구현
- 멀티 Camera 영상 전송시 네트워크 대역폭 최적화를 위해 Camera 영상을 합성하여 하나의 영상으로 구성하여 전송
이동체에서의 Camera 및 위치정보 전송 및 저장 시스템
- Camera 및 GNSS 센서 및 데이터 연동 구현
- Gstreamer를 통한 Camera 영상 RTP 스트리밍 구현
- GNSS 센서 데이터 전송을 위한 전송 규격 설계 및 TCP 클라이언트 구현
- QT5 기반 센서 데이터 획득 및 저장 GUI 어플리케이션 구현
차량에서의 센서 데이터 획득 시스템
- ROS 기반 Camera, LiDAR, GNSS 센서 및 데이터 연동 구현
- 센서 데이터 및 인지 데이터 전송 설계 및 구현
- 차량 관제를 위한 웹 어플리케이션 구현
- 데이터 수집 및 저장을 위한 Flask, MySQL 기반 백앤드 구현
- 데이터 표출(차량 위치, 영상, 인지데이터)을 위한 React 기반 프론트엔드 구현
AMI 데이터 분석
- AMI(Advanced Metering Infrastructure) 데이터 시각화 및 통계 분석
- SVM 알고리즘을 이용한 에너지 사용량 예측 모델 구현
컴퓨터 잠금 및 관제 시스템
- WPF를 이용한 GUI 어플리케이션 개발
- Hooking을 이용한 키보드 마우스 및 화면 잠금 기능 구현
- 시스템 관리 및 관제를 위한 MySQL 데이터 베이스 및 TCP 서버 구현
- 사용자 인증을 위한 Xamarin Framework 기반 안드로이드 어플리케이션 구현
Personal Projects
Github
github.com/ISSuh개인 깃허브 저장소
- 개인 프로젝트, 예제 및 테스트 코드들이 저장된 개인 Github 저장소
Blog
issuh.github.io개인 기술 블로그
- 공부한 내용에 대하여 정리하여 기록하기 위한 블로그
실시간 방송 Platform의 Backend
- 요구사항에 대하여 DDD 방법론을 응용하여 개발 진행
- Event Storming, Context Map, Aggregation 도출등 진행과정 문서화
- MSA 아키텍처로 각 API 서버 구현
- Kafka 이벤트 기반 동기화 구현
- 미디어 처리 구현
- RTMP 스트림을 MpegTs segment로 Transmuxing 구현
- FFmpeg를 통한 Transmuxing 및 Transcoding 구현
- 스트리밍을 위한 HLS 미디어 서버 구현
Distribute persistence key/value storage
- skiplist 기반의 memory indexing engine 구현
- LSM-tree 기반의 storage engine 구현
- raft 알고리즘 기반의 분산 환경상 데이터 동기화 처리 구현
- Storage 서비스를 위한 Rest API 서버 구현
범용 micro service framework
- plugin 방식의 runtime user module load 및 running 환경 구현
- task 기반의 async 환경 구현
- 기본 네트워크 스택 구현
- TCP, UDP socket 클라이언트, 서버 구현
- HTTP parser 및 routing 구현
- HTTP 클라이언트, 서버 구현
- RPC 프록시, 서비스 구현
Cross Platform(Win, Linux)용 State Machine header only library 구현
- standard library만 사용하여 구현
- task 기반 concurrency state 구현
linux 환경에서 screen sharing을 위한 screnn capture server
- gtk 기반 screen capture module 구현
- screen capture image를 mpeg로 압축 구현
- screen sharing을 위한 서버 구현
header only RPC 프록시, 서비스 library
- ASIO library를 사용하여 async 통신 기반 RPC 프록시, 서비스 구현
ROS image 스트림을 위한 멑티 세션 RTSP 서버 노드
- libx264 기반 ROS Image를 h.264로 인코딩 구현
- Live555 기반 멀티 세션 RTSP 서버 구현
CUDA 기반 ROS image 변환 노드
- CUDA, NPP, nvJPEG 기반 ROS Image 변환 구현
- 이미지 크기 변환
- 이미지 Gray Sacle 변환
- 이미지 Jpeg 압축
Skill
업무중 사용한 기술
Languages
- C++11, 14, 17
- Python3
Framework & Library
- ROS
- ASIO
- Gstreamer, FFmpeg
- X11, Wayland
- Widevine CDM, PlayReady PK, CoreTrust
- Protobuf
- Flask
Infrastructure
- linux
- Kafak, MQTT
- Docker
- MySQL
Etc
- Git
- JIRA
- Jenkins
개인 프로젝트중 사용한 기술
Languages
- Golang 1.20
- Java 11, 17
Framework & Library
- Spring Boot 3, JPA, Spring MVC, Spring Data JPA
- JPA, QueryDSL
- Gin
Infrastructure
- redis
Education
학력
- 고려대학교 세종캠퍼스 컴퓨터정보학과 학사 졸업 (2011.03~ 2018.02, 3.75/4.5)
- 환일 고등학교 졸업 (2009.03 ~ 2011.02)
수상이력
- 교내 캡스톤 디자인 경진대회 최우수상 수상 (2017.12)
- 2017년도 1학기 성적우수 표창장 (2017.07)
- 2016년도 1학기 성적우수 총장상 (2016.08)
- 2015년도 2학기 성적우수 학장상 (2016.02)
자격증
- 정보처리기사 (2017.09.07)