Chang Hyun Choi

새로운 언어와 프레임워크에 관심이 많은 윈도우 어플리케이션 개발자

About Me

윈도우 어플리케이션 개발자로, C++과 C#을 주력 개발 언어로 사용하고 있습니다.

팀내에서 시리얼 및 이더넷 기반에서 동작하는 디바이스부터 RESTAPI 기반 서버까지 다양한 통신 인터페이스 환경에서 연동하는 모듈을 설계 및 개발 업무를 수행하고 있습니다.

프로젝트 수행시 요구 사항에 따라 MFC, Unity 등 다양한 플랫폼에서 유무료 UI 라이브러리를 활용한 개발 업무도 수행하고 있습니다.

사람들과 소통을 좋아하는 편이라, 카카오톡이나 슬랙 등 다양한 소셜 플랫폼들을 통해 다양한 도메인의 개발자들과 교류하며, 개발자로서 보다 넓은 식견을 가지기 위해 노력하고 있습니다.

Skills

어플리케이션 아키텍처, 데이터 구조 설계 및 구현 경험

  • OpenCV 기반 실시간 영상 처리 및 디스플레이 모듈 개발

  • 멀티스레드를 이용한 디바이스 혹은 모듈 제어 및 데이터 비동기 처리 개발

다양한 통신 환경 기반 개발 경험

  • 시리얼, 이더넷 통신 기반 디바이스 통신 프로토콜 설계 및 연동 모듈 개발

  • RESTAPI 웹통신 기반 모듈 연동 개발

UI 개발 및 협업 툴 사용 경험

  • UI 개발툴 Balsamiq, Figma를 이용한 UI 설계 및 프로토타입 목업 어플리케이션 개발

  • UI 가이드툴 Zeplin을 이용한 디자이너와 협업

  • 상용 UI 라이브러리(Codejock, BCGControlbar), 오픈소스 UI 라이브러리 활용 한 커스텀 UI 컴퍼넌트 개발

테스트 환경 구축 및 솔루션 활용 경험

  • 모듈 단위 테스트 및 프로토타입 어플리케이션을 활용한 테스트

  • Postman을 이용한 RESTAPI 테스트 환경 구축 및 검증

디버깅 솔루션 및 라이브러리 도입 및 활용 경험

  • 메모리릭 분석 툴 MemoryValidator, 크래쉬 덤프 리포트 라이브러리 Crashrpt를 활용한 이슈 해결

  • 심볼서버 구축을 통한 디버깅 환경 구축

  • 네트워크 패킷 캡처 툴 Wireshark를 이용한 데이터 패킷 분석

프로젝트 관리 환경 구축 및 운용 경험

  • GantProject 및 Google Docs를 활용한 프로젝트 일정 수립 및 관리

  • 버젼관리시스템 SVN, Git 구축

  • 이슈관리시스템 Redmine 도입, 운용

Experiences

컴투스플랫폼

책임 • 2022년 4월 4일 —

게임빌컴투스의 자회사로 모바일 게임의 글로벌 서비스를 위한 운영과 게임 개발과 필요한 다양한 서비스를 제공하는 블록체인 기반 글로벌 플랫폼 'Hive'와 복잡한 인프라 자원을 통합 제공하여 모바일 게임에 특화된 인프라를 지원하는 클라우드 컴퓨팅 서비스 'G Cloud' 기술을 보유한 게임소프트웨어 개발 기업

  • Hive 플랫폼의 윈도우 SDK 개발

  • 윈도우 클라이언트 및 UI 개발

KBS 미디어

과장 • 2020년 6월 8일 — 2022년 3월 18일

KBS의 자회사로, 방송 프로그램의 국내외 유통, 콘텐츠 기획 및 제작, 해외 프로그램 수입 및 더빙 등 방송 콘텐츠 관련 사업 수행은 물론 뉴미디어 플랫폼(PC, IPTV, OTT, 모바일) 관련 디지털 콘텐츠를 제공하는 미디어 기업

  • AI 기반 멀티뷰 미디어 편집 솔루션 VERTIGO 개발 및 유지보수

동일비전

연구원 • 2017년 3월 9일 — 2020년 5월 31일

이오나이저와 미세먼지 센서로 유명한 동일 기연의 자회사로 공장자동화에 활용하는 스마트 비전 카메라 제조 및 머신 비전 솔루션 개발 및 판매 기업

  • 자사 스마트 비전 카메라 및 바코드 리더기 연동 어플리케이션 개발

  • 제품 양산 검증 어플리케이션 개발

  • 단위 모듈 및 기능 테스트를 활용한 테스트 기반 개발

  • UI 화면 설계 및 동작 시나리오 작성을 통한 어플리케이션 개발

  • 형상 관리 시스템(SVN), 개발 및 릴리즈 프로그램 이슈 관리 시스템(Redmine) 시스템, 사내 정보 공유 솔루션(Wiki) 구축 및 운영

이노시뮬레이션

선임연구원 • 2016년 4월 11일 — 2017년 2월 17일

자동차, 철도, 중장비 시뮬레이터 분야의 체감형 가상훈련 시스템 및 VR 시뮬레이터 솔루션 개발 및 공급 기업

  • 가상훈련용 모션 플랫폼 제어 시스템 개발 및 유지보수

  • 프로젝트 프로그램 소스관리시스템(SVN) 구축 및 운영

  • MWCS(Mobile World Conference Shanghai, 상해), KVRF(Korean VR Festival, 한국), PLAYX4(한국) 등 다수 전시회 기술 및 전시 운영 담당

로드텍

대리 • 2012년 6월 27일 — 2016년 3월 31일

도로포장 조사,분석 시스템을 자체 기술로 개발해 국내외 도로포장관리 기관에 공급하는 국도, 고속도로, 시도, 지방도 및 공항 포장 유지관리 분야 특화 전문 기업

  • 도로 유지 보수 데이터 수집 시스템 개발 및 유지보수

  • 프로그램 및 장비 운용 교육(도로교통공단, 서울시청), 프로그램 및 장비 운용 매뉴얼 작성(한국 품질시험원, 건설기술연구원, 공군 91항공전대 등)

판타웍스

사원 • 2012년 1월 2일 — 2012년 6월 26일

건설사 대상 가상현실 안전교육 컨텐츠 제작, 납품 기업

  • 건설 안전 교육용 키오스크 시스템 개발 및 유지보수

설악생수

사원 • 2009년 8월 1일 — 2011년 12월 30일

강원도 속초 및 서울 근교에 유통망을 둔 강원도 원통에 위치한 생수 제조 업체

  • 공장 재무 관리

Education

광운대학교(전파공학과 • 2002 — 2008)

금천고등학교(인문계열 • 1997 — 2000)

Projects

12년부터 현재까지 재직회사별 주요 수행프로젝트 소개

어플리케이션 UI 개발 • 2020.06.08 — 2020.12.07

VERTIGO는 세로형 영상.소위 말하는 세로 직캠 영상 제작에 특화된 AI 기반 멀티뷰 미디어 편집 솔루션.

그동안 세로형 영상 제작을 하기 위해서는 본 영상 촬영과 별개로 추가로 인력을 투입하여 찍거나, 프리미어 같은 영상 편집툴을 이용하여 가로형 영상에서 크롭하는 방식을 주로 사용하였음.

그런데 전자의 경우 인물별 동선에 따라 카메라간 간섭이 발생하다 보니 기대만큼 영상 결과물이 나오지 않을 때가 많았음.

후자의 경우 10명 이상 대규모 인원으로 구성된 아이돌에 대한 세로형 직캠 영상 제작시 인물 수에 비례하여 편집시간이 소요됨은 물론 움직이는 피사체를 편집하는 것도 또한 용이하지 않는 등의 문제가 발생

VERTIGO는 보다 효율적이고 퀄리티 높은 세로형 영상 제작이 가능하도록 KBS 기술 연구소(이하 연구소)에서 개발한 얼굴 인식과 클러스터링 기술이 Face AI 엔진이 탑재된 멀티뷰 미디어 편집 솔루션

현재(21년 12월 29일 기준) 유튜브 KBS Kpop 채널에서 서비스중인 "뮤직뱅크" 세로 직캠 컨텐츠인 K-FANCAM 제작 및 "신상출시 편스토랑" 게스트 리액션 컨텐츠 영상 제작 등에 적극 활용중에 있음.

  • GPU 가속 지원 고속 멀티 렌더링 모듈 연동 컨트롤러 개발

  • Sentinel LDS 솔루션을 활용한 소프트웨어 복사 방지 라이센스 검증 컨트롤러 개발

  • 영상 컨텐츠 편집 기능 고도화

    • 커맨드 패턴 기반 Undo/ Redo 기능 개발

    • 로고 이미지 오버레이 기능 개발

  • 어플리케이션 UI/UX 개선

  • NSIS를 활용한 어플리케이션 인스톨 및 업데이트 등 패키지 유지 관리 환경 구축

디바이스 제어 모듈 개발 • 2020.02.06 — 2020.03.27

다수의 산업용 카메라와 연동하여 동작하는 PC 기반 머신 비전 시스템과 연동하는 서브 컴퍼넌트 개발 프로젝트.

기존 고속 입출력 디지털 신호 처리 모듈과 더불어 시리얼 및 이더넷 기반 PLC(Programmable Logic Controller) 장치와 AAEON社 Ultra Slim PC 내장형 디지털 입출력 보드과 연동 가능한 모듈 개발하였음

또한, 메인 어플리케이션 상에서 신규 개발된 기존 메인 시스템과 연동을 위한 PLC 통신 모듈 설정 UI 개발도 병행 진행하였음.

  • 멀티 프로토콜 서포트 PLC 컨트롤 모듈 개발

  • AAEON社 Ultra Slim PC 내장형 디지털 입출력 보드 제어 모듈 개발

머신 비전 시스템, UI 프레임워크 개발 • 2019.01.07 — 2019.08.30

여러 대의 산업용 카메라에서 촬영된 이미지들을 기반으로 비전 검사를 수행하는 PC 기반 머신 비전 시스템 개발 프로젝트.

기존 자사 스마트 머신 비전 카메라의 하드웨어 성능 한계로 할 수 없었던 고해상도 영상 기반 고속 비전 검사 분야에 대응하기 위함이였음.

산업용 카메라(Area Scan 타입, Basler 社) 제어 모듈, 디지털 입출력 처리 보드(Innodisk社)를 이용한 고속 입출력 신호 처리 모듈, 머신 비전 시스템 아키텍처 등 어플리케이션 전반에 걸쳐 설계 및 개발 업무를 담당하였음.

또한, 어플리케이션 개발도 담당 하였는데 이전 프로젝트에서 개발 했었던 UI 어플리케이션 및 UI 컴퍼넌트를 활용하여 개발 기간을 단축시킴.

  • 머신 비전 시스템 아키텍처 설계 및 구현

  • 어플리케이션 UI 화면 설계 및 구현

  • JsonCpp 라이브러리를 이용한 모듈, 어플리케이션 환경 설정 파라메터 Json Serializer & Deserialer 모듈 개발

  • 고속 디지털 입출력 신호 처리 모듈 설계 및 구현

  • 다국어 지원을 위한 커스텀 UI 컨트롤 구현

  • 멀티 타입 컨트롤 지원 가능한 커스텀 그리드 리스트 컨트롤 개발

카메라 제어 모듈, 머신 비전 시스템 개발 • 2017.12.01 — 2018.12.31

자사에서 개발한 1세대 머신 비전용 스마트 카메라(Innoeye) 하드웨어 성능 개선에 맞춘 기존 스마트 카메라용 어플리케이션 리뉴얼 프로젝트.

기존 어플리케이션에서 사용중 불편사항 및 개선사항 등을 반영하였으며, 사용자 편의성 및 심미성을 높이기 위해 UI 파트는 외주 전문 업체에 의뢰하여 진행하였음.

  • UI 설계 어플리케이션(Balsamiq)을 이용한 레이아웃 설계, 동작 시나리오 작성

  • 상용 UI 라이브러리 BCGControlBar 및 오픈소스 UI 라이브러리를 서브클래싱한 커스텀 UI 컨트롤 개발

  • 멀티 모니터링을 위한 설정한 카메라 수에 따른 결과 화면 컴퍼넌트 동적 생성 구조 설계 및 구현

  • 화면 리사이징에 따른 컨트롤 포지션 및 리사이징 기능 구현

  • 디바이스와 제어 및 이미지 데이터 수신을 위한 통신 구조 설계 및 구현

  • 멀티 카메라 대응을 위한 내부 구조 설계 및 구현

  • 재사용성을 위한 DLL 라이브러리로 개발

  • 모듈 테스트 프로그램 개발

  • 자사 비전 검사 라이브러리 성능 최적화를 위한 리펙토링 및 모듈화 작업

어플리케이션 UI 개발 • 2018.07.02 — 2018.07.20

자사 스마트 카메라(이하 Innoeye)에 펌웨어 업로드 가능한 기능을 지원하는 어플리케이션 개발 사이드 프로젝트

이미 동일한 기능을 하는 어플리케이션이 존재했었으나, 단순히 Innoeye와 연결해서 펌웨어만 업로드 할 수 있는 기능 제공했었음.

따라서 현재 연결된 디바이스나 업로드할 펌웨어 파일의 정보 등을 확인할 수 없는 등의 불편한 부분이 있었음.

또한 업로드 중 프로그램이 다운되는 현상이 종종 발생하여 안정성 문제도 있었기 때문에 이러한 부분을 수정 및 개선하기 위함도 있었음.

  • UI 설계 어플리케이션(Balsamiq)을 이용한 레이아웃 설계, 동작 시나리오 작성

  • 상용 UI 라이브러리 BCGControlBar 및 오픈소스 UI 라이브러리를 서브클래싱한 커스텀 UI 컨트롤 개발

  • 펌웨어와 디바이스간 유효성 검증 부분 개발

  • 업로드 프로세스 스테이트 머신 모듈 개발

바코드 제어 모듈, 어플리케이션 UI 개발 • 2017.03.13 — 2018.02.09

동일비전 입사 후 처음 맡았던 프로젝트.

Zebra사의 바코드 하드웨어 모듈(이하 PL3307)이 탑재된 자사 바코드 리더기와 연동하는 어플리케이션 개발을 담당.

  • UI 레이아웃 설계 및 동작 시나리오 작성

  • BCGControlBar 상용 UI 라이브러리를 활용한 MS Office 스타일 SDI 기반 UI 개발

  • PL3307 모듈 지원 통신 환경(USB,Serial)의 연결 상태에 따라 하나의 모듈로 제어 가능한 형태의 구조 설계 및 구현

  • 수신 이미지 데이터 변환 및 출력 기능 구현(GDI Plus)

  • PLC 기능을 위해 탑재된 MCU 제어를 위한 시리얼 통신 프로토콜 구조 설계

  • 프로그램상 파라메터 설정 및 설정 파일 입출력 처리를 위한 XML 포맷 구조 및 설계

  • 설계한 포맷에 따른 XML 파일 Serializer, Deserializer 모듈 설계 및 구현

  • 디바이스 스펙 정의를 위한 PL3307 SDK 기술문서 번역

모션 플랫폼 제어 시스템 및 유니티 SDK 개발 • 2016.04.18 — 2017.02.17

자체 개발한 VR 영상 컨텐츠 어플리케이션과 연동하여 동작하는 시트 타입 모션플랫폼(3축) 을 제어하는 어플리케이션 개발 프로젝트

  • UI 레이아웃 설계 및 동작 시나리오 작성

  • MFC 기본 컨트롤을 이용한 UI 구현

  • 설정 파라메터 입출력 인터페이스 및 파일 불러오기/저장 기능 구현

  • LED,FAN(DMX512 USB PRO) 압력센서(LoadCell) 제어 모듈 및 Unity 개발용 SDK 개발

  • 데이터 송수신 통신프로토콜 구조 설계,구현 및 문서화

모션 플랫폼 제어 시스템 개발 및 유지보수 • 2016.08.16 — 2016.10.31

중장비용 가상훈련 유니티 어플리케이션 개발 회사인 소프트뱅크에서 발주한 프로젝트.

트랙터 및 항만 컨테이너 하역시 사용하는 크레인인 갠트리 가상훈련용 어플리케이션과 연동하여 동작하는 모션 플랫폼 하드웨어 및 제어 어플리케이션을 제작, 납품하였음.

특이사항으로는 갠트리 가상훈련용 모션플랫폼 제어 어플리케이션의 경우 모션플랫폼에 좌우 흔들림이나 떨림 등의 효과를 발생시키는 스페셜 이펙트 모듈이 추가 되어 있음.

  • 통신 프로토콜 포맷 설계 및 모듈 개발

  • 모션플랫폼 입출력 데이터 로그 파일 생성 기능 개발

  • UI 개발 환경(C#)에서 마샬링을 이용한 C++ DLL 모듈 연동 부분 개발

  • 모션 플랫폼 초기화 루틴 개선

데이터 수집 시스템 개선 및 UI 개발 • 2015.11.30 — 2016.03.25

도로포장상태 조사장비는 도로 주행 중인 운전자의 승차감을 좌우하는 주요 요인인 도로 평탄성을 측정하는 장비임.

차량에 장착된 여러가지 센서와 카메라를 통해 도로평탄성 분석에 필요한 데이터를 취득하며 이를 화면에 이미지와 그래프등으로 출력. 시각적으로 확인한 어플리케이션을 개발하였음.

특이사항으로는 로드코리아, 도로교통연구원, 한국공항공사에서 발주한 프로젝트들을 병행하여 진행하였음.

이는 각 프로젝트에서 기본 요구 사항들이 유사했기 때문에 가능하였음.

  • 다수의 카메라(Point Grey사) 제어, 화면 출력 및 파일 저장을 위한 영상 데이터 처리 모듈 개발

  • 다른 모듈 프로세스와 데이터 송수신을 위한 공유 메모리 구조 설계 및 처리 기능 개발

  • IMU, 레이저 센서 통신 프로토콜 구조 설계 및 통신 모듈 구현

  • 모듈 제어 및 데이터 수신을 위한 프로시져 설계 및 구현

  • Bitmasking을 이용한 데이터 패킷 파싱 루틴 설계 및 구현

  • 여러 센서의 수신 데이터 병렬 처리를 위한 Thread 구조 설계 및 구현

  • 수신 데이터 시각화를 위한 그래프 컨트롤 및 UI 어플리케이션 개발

  • exiv2 라이브러리를 이용한 GPS 좌표 데이터가 포함된 JPEG 이미지 생성 기능 개발

  • 수집 데이터 레포트 파일 출력 기능 개발

  • 조사중 실시간 센서 상태 모니터링 기능 구현

보다 자세한 사항은 좌측 탭 각 프로젝트 페이지 참조.

Last updated