항해 12주차 회고

Lee·2022년 4월 3일
0

항해99

목록 보기
47/50

개요

서비스를 배포한 상태였기 때문에 이번주 목표는 서비스 중 발생한 오류 해결 및 사용자의 피드백을 받아 개선하는 것을 목표로 했다.

진행사항

스케줄러 문제

인증 레포트 부분의 현재 인원 수가 제대로 반영되지 않는 문제가 다시 발생해 원인을 찾기 시작했다. 그러나 코드를 확인해도 문제를 발견하지 못했고 팀장님과 논의해 본 결과 인증 관련 스케줄러가 문제인 것 같다는 결론을 내렸다.
이후 자정에 서버를 확인해 본 결과 스케줄러가 중간에 NPE가 발생해 동작하지 않는 것을 발견했고 tranaction이 없어서 rollback이 일어나지 않아 어떤 부분은 저장이 되고 어떤 부분은 저장이 되는 참사가 발생했다.
발견한 문제를 담당 조원에게 전달한 후 NPE가 발생하지 않게 코드를 변경하고 tranaciton을 사용해 동작하도록 변경했다.

챌린지 태그 수정 불가

코드를 확인하면서 태그 수정 부분이 이상하다는 생각이 들어 테스트를 해본 결과 수정이 불가능한 것을 발견했다. 또한 수정 시 챌린지가 삭제되는 상황이 발생했다. 이 사실을 팀에 공지하고 로컬에서 수정테스트를 진행했다.
원인은 casecade.ALL과 orphanremoval가 true로 설정되어 tagChallenge에서 FK가 사라질 때 챌린지가 같이 사라지는 불상사가 발생했다. 따라서 두 조건을 제거하여 챌린지가 사라지지 않게 변경해 해결했다.

챌린지 작성 및 삭제 불가

위의 오류를 수정한 뒤 챌린지 작성이 불가능하게 변경되었다.
원인은 casecade를 제거하면서 영속성 전이 기능이 없어져서 발생한 문제였다. 따라서 casecade.PERSIST를 주어 부모 객체의 영속성이 자식 객체에 전달되게 하여 문제를 해결했다.
삭제가 불가능 하게 원인도 casecade가 사라지면서 챌린지 삭제 시 tagchallenge의 FK가 문제가 되어 발생했다. 따라서 casecade.REMOVE를 주어 챌린지 삭제 시 tagchallenge가 삭제되도록 하여 문제를 해결했다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글