오늘은 Spring boot를 이용해 프로젝트를 진행하던 중 발생한 문제들을 해결하기 위해 찾아본 지식들을 적어보도록 하겠다.
첫번째 문제상황은 사용자가 로그인을 진행했을때 관리자 코드를 가지고 로그인을 하는지로 판단해 관리자와 일반사용자를 나누는 과정에서 어떤식으로 판단할지 였다.
찾아본 결과 StringUtils.hasText()를 사용하기로 했다.
StringUtils.hasText()
StringUtils.hasText() 는 인자로 받은 문자열의 공백 여부에 따라 true/false를 반환한다.
위의 코드는 사용자가 회원가입시 요청하는 데이터들로 초록색으로 표시된곳이 사용자를 일반사용자인지 관리자인지를 판단하는 키이다.
위의 코드는 사용자가 데이터를 보내고 서버가 데이터를 받았을때, 즉 회원가입 기능때 동작하는 코드로 사용자가 관리자코드를 가지고왔다면 관리자로 저장하는 코드이다.
초록색으로 표시된 곳에서 hasText()를 사용하였고 Dto 클레스의 AdminToken에 아무런 값이 없다면 일반사용자로 판단하게 했다.
두번째 문제 상황은 게시물 테이블과 댓글테이블을 1:N 관게로 설정하고 게시물 테이블의 데이터를 삭제할때 삭제 되지 않는 상황이였다.
찾아본 결과 먼저 참조하고있는 댓글데이터를 먼저 삭제하고 게시물 데이터를 삭제하면 정상적으로 삭제가 진행되는 것을 알았다.
위의 코드는 사용자가 이미 로그인을 마친 상황에서 토큰을 유지한체 게시글을 삭제할때 동작하는 코드로 참조하고 있던 데이터인 댓글 테이블에 데이터를 먼저 삭제하고 후에 해당 게시글도 삭제하는 코드이다.
추가적으로 해당 프로젝트에 사용한 ERD이다.
간단한 문제들이였지만 데이터베이스 개념을 다시 복습하고 이미 짜여있는 메소드를 활용해야 겠다는 생각도 하게되는 시간이였다.