Linux 시스템 소프트웨어 개발자 | C/C++, Python, DevOps
[email protected] **| **[email protected] | 010-6399-1665 | [email protected]
요약 (Summary)
- 개방성(Openness)을 지향하는 잡식성 개발자
C++ 기반의 크로스 플랫폼 GUI 프레임워크 개발자로 시작하여, 현재는 언어를 가리지 않는 9년차 시스템 서비스 데몬 개발자입니다. 유지보수는 제품 수명의 대부분을 차지합니다. 여기에 가장 중요한 것은 원활한 협업이라 생각하기에, 그 첫 단추로서 이해하기 쉬운, 수정하기 쉬운 코드와 유연한 설계를 지향하고 있습니다. 1년이란 짧은 팀장 경험 뒤로는 종종 따로 시간을 들여 조직의 생산성 향상을 위한 도구를 만들고 있습니다.
주요 경력 (Work Experience Highlights)
TmaxCloud (구 TmaxA&C, TmaxOS) | 연구원 (소프트웨어 개발자) | 2016. 3. ~ 현재
C++ 기반 GUI 프레임워크 연구/개발
(2016. 2. ~ 2021. 7.)
- 요약
- 자체 디스플레이 서버를 사용하는 C++ GUI 프레임워크 연구/개발
- 핵심 기여
- C++ 라이브러리를 자동으로 Java 라이브러리로 이식하는 방안 연구
- Eclipse IDE 호환에 필요한 SWT 위젯 기능 호환 및 Eclipse 빌드 환경 개선
- Flexbox 레이아웃 기능 제안, 설계 및 구현
- Window, Event Loop, 클립보드, 드래그 앤 드롭 구조 개선방안 설계 및 구현
- 윈도우 환경에서의 빌드 환경 확보 및 호환 설계 구현
- 자체 OS에서 구동하는 윈도우 앱 호환성 개선 및 성능 최적화 방안 설계 구현
- 윈도우 메시지 루프 중첩 대응
- GDI 기반 애니메이션 최적화
- 데미지 영역 관리 구현
- 기타 성능 개선 및 별도 디스플레이 서버 구축 등
- 성과
- FreeBSD 및 리눅스 환경에서 SWT 위젯의 약 80% 기능 리스트 호환, Eclipse IDE 구동 성공
- Eclipse SWT 호환 빌드 환경 정상화 가능성 입증
- 반응형 디자인 및 다양한 컨텐츠 배치 시나리오를 직접적인 구현으로 해결하던 문제 해소
- 데미지 영역 도입, 이벤트 루프 구조 개선으로 일부 앱의 GUI Stuttering 현상 해소
- 데이터 교환 기능 모듈화 및 고도화로 사내 원격 데스크탑 솔루션의 비동기 데이터 교환 기능 요구사항 달성
- 오피스 등 각종 사내 앱 프로파일링을 통해 성능 병목 문제 및 메모리 누수 개선
- 기존 리눅스 환경 외 윈도우 OS 호환으로 멀티 플랫폼 대응력 확보, 사내 오피스 제품의 Windows 출시에 결정적 기여
- USER32, OLE32 등 주요 윈도우즈 라이브러리 기능의 약 60%를 성공적으로 호환
- 창 크기 조절 시 Stuttering이 발생하는 특정 MS 오피스 앱에서 렌더링 소요시간 약 90% 단축
- 기술 스택
- 사용 언어: C++11/14, Java
- 라이브러리 및 도구: JNI, JavaCPP, SWIG, Eclipse Platform, CMake, epoll, pipe
- 운영체제: FreeBSD, Ubuntu, Debian
- 개발 환경: Eclipse IDE, Git, vim, VSCode
- 정적 분석: clang-format
- 런타임 분석: gdb, valgrind (callgrind, massif)
- DevOps: GitLab CI/CD
팀장 생활 1년
(2018. 12. ~ 2019. 12.)
- 핵심 기여
- 이슈 분배 및 팀원 참여 촉진을 위한 프로세스 개선
- 이슈 보드 도입과 코드 리뷰 프로세스 정착을 통한 협업 문화 강화
- 성과
- 조직 생산성 관점에서 개발과 설계, 긍정적인 협업 방법을 고민하는 계기가 되었음
크로미움 오픈소스 코드 기여
(2020. 6. ~ 2020. 9.)
- 요약
- Windows 드래그 앤 드롭 메모리 누수 문제를 해결하고 지속적인 코드 리팩토링 수행
- 핵심 기여
- 크로미움 소스 코드 분석 중 메모리 누수 버그 발견 및 해결
- Gerrit 워크플로우 참여와 코드 리뷰를 통한 지속적 코드 안정성 개선
- 성과
- 오픈소스 커뮤니티 내 기여 이력 및 협업 경험 축적
- 대규모 소스 코드 구조와 프로세스에 대한 이해 증진
- 기술 스택
- 사용 언어: C++14
- 라이브러리 및 도구: Chromium, Windows SDK
- 운영체제: Windows
- 개발 환경: Git, Visual Studio, depot_tools, ninja, Gerrit
- 정적 분석: clang-format
- 런타임 분석: gdb, valgrind (callgrind, massif)
- DevOps: Chromium CI Console
WebRTC 미디어 서버 배포방안 분석
(2020. 11. ~ 2021. 4.)
- 요약
- WebRTC 미디어 서버를 Kubernetes 환경에서 원활하게 배포하는 방안 검토
- 핵심 기여
- OWT 기반 WebRTC 클러스터에서 단일 스레드 + 단일 포트 방식의 도입 가능성과 문제점 분석
- Kubernetes의 서비스 타입(NodePort, LoadBalancer 등)에서의 UDP 트래픽 처리 문제점 분석
- 호스트 네트워크 활용, TURN 서버 우회 방안 등 다양한 배포 전략의 장단점 비교
- 성과
- 단일 포트 할당 방법 확보, WebRTC 미디어 서버에서 다중 포트 할당으로 인한 보안 위협 축소
- 기술 스택