서인석

Inseock Suh

About Me

5년의 경력을 가진 소프트웨어 개발자로 주로 여러 임베디드 리눅스 환경에서 클라이언트 사이드의 어플리케이션들을 개발하였습니다.

항상 더 나은 소프트웨어를 위하여 주로 개인 프로젝트를 통해 업무와 관련된 주제나 관심있는 주제 혹은 다양한 기술에 대하여 직접 구현해보는 것으로 학습하고 있으며 개인 블로그를 운영하여 공부한 내용을 정리하고 있습니다.

최근에는 임베디드 소프트웨어 개발자를 벗어나 백앤드 개발자로 새롭게 발돋움하기 위해 꾸준한 노력을 하고 있습니다.



Experience

오비고

https://obigo.com/

연구원

2020.03 ~ 2023.10

차량용 브라우저 및 HTML5 어플리케이션 프레임워크 개발

  • Chromium 기반 차량용 브라우저 개발 및 유지보수
  • 어플리케이션 프레임워크 개발 및 유지보수
  • 어플리케이션 프레임워크 SDK 개발 및 유지보수
  • 2023 상반기 우수사원 수상

스프링클라우드

http://www.tasio.io/

연구원

2018.01 ~ 2020.03

자율주행 차량 서비스를 위한 플랫폼 개발

  • 차량내의 여러 센서 연동 및 취득 시스템 개발
  • 취득한 센서 데이터 전송 시스템 개발

다산지앤지

인턴

2017.07 ~ 2017.08

  • AIM 데이터 사용량 통계 분석


Projects

오비고

C++17, Chromium

2023.08 ~ 2023.10

토요타 프로젝트

  • 차량용 브라우저
    • Cnemo Media engine 포팅 및 미디어 스택 재구현
    • 미디어 화면 출력을 위한 Transparent Hole 기능 포팅 및 window system 연동
    • WebView Tag 기능 연동 및 구현
오비고

C, C++14, Chromium, PlayReady DRM

2022.06 ~ 2022.09

차량용 브라우저와 PlayReady DRM(SL2000) 연동

  • PlayReady Porting Kit 개발환경 및 브라우저 연동환경 구축
  • 브라우저의 EME 스택과 PlayReady DRM 연동을 위한 구조 설계
  • 브라우저용 PlayReady Plugin 구현
오비고

C++17, Chromium, ASIO, HLS, CoreTrust DRM

2022.05 ~ 2023.03

차량용 브라우저와 CoreTrust DRM 연동을 위한 HLS 프록시 서버

  • 기존의 레거시 프로젝트를 재설계 및 리펙토링을 통한 기능 재구현
  • CoreTrust DRM 연동 구현
  • C++ ASIO library 기반 HLS 프록시 서버 구현
  • HLS 프록시 서버와 브라우저간 연동 Javascript Interface 구현
  • 브라우저와 HLS 프록시 서버간 DBus IPC 통신 구현
오비고

C++17, Chromium

2021.09 ~ 2023.08

현대 프로젝트

  • 차량용 브라우저
    • 렌더링 화면 출력 및 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 통신 구현
오비고

C++14, Chromium, Widevine DRM

2021.08 ~ 2022.03

차량용 브라우저와 Widevine DRM(L3) 연동

  • Widevine CDM 개발환경 및 브라우저 연동환경 구축
  • 브라우저용 Widvine Plugin 기능 구현
  • 각 OTT 서비스별 연동 및 기능 구현
  • OTT 재생중 provisioning 및 decrypt 이슈 처리
오비고

C++17, Chromium

2021.06 ~ 2022.12

브라우저 엔진 업그레이드

  • 브라우저 미디어 스택 업그레이드
  • 브라우저 샌드박스 기능 업그레이드
  • 브라우저 EME 스택에 맞춰 Widevine DRM 업그레이드
오비고

C++14, Chromium, Gstreamer

2021.02 ~ 2021.09

차량용 브라우저의 FFmpeg 기반의 미디어 스택을 Gstreamer 기반의 미디어 스택을 재구현

  • 재생을 위한 Gstreamer 파이프라인 구축 및 구현
  • 쉬운 디버깅을 위한 디버깅용 Gstreamer 파이프라인 구축 및 구현
  • 플렛폼별 Gstreamer decoder 및 sink 연동 및 구현
  • 미디어 재생상 이슈 처리
오비고

C++14, Chromium

2020.09 ~ 2021.03

토요타 프로젝트

  • 차량용 브라우저
    • 타겟 디바이스의 GPU 드라이버 버그로 인한 렌더링 이슈 처리
    • 렌더링중 CPU 사용량 개선을 위해 자주 렌더링되는 Tile 영역 검출 및 Tile 크기 재조정
    • 렌더링중 CPU 사용량 개선을 위해 GPU Rasterize 환경 적용
  • 웹 어플리케이션 프레임워크
    • MISRA, CERT등 C++ secure coding 에 맞춰 기능 재구현
오비고

C++14, QT5

2020.03 ~ 2020.12

HTML5 어플리케이션 프레임워크 SDK

  • QT5 기반 HTML5 어플리케이션 프레임워크 SDK 유지보수 및 추가 기능 개발
  • 리펙토링을 통한 구조 개선
스프링클라우드

C++11, ROS, Kafa, Python3, Flask

2019.03 ~ 2019.12

자율주행 셔틀의 운영자 모니터링 시스템

  • 자율주행 셔틀의 데이터와 관제 연동을 위한 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 영상을 합성하여 하나의 영상으로 구성하여 전송
스프링클라우드

C++11, Gstreamer, RTP, QT5

2018.03 ~ 2018.09

이동체에서의 Camera 및 위치정보 전송 및 저장 시스템

  • Camera 및 GNSS 센서 및 데이터 연동 구현
  • Gstreamer를 통한 Camera 영상 RTP 스트리밍 구현
  • GNSS 센서 데이터 전송을 위한 전송 규격 설계 및 TCP 클라이언트 구현
  • QT5 기반 센서 데이터 획득 및 저장 GUI 어플리케이션 구현
스프링클라우드

C++11, ROS, Python3, Flask, MySQL

2018.02 ~ 2019.08

차량에서의 센서 데이터 획득 시스템

  • ROS 기반 Camera, LiDAR, GNSS 센서 및 데이터 연동 구현
  • 센서 데이터 및 인지 데이터 전송 설계 및 구현
  • 차량 관제를 위한 웹 어플리케이션 구현
    • 데이터 수집 및 저장을 위한 Flask, MySQL 기반 백앤드 구현
    • 데이터 표출(차량 위치, 영상, 인지데이터)을 위한 React 기반 프론트엔드 구현
다산지앤지

R, MySQL

2017.07 ~ 2017.08

AMI 데이터 분석

  • AMI(Advanced Metering Infrastructure) 데이터 시각화 및 통계 분석
  • SVM 알고리즘을 이용한 에너지 사용량 예측 모델 구현
대학교

C#, Xamarin, C++11, MySQL

2017.09 ~ 2017.11

컴퓨터 잠금 및 관제 시스템

  • WPF를 이용한 GUI 어플리케이션 개발
  • Hooking을 이용한 키보드 마우스 및 화면 잠금 기능 구현
  • 시스템 관리 및 관제를 위한 MySQL 데이터 베이스 및 TCP 서버 구현
  • 사용자 인증을 위한 Xamarin Framework 기반 안드로이드 어플리케이션 구현


Personal Projects

개인 깃허브 저장소

  • 개인 프로젝트, 예제 및 테스트 코드들이 저장된 개인 Github 저장소

개인 기술 블로그

  • 공부한 내용에 대하여 정리하여 기록하기 위한 블로그

myStream

github.com/ISSuh/mystream

Java 17, Spring Boot 3, JPA, MySQL, Kafka, Golang, RTMP, HLS

실시간 방송 Platform의 Backend

  • 요구사항에 대하여 DDD 방법론을 응용하여 개발 진행
    • Event Storming, Context Map, Aggregation 도출등 진행과정 문서화
  • MSA 아키텍처로 각 API 서버 구현
  • Kafka 이벤트 기반 동기화 구현
  • 미디어 처리 구현
    • RTMP 스트림을 MpegTs segment로 Transmuxing 구현
    • FFmpeg를 통한 Transmuxing 및 Transcoding 구현
  • 스트리밍을 위한 HLS 미디어 서버 구현

nlink

github.com/ISSuh/link

C++14, HTTP, Framework

범용 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 구현

remote_display_viewer

github.com/ISSuh/remote_display_viewer

C++11, GTK, GoLang

linux 환경에서 screen sharing을 위한 screnn capture server

  • gtk 기반 screen capture module 구현
    • screen capture image를 mpeg로 압축 구현
  • screen sharing을 위한 서버 구현

SimpleRPC

github.com/ISSuh/SimpleRPC

C++11, ASIO

header only RPC 프록시, 서비스 library

  • ASIO library를 사용하여 async 통신 기반 RPC 프록시, 서비스 구현

Image2RTSP

github.com/ISSuh/image2rtsp

C++11, ROS, H264, RTSP

ROS image 스트림을 위한 멑티 세션 RTSP 서버 노드

  • libx264 기반 ROS Image를 h.264로 인코딩 구현
  • Live555 기반 멀티 세션 RTSP 서버 구현

CudaImageProcessing

github.com/ISSuh/CudaImageProcessing

C++11, ROS, CUDA

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)