About Me
소프트웨어 개발자로 초기 경력 동안 여러 임베디드 리눅스 환경에서 클라이언트 사이드의 어플리케이션들을 개발하였습니다.
최근에는 백엔드 개발자로 도메인을 변경하여 새롭게 도전하고 있으며 다양한 기술 스택을 학습하고 있습니다.
항상 더 나은 소프트웨어를 위하여 주로 개인 프로젝트를 통해 업무와 관련된 주제나 관심있는 주제 혹은 다양한 기술에 대하여 직접 구현해보는 것으로 학습하고 있습니다.
Experience
B2B 클라우드 파일 스토리지 서비스 개발
- 기존 서비스 백엔드 유지보수 및 리펙토링을 통한 성능 개선
- 신규 서비스에 대한 설계 및 구현
- 팀내 개발 문화 정착
차량용 브라우저 및 HTML5 어플리케이션 프레임워크 개발
- Chromium 기반 차량용 브라우저 개발 및 유지보수
- 어플리케이션 프레임워크 개발 및 유지보수
- 어플리케이션 프레임워크 SDK 개발 및 유지보수
- 2023 상반기 우수사원 수상
자율주행 차량 서비스를 위한 플랫폼 개발
- 차량내의 여러 센서 연동 및 취득 시스템 개발
- 취득한 센서 데이터 전송 시스템 개발
다산지앤지
인턴
2017.07 ~ 2017.08
- AIM 데이터 사용량 통계 분석
Projects
B2B 클라우드 파일 스토리지 서비스 백엔드 개발
- 서비스 개발
토요타 프로젝트
- 차량용 브라우저
- 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개인 기술 블로그
- 공부한 내용에 대하여 정리하여 기록하기 위한 블로그
proxy 코드 자동생성 툴
- proxy pattern 기반 코드를 자동으로 생성하는 툴 개발
- 생성할 proxy 코드에 대한 middleware 등록 및 실행 구현
- DB 트랜잭션에 대한 지원 구현
consistent hashing 패키지
- consistent hashing 패키지 구현
소규모 object 를 위한 object storage 구현
- api server, metadata storage, data storage 역할을 하는 3가지 주요 컴포넌트로 구성
- GRPC 기반 내부 통신 구현
- RestAPI 기반 객체 업로드/조회/삭제등 기능 구현
- MongoDB 를 통한 객체의 metadata 설계 및 저장 및 관리 구현
- LevelDB 를 통한 객체의 chunk 단위 저장 및 관리 구현
task 기반 비동기 처리 패키지
- Chromium 의 내부 task 기반 비동기 처리를 위한 worker를 Golang 스타일로 구현
실시간 방송 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 구현
- Bloom filter 구현 및 조회 최적화
- Raft 알고리즘 구현
- Storage 서비스를 위한 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/C++
- GoLang
- Python
Infrastructure
- AWS, Docker
- Kafka, MQTT
- Redis
- MySQL, ElasticSearch
Etc
- Git
- JIRA
- Jenkins
Education
학력
- 고려대학교 세종캠퍼스 컴퓨터정보학과 학사 졸업 (2011.03~ 2018.02, 3.71/4.5)
- 환일 고등학교 졸업 (2009.03 ~ 2011.02)
수상이력
- 교내 캡스톤 디자인 경진대회 최우수상 수상 (2017.12)
- 2017년도 1학기 성적우수 표창장 (2017.07)
- 2016년도 1학기 성적우수 총장상 (2016.08)
- 2015년도 2학기 성적우수 학장상 (2016.02)
자격증
- 정보처리기사 (2017.11)
- TOEIC 815 (2016.10)