✏️2024.11.06
일일 회고 44회차
Keep
일일 회고를 꾸준히 하면서 성장하기 위해 노력하는 것
Problem
명확한 원인을 파악하지 않고 문제를 해결하는 것
여러 개의 방법 중에 최선의 방법이 아닌 빠른 방법을 선택하는 것
Try
일일 회고를 통해 원인을 명확하게 파악하고 문제를 해결했는지 검토
일일 회고를 통해 최선의 방법을 선택했는지 검토
경험 및 배움
회사 업무
대용량 영상의 변화 탐지 테스트
대용량 영상의 변화 탐지 테스트를 수행한 결과를 확인하기 위해 테스트 서버를 들어가보니 무한 재시작을 수행하고 있는 것을 발견했다. 재시작 하는 서버의 로그를 확인해봤을 때 탐지 결과 저장을 시작하고 그 후에 실패하는 것을 무한 반복하고 있었다. 또한, Pod의 이벤트 로그에는 헬스 체크를 실패하여 k8s가 해당 Pod를 재시작 시키는 것으로 확인됐다.
위와 같은 현상을 보고 서버의 헬스체크 로직에 문제가 있다고 판단하여 해당 로직을 분석했다. 서버가 시작되면 헬스체크를 활성화 상태로 변경하기 전에 여러 작업을 하는 것을 볼 수 있었다. 작업들 중에 탐지 결과를 저장하는 로직이 존재했으며 탐지 결과가 매우 큰 경우 k8s가 헬스체크를 수행하기 전에 헬스체크를 활성화하지 못 하고 무한 재시작을 하게 된 것이였다. 탐지 결과가 매우 많아도 서버가 무한 재시작 하지 않도록 헬스체크 활성화를 우선 수행하고 결과를 저장하도록 로직을 변경했다. 그 후 테스트 서버로 배포하여 검증해보니 정상 동작하는 것을 볼 수 있었다. 헬스체크 활성화 로직은 오래 걸리는 작업 이전에 수행하고 오래 걸리는 작업은 백그라운드에서 수행될 수 있도록 하는 것이 좋을 것 같다.
그 다음으로 결과 저장하는 것을 기다려 봤으나 오랫동안 저장되지 않고 버그도 발생하지 않아서 우선 완료될 때 까지 기다리면서 버그 수정 작업을 진행하기로 했다.
사이드 프로젝트
JOOQ 적용
다음 두 RR을 통해 JOOQ를 적용해봤다.
다음과 같이 네이티브 쿼리를 직접 쓰는 것 보다 JOOQ를 사용하여 쿼리를 사용하는 것이 훨씬 가독성이 좋고 버그 발생을 줄일 수 있었다. 네이티브 쿼리를 전부 JOOQ로 바꾸는 작업을 이어서 할 예정이다.
해야 할 일
Last updated