■풀스택 개발자 입니다. Node.js 백엔드 + Angular가 주력이며 ■MSA로 로봇 관제 시스템 설계경험이 있습니다. ■2019년 5월 기준 총 경력은 약 6년입니다. 2년: 석사, IT보안, 암호학, Android 1년: Python, ML 3년: Node.js (API Server, Angular) ■실리콘밸리에서의 근무경험이 있습니다.
로봇들이 상호작용하면서 생기는 문제들은 유닛테스트 만으로는 찾기 힘든 부분이 많습니다. 때문에, 가상환경에서 움직이는 가상로봇을 만들어서 시간을 가속하거나 현실세계에서 꾸며놓고 테스트 하기 어려운 조건들을 테스트를 해야할 필요성을 느끼게 되어 Concert SDK의 첫번째 예시로 Virtual Worker를 만들었습니다. 로봇과 같은 규칙으로 통신하고, http client에 헬퍼를 달아 불안정한 네트워크등을 시뮬레이션 할 수 있습니다. 물리적인 제한조건이 많은 환경에서 Virtual Worker는 개발에 큰 도움이 되고 있습니다.
Concert에 다른 IoT 기기들을 연동하기 위해 필요한 소프트웨어 툴킷을 제공합니다. API 목록들과 문서 뿐만 아니라, 최소한의 개발만으로 Concert에 등록될 수 있는 Worker를 개발하기 위해 로직 엔진을 제공하고 대부분의 API 호출들을 자동으로 관리해 줍니다. 실재로 로봇이 수행 할 수 있는 작업의 종류별로 파일을 만들어 각각의 함수정도만 작성을 하면 명령을 받아 동작하는 로봇이나 IoT 디바이스를 손쉽게 만들 수 있습니다.
로봇이 그린 지도와 사용자가 설장한 지도상의 영역, 지점, 그리고 엘리베이터, 좁은구역, 금지구역과 같은 의미론적 (Semantic) 데이터를 관리합니다. 데이터모델링, API 설계를 포함한 소프트웨어 설계 전부와 구현을 책임졌습니다. 1년 반정도 개발 이후 담당자가 추가되어 유지보수 작업의 일부분만 하고 있습니다.
콘서트의 확장서비스 입니다. 자사의 물류 로봇 GoCart™ 를 운영하기 위한 물류로봇 관제 소프트웨어 입니다. FMS 는 관제 기능 이외에도 다음과 같은 기능을 포함하고 있습니다. * 독점자원(자동문, 엘리베이터 같은 건물의 시설물)을 사용하기 위한 Worker 들간의 중재 * 효율을 위해 작업을 재구성, 교통통제 * Rule-Based 로 운영되는 작업관리
Concert 를 사용하기 위한 GUI 를 제공하는 Web App 입니다. ServerSideRender 를 제외한 SPA 로 구현되어 단독으로 패키징되어 배포될수있도록 하여 이식성을 확보하였습니다. Balcony의 전신인 Angular.js 로 만들어진 프로젝트를 전담하였고 Angular.io 로 재구현 하였습니다. 1년 반 정도 개발을 한시점에서 프론트엔드 담당자가 팀에 합류하여 업무를 인계 하였습니다. 이후로도 종종 간단하거나 급한 업무에 투입되곤 했습니다.
Worker와 이들의 Capability 를 관리합니다. Task 를 관리 및 스케쥴링 합니다. IoT 디바이스들이 동작하는 대부분의 환경이 Fully Connected 가 아니기 때문에 Report 라는 데이터 매개체를 이용해서 비동기적으로 서버와 클라이언트가 정보공유를 할 수 있도록 처리했습니다. Concert 프로젝트중 제일 먼저 구현된 서비스이며 지금까지 제 담당으로만 관리되고 있습니다. 데이터 모델링, API 설계를 포함한 소프트웨어 설계 전반과 구현을 모두 책임지고 있습니다.
"Concert" 는 IoT 서비스 플랫폼입니다. 작은 센서부터 복잡한 로봇까지 포함한 여러종류의 IoT 디바이스들을 Concert 에 연결시켜 협업시킬 수 있습니다. Concert 내에서 작업을 수행할 수 있는 Worker 들은 자신의 능력을 등록하고, 사용자는 이 능력들을 조합하여 작업을 생성하고 관리 합니다. 이렇게 만들어진 작업들은 Concert 에 의해 최적화 되고 스케쥴링 됩니다.
팀 내에서 반복되는 작업을 자동화 하고 빌드부터 테스트 배포까지 자동화 파이프라인을 만들려고 노력했습니다. 서비스 개발을 일관되게 하기 위해 공통적으로 사용되는 툴들을 개발하고 관리했습니다. 중복되는 구현을 매번 하지 않아도 되어 좋았고 사용성도 좋았기 때문에 신입으로 입사한 개발자들도 쉽게 자기 프포젝트에 적용하여 사용하였습니다.
Victoria's Secret 앱에 들어가 있는 Frankly의 채팅 모듈 솔루션에서 얻은 채팅 로그를 분석해서, 채팅의 주제어들과 그 상관관계를 추출해내는 소프트웨어를 만들었습니다. 채팅로그에서 영문 형태소를 추출하여 Solr, Lucene을 이용하여 인덱싱하고, Support Vector Machine을 이용하여 클러스터링 하여 주제어간의 상관관계정도(weight) 를 산출했습니다. 만들어진 소프트웨어는 Meteor.js로 만든 Dashboard UI에 하나의 메뉴로 통합되어 고객에게 채팅분석 결과를 제공했습니다.