소개
주말에 Cursor와 함께 프로그램 하나를 만들었습니다. 이름은 헬스체커라고 할게요. 기능은 다음과 같습니다
서버 A의 상태 모니터링
헬스체커는 서버 A에 주기적으로 ping을 보내서 응답이 오는지 확인한다
HTTP API를 통한 모니터링 제어
헬스체커의 모니터링을 원격에서 껐다 켰다 할 수 있고, 헬스체커의 상태 역시 원격에서 파악 가능하다
Slack을 통한 알림 전송
헬스체커가 A에게 문제가 있다고 파악하면 저희 업무용 메신저로 메시지를 보낸다
연속된 오류 발생 시 자동 복구 시도
헬스체커의 판단에 A 서버가 완전히 죽었다 고 생각되면, 직접 A 쪽에 접속해 서버 재부팅 시도하고, 모니터링을 일시 중단한다
프로젝트가 복잡해지고 나서 테스트코드를 만들려고 시도하면 항상 실패했었기 때문에 일찍 만들어보자고 생각했습니다
이 과정 전까지 제가 테스트 코드에 대해 알고 있는 지식은 다음과 같았습니다
커버리지라는 개념이 있는데, 아마 테스트가 얼마나 코드를 잘 반영했는지에 대한 숫자인 것 같고, 높을 수록 좋다더라AI가 테스트 코드를 잘 짜준다더라
진행 방법
기존 코드를 갈아엎기 시작하면 당황스러우니까 우선 Chat으로 갔습니다.
아주 공들여서 프롬프트를 작성했습니다. 테스트 코드 작성과 지식 공유를 동시에 요청했습니다
엄청 긴 응답이 왔는데, 단위 테스트, 통합 테스트, E2E 테스트 등의 이야기가 반복되어서 다시 질문을 했습니다