(1) Python Flask 프로젝트 Java Spring-Boot 로 마이그레이션
[2023.10 ~ 2024.09]
- 원래의 프로젝트는 온프레미스(On-Premise)로 구동되는 Python Flask 프로젝트
- 이 프로젝트를 Java/Spring-Boot 기반의 SASS 프로젝트로 마이그레이션
- 데이터베이스는 MongoDB 를 사용하고 ORM 라이브러리로 Spring Data MongoDB 선택
- 어노테이션(Annotation)를 적극적으로 사용하며 구현
(2) 제조업에서 사용하는 AI 이상 감지 솔루션의 AI 데이터 엔지니어 역할
[2023.06 ~ 2024.09]
- 제조업 쪽에서 사용하는 Flask 기반의 AI 솔루션의 데몬(daemon) 소프트웨어를 Python 3 으로 구현
- UI 와 딥러닝 모델 사이에서 중간다리 역할을 하는 데몬 프로그램
- 데이터베이스로 MongoDB 를 사용
- TaskManager 방식으로 비동기 처리
- 데몬 내부의 처리 결과를 UI 에 이벤트 방식으로 전달하는 데에는 Socket IO 를 사용
- Anomaly Detection, Segmentation, Classification, Object Detection 네 가지 타입의 모델 타입 각각의 레이블링 데이터에 대한 전처리(preprocessing)와 모델 실행 결과값에 대한 후처리(post-processing)가 데몬 프로세스의 핵심 역할
(3) 커뮤니티 및 SNS 형 동영상 플랫폼 백엔드 개발자
[2022.11 ~ 2024.06]
- Node.js 기반의 Typescript 백엔드 개발자로 근무
- NodeJS & ExpressJS 활용해서 마이크로서비스(MSA) 구조로 백엔드 애플리케이션을 구현
- 서버 간 통신은 RabbitMQ 를 사용해 이벤트 기반으로 동작(eventual consistency)하도록 구현
- 동기적으로 블록킹 처리가 필요한 경우(all commit or rollback)에는 REST API 통신을 사용
- 캐시 레이어로 Redis 사용
- 데이터베이스 MongoDB 채택
- 소프트웨어 개발에서는 테스트코드 작성도 핵심 요소 중 하나입니다. Given - when - then 구조를 지켜서 테스트스위트(test suite), 테스트케이스(test case)를 적절한 수준에서 중첩하여 구성하면 테스트코드도 유지보수하기 쉬운 상태를 보존
- 인프라 셋업을 위해서 로컬 개발환경에서는 Docker-Compose 를 사용하고 실제 프로덕션 환경에서는 관리형 클라우드 서비스(AKS) 위에서 Kubernetes 를 활용
(4) ELK 스택 기반으로 관리자 대시보드 구현
[2023.08 ~ 2024.04]
- ELK(Elasticsearch, Logstash, Kibana) 스택을 활용해서 시계열 데이터를 통계적 데이터로 정제한 뒤 대시보드로 보여주는 작업
- 사용자별, 콘텐츠별, 카테고리별 통계 정보를 관리자에게 제공
- 이벤트가 발생할 때마다 Filebeat, Logstash 로 정보를 저장
- 시계열 형태로 발생하는 로그데이터를 Elasticsearch에 저장
- 일정한 기간 단위로 Elasticsearch에 쌓인 데이터를 조회해서 DB 적재 (hour, day, month 단위 사용)
- 관리자 대시보드에서 API 요청이 발생하면 DB에서 쿼리
더보기