<소개>
송아지 CCTV 촬영 영상을 보며 행동 태깅 작업을 할 수 있는 PC용 앱
<주요 업무>
- 크로스플랫폼 pc용 클라이언트 앱 개발 (Electron, React, Redux, Typescript, Javascript)
- API 서버 개발(Node.js), 데이터베이스(PostgresSQL) 구축 및 스키마 설계
- 태깅 작업자 통계 확인용 웹 및 API 개발(React, Node.js)
<업무 상세>
데이터베이스 서버 구축 및 스키마 설계
Postgres SQL
농장별 송아지들의 날짜별로 태깅데이터를 가져오기 위한 테이블 구조를 설계하였습니다.
API 서버 개발
NodeJS, Javascript, Sequelize(ORM)
PC용 앱과 통계 확인용 웹에서 사용하는 API 서버입니다. Node.js의 express로 개발하였으며, 데이터베이스 연결과 객체 맵핑은 ORM(Object Relational Mapping)을 지원하는 Sequelize 라이브러리로 개발하였습니다.
배포는 Heroku 서버에 하였습니다. 초기에는 Bitbucket Pipelines를 통해 CI/CD를 자동화하였고, 소스코드를 Github으로 이전하고 난 후에는 Github Actions로 자동화 하였습니다.
태깅 작업자 태깅 통계 확인용 웹 개발
React, Javascript
작업자별 작업 통계를 확인하는 웹을 개발했습니다. 로그 데이터를 그래프로 표현하기 위해 그래프 라이브러리를 커스터마이징 하였으며, heroku와 Github Actions를 통해 배포를 단순화 하였습니다.
PC용 클라이언트 앱 개발
Flutter, Dart, Android
영상의 메타정보를 불러오기 위해 웹어셈블리기반으로 작성된 Mediainfo.js라는 라이브러리를 사용하였습니다. 배포시 실행프로그램으로 패키징할때 .wasm파일을 패키지안에 포함시키기 위해 webpack 설정을 추가하여 대응하였습니다.
<경험>
머신러닝 학습용 데이터 전처리 작업을 비효율적으로 수작업으로 하는 모습을 보고 시간단축과 효율적인 작업을 위해 개발을 제안하여 만들게 된 프로그램입니다. 내부적으로 사용되다가, 협업하는 연구소와 태깅 작업자분들도 사용할 수 있게끔 확장되었습니다. 훨씬 빨라진 태깅 작업으로 회사의 리소스를 아낄 수 있었으며 더 많은 데이터를 확보할 수 있었습니다.
이 프로젝트는 회사내 자산으로써 특허출원까지 이루어져 뿌듯함을 느꼈던 프로젝트입니다.