- 얼굴 혹은 손가락의 영상을 이용한 생체신호 추출 서비스
- 비즈니스 로직이 Django의 View에 모두 작성되어 있기 때문에 가독성이 좋지 않고, 파일당 코드의 양이 많아 유지보수를 함에 있어 어려움이 있었습니다.
- 데이터를 조회할 때 한 번의 쿼리로 조회할 수 있는 데이터들임에도 사용자의 PK를 이용해 조회해서 얻은 데이터의 PK들을 통해서 데이터를 일일이 조회하고 응답 데이터에 맞게 매핑하여 응답하였기 때문에 지연시간이 높았습니다.
- 추후의 유지보수 및 리팩토링의 편의성을 위해서 기존의 Django 서버는 측정 기능만을 수행하고 나머지 기능은 모두 Spring을 이용해 구성한 서버에서 수행하도록 리팩토링 프로젝트를 하게 되었습니다.
- Kotlin
- Spring Framework, Spring Boot
- Spring Cloud
- MySQL, JPA
- QueryDSL
- 로그인
- 소셜 로그인
- 회원가입
- 측정 결과 조회
- 주/년/월 단위로 측정 데이터 조회
- 얼굴과 손가락 데이터 각각 1,000개, 총 2,000개 데이터 기준
- 지표 별 데이터 조회 요청 후 응답까지 소요 시간 10회 측정 후 평균
Legacy | Refactoring | |
---|---|---|
BPM | 1466.4 ms | 85.6 ms |
표정 분석 | 3363 ms | 76.8 ms |
혈압 | 3718 ms | 85.2 ms |
- BPM 조회 94%, 표정 분석,혈압 조회 **97%**의 요청 시간을 감소시키는 성능 향상을 가져왔습니다.