미리보기
기본 정보
항상 즐겁게 개발하고 싶은 3년차 서버개발자 김명수입니다
기술 스택
python3, NestJS, Node.js, TypeScript, FastAPI, PostgreSQL, JavaScript, OpenCV, Go
경력
아이디비 주식회사
연구원 | 개발팀 | 재직 중
2021.11. ~ 재직 중 (3년 3개월)
프로젝트
영상기반 AI 솔루션 레거시 개편 및 개발
아이디비 주식회사
2023.12. ~ 진행 중
기존에 fastAPI로 만들어진 백엔드 서버를 구성원들이 모두 할 수 있는 언어인 TS로 개편을 하고 Express를 사용하기에는 자유도가 너무 높아 아키텍처 문제를 해결하기 위해서 구성원 모두 동의하에 NestJS 프레임워크를 이용해서 개발을 진행했습니다. 구성원들이 NestJS를 잘 이해할 수 있도록 코드리뷰와 더불어 함께 스터디를 이끌었습니다.
또한 기존에 제조업 특성상 온 프로미스로만 운영이 가능하던 환경을 클라우드로 적용할 수 있도록 아키텍처를 구성하였습니다.
- 유저 관리 및 업체별 라이센스 관리를 할 수 있도록 하였습니다
- 비디오 관련되어 hls 방식 및 WebRTC 사용하여 실시간으로 탐지된 화면을 볼 수 있도록 인프라를 구성했습니다
- 탐지된 이미지를 효율적으로 저장하고 관리할 수 있도록 S3와 연결해서 MLops와 연동하는 인터페이스 작업 진행했습니다
미디어 서버 개발
아이디비 주식회사
2024.01. ~ 진행 중
golang을 이용해서 rtsp를 WebRTC로 변환할 수 있는 미디어 서버를 자체적으로 개발하였습니다.
- rtsp를 WebRTC로 통신할 수 있도록 API를 개발하였습니다
- rtsp를 우회해서 자체 rtsp 사용할 수 있는 API를 개발했습니다
- rtsp를 통해서 1분마다 모델 데이터 저장을 위한 레코딩 기능을 개발하였습니다
폐기물 처리장의 영상기반 AI 솔루션 개발
아이디비 주식회사
2023.03. ~ 2023.12.
RTSP16개의 채널을 받아와 Yolov5의 커스터마이징 된 모델을 통과한 이미지를 redis의 저장하고 ROI에 들어간 객체가 있다면 현장에 있는 설비와 관제화면에 MQTT를 이용해서 알람까지 보내는 기능을 개발했습니다.
오탐이 있을 경우에는 사용자로 하여금 모델의 재학습 프로세스를 만들어서 모델의 성능을 향상시키는 파이프라인을 구축했습니다.
- 프로젝트 구조를 개선하는 작업을 진행했습니다. app.py에 로직을 넣는 방식에서 MVC패턴과 Repository 패턴을 도입해서 각 파일과 클래스마다의 역할과 구분을 나누는 방법을 의견을 내어서 도입하여 편리하게 프로젝트를 진행할 수 있도록 하였고,
- 테스트코드를 작성하여 우리가 작성한 코드와 모듈이 어떻게 동작하는지와 코드 변경에 대한 사이드 이펙트들을 줄이려고 노력했습니다.
- 배포를 위해서 git-flow방식을 이용하여 운영과 개발환경을 분리했고 각각 직무에 맞게 코드를 관리함으로써 이후 프로젝트에 효과적으로 유지보수 할 수 있게끔 구축했습니다.
자동차 부품 생산업체 예지보전 프로젝트
아이디비 주식회사
2022.03. ~ 2023.11.
[1년차 프로젝트]
1년차 프로젝트에서는 업체측 MES 데이터를 우리쪽 스토리지 서버로 연동하여 진행했습니다. 업체측에서 MES에 가해지는 부하가 너무 많으면 시스템적으로 부담스럽다고 하여 주기를 정해서 최대한 안정성을 보장하도록 커뮤니케이션을 진행하였고 AI팀과 협업하여 각 공정에 있는 데이터를 통해서 최적의 모델을 프로세스를 구축하였습니다
[2년차 프로젝트]
2년차 프로젝트에서는 센서데이터가 추가되어 python을 이용해서 업체측 센서데이터를 Influxdb2로 연동하여 기존 주기로 정해서 pandas 데이터로 이관을 진행했으나 딜레이가 1분이상 생기는 문제가 발생하여 이것을 csv 파일로 떨어뜨려서 우리 쪽 스토리지 서버에 influxdb2에 이관하는 프로세스를 적용시켜서 처리속도를 60s -> 1s로 개선하는 작업을 했습니다.
대시보드 기반 시각화 솔루션 개발
아이디비 주식회사
2022.01. ~ 2022.06.
외주로 맡겼던 시각화 솔루션을 인수인계 받아서 진행했습니다.
백엔드를 Golang으로 만들어져서 Golang과 Gin이라는 프레임워크를 학습했습니다.
Go의 특성을 이용해서 우리의 솔루션을 바이너리 코드로 된 실행파일을 만들어서 보안을 중요시하였고
프론트엔드는 Vue로 작성되어 있어서 실시간 서버 상태나 유저 관리와 데이터 관리를 할 수 있도록 어드민 페이지를 만들었습니다.
Docker를 이용해서 인프라를 관리할 수 있도록 yaml 파일을 작성하여서 보다 온프로미스에서 환경에서도 쉽게 올라갈 수 있도록 구축했습니다
포트폴리오
교육
한국공학대학교(야간)
대학교(학사) | 컴퓨터융합공학과
2023.03. ~ 현재 | 재학 중
인천전자마이스터고등학교
고등학교 | 전자제어과
2018.01. ~ 2020.02. | 졸업
자격증
정보처리기능사
기능사 | 한국산업인력공단
2019.03.
자기소개
현재 속해 있는 환경에서 필요한 역할을 주로 합니다
- 기존에 python으로 되어있던 레거시 코드들을 TS + Nestjs로 개편합니다
- TS 환경에서 API 개발 및 아키텍처를 개발합니다
- AI팀과 함께 MLops 인프라 구축 및 API 개발합니다
- 클라우드 및 온프로미스 환경에 구애받지 않고 환경을 구축하려고 노력합니다