[투데이링크] 오류 해결

김세현·2023년 3월 24일
0

발견한 오류

새로 회원가입한 유저가 내가 참여한 이벤트 목록 페이지에 접근할 때 오류 발생

정상적인 경우 : 데이터에 접근 -> 데이터 없음 -> 데이터가 존재하지 않음을 표시

오류 : 데이터 접근 불가 -> 오류 -> 무한 '로딩 중...' 표시

오류 원인

회원가입 시 유저 데이터에 myEvent 필드를 생성하지 않은 채 회원가입이 완료되었습니다.

저지른 실수

회원가입 기능을 구현하는 시점이 내가 참여한 이벤트 목록 기능을 구현한 시점보다 이전이었으며,

회원가입을 구현하는 시점에서는 내가 참여한 이벤트 목록에 대한 계획이 전혀 없었습니다.

따라서, 초기 버전에서는 회원가입을 하게 되면 필수 정보만 (고유 ID, 유저 ID, 암호화된 패스워드) 저장되었습니다.

그리고 이후의 버전에서 내가 참여한 이벤트 목록이 추가되었고, 이때의 시점에서는 모든 유저들의 데이터 정보에 myEvent 필드가 존재했어야 했습니다.

하지만, 저는 내가 참여한 이벤트 목록 기능을 구현하며 다음과 같은 실수를 했습니다.

  1. 이미 테스트 계정을 보유한 상태로 테스트 진행
  2. 테스트 계정 DB에 직접 접근하여 myEvent 필드를 추가

위와 같은 실수들로 인해 저는 다음과 같은 케이스를 고려하지 못했습니다.

새로 회원가입하는 유저를 고려하지 않았습니다. 따라서, 새로 회원가입하는 유저는 myEvent 필드가 존재하지 않았습니다.

즉, 프로젝트의 모든 권한을 제가 갖고 있었기 때문에 쉽게 데이터를 추가하고 삭제할 수 있었고,

저는 이 권한을 이용하여 내가 참여한 이벤트 목록 기능을 개발했습니다.

따라서, 실제 환경에서 발생할 수 있는 다양한 케이스를 고려하지 못했습니다.

오류를 발견할 수 있었던 이유

다른 기능을 유지 보수하며 실제 배포 환경에서 테스트를 진행했었습니다.

테스트 과정은 유저가 투데이링크에서 진행할 수 있는 모든 행동의 흐름을 가정하여 진행했기 때문에

회원가입부터 진행했습니다.

그리고, 유저의 데이터를 살펴보았고 다음과 같았습니다.

그리고, 유저 데이터에 myEvent 필드가 없다는 것을 발견했습니다.

저는 내가 참여한 이벤트 목록 기능을 최근에 구현했기 때문에, 유저 정보에 반드시 myEvent 필드가 있어야 한다는 것을 인지 하고 있었습니다.

따라서, 저는 이를 발견하자마자 실제 배포 사이트로 가서 테스트를 진행하였고, 오류를 발견할 수 있었습니다.

해당 코드 수정 기록

gitHub 해당 commit

profile
under the hood

0개의 댓글