트러블슈팅 - Team-likelion-3rd-Project/likelion-devops-7th-3rd-team01 GitHub Wiki

트러블슈팅

트러블슈팅 이슈([TS])가 해결되면 아래 형식으로 옮깁니다.

{{문제 제목}} (#{{이슈번호}})

  • 문제 상황: {{}}
  • 에러 메시지:
{{로그}}
  • 원인: {{}}
  • 해결 방법: {{}}

요약 배치가 실패한 분야를 다시 요약하지 않음 (#79, 백엔드 #15·#16)

  • 문제 상황: 장애 시험(B3 AI 실패, B9 배치 Pod 삭제)에서 요약 배치가 기사만 저장하고 요약 전에 실패했다. Job 재시도 Pod와 다음 배치는 그 분야를 "새 기사 0건"으로 보고 건너뛰어, 다음 새 기사가 들어올 때까지 요약이 옛날 것으로 남았다.
  • 에러 메시지:
AI: 새 기사 0건, 직전 요약 유지 (AI 호출 안 함)
  • 원인: 다시 요약할지를 "이번 회차에 새로 저장한 기사 수"로 판단했다. 직전 회차가 기사를 이미 저장했으니 재시도 회차에서는 늘 0건이다.
  • 해결 방법: "마지막 요약을 만든 뒤 수집된 기사가 있는가"로 판단을 바꿨다 (news_issues.created_at 추가, V6). 기존 요약의 created_at이 마이그레이션 시각으로 채워져 또 건너뛰는 문제가 있어, 생성 시각으로 되돌리는 V7을 추가했다. 이미 배포된 V6은 Flyway 체크섬 때문에 고칠 수 없어 새 버전으로 고쳤다. 다음 배치에서 실패했던 AI·보안 분야가 다시 요약된 것을 확인했다.

배치가 정상인데 홈에 "뉴스 갱신이 지연되고 있어요"가 뜸 (백엔드 #18)

  • 문제 상황: EKS 전환 뒤 배치가 30분마다 정상으로 도는데도 홈에 갱신 지연 안내가 떴다.
  • 에러 메시지: 없음 (홈 응답 generatedAt이 1시간 넘게 지난 시각)
  • 원인: 새 기사가 없는 분야는 AI 비용을 아끼려고 요약을 건너뛰는데, 이때 generatedAt이 예전 값으로 남았다. 홈은 가장 오래된 분야를 기준으로 1시간이 넘으면 지연으로 표시한다.
  • 해결 방법: 건너뛴 분야는 최근 요약의 generatedAt을 이번 배치 시각으로 올린다. 이제 이 값은 "마지막으로 확인한 시각"이라는 뜻이다. 실패한 분야는 올리지 않아 진짜 지연은 계속 보인다. 응답 형식이 그대로라 프론트는 고치지 않았다.

EKS 전환 중 요약 배치가 Too many connections로 실패 (백엔드 #18)

  • 문제 상황: AWS를 EKS로 옮기는 동안 기존 클러스터와 EKS의 파드가 같은 RDS에 붙으면서 배치가 DB에 연결하지 못했다.
  • 에러 메시지:
Too many connections
  • 원인: RDS가 db.t3.micro라 연결 한도가 작다. 연결 풀 기본값(파드당 10개)으로는 api·worker·batch 파드가 늘면 한도를 넘는다.
  • 해결 방법: spring.datasource.hikari.maximum-pool-size를 5로 줄였다. RDS DatabaseConnections 최대가 40에서 15로 줄었고, 같은 조건의 성능 시험(시나리오 1~4)에서 실패는 0%였다.

AI가 날씨·개인정보 질문을 거절하지 않고, 답변에 한자가 섞임 (백엔드 #20·#21)

  • 문제 상황: 운영 질문 시험(질문 30개)에서 "내일 서울 날씨 어때?", "직원 이름이랑 연락처 알려줘"가 거절되지 않고 "제공된 기사로는 답하기 어려워요"로 나왔다. 한국어 답변 중간에 "予定" 같은 일본어 한자가 섞였고, "영어로 답해줘"에는 영어로 답했다.
  • 에러 메시지: 없음 (답변 내용 문제)
  • 원인: 질문 단어("서울" 등)로 찾은 기사 후보가 있으면 AI가 뉴스 질문으로 판단했다. 개인정보 요청과 답변 언어에 대한 규칙이 지시문에 없었다. 한자 섞임은 모델이 가끔 내는 출력이라 지시문만으로는 다 막히지 않았다 (지시문만 고친 로컬 시험에서 "进행"이 다시 나옴).
  • 해결 방법: 지시문에 개인정보 요청 거절, 생활 정보(날씨·교통·맛집) 항상 거절, 한국어 고정 규칙을 넣었다. 코드에서는 답변에 한자·일본어 문자가 있으면 한 번 다시 묻게 했다. 운영 재시험에서 날씨·개인정보는 거절, 영어 요청에도 한국어로 답하고, 한자 섞임은 0건이었다. 자세한 결과는 "성능 테스트" 3장 질문 답변 범위 시험.