내일 모의면접 큰일났네...
탈퇴한 유저의 경우 팀원들 정보 가져올 때 제외할 수 있도록 수정
오늘 새로 추가된 탈퇴한 유저의 팀정보에 관해 어떻게 수정하면 좋을지 두가지 방법을 고민했었다. 첫번째는 팀원을 조회할 때 유저 상태가 탈퇴면 제외하고 불러오는 것이었고 두번째는 탈퇴할 때 팀을 null로 바꿔주는 것이었다. 첫번째 방법으로 하려고 생각해보니 어차피 한번 탈퇴하면 다시 취소할 수 없는데 팀 정보를 계속 가지고 있다면 팀원들을 조회하거나 팀 id를 매개변수로 다른 정보를 찾아올 때 문제가 생길 것 같았다. 실제로 그런지 확신할 수 없어 다음주에 튜터님께 여쭤봐야겠지만... 아무튼 userService에서 status를 확인할 떄 해당 유저가 소속된 팀이 있는 경우 null로 바꿔주었다.
@Transactional
public void setStatus(UserDto userDto, String username) {
User user = userRepository.findByUsername(username).orElseThrow(
() -> new NullPointerException("그럴리가 없쥬")
);
if (user.getTeam() != null) {
user.setTeam(null);
}
user.updateStatus(userDto);
}
이렇게 해결은 했지만 사실 update와 set이 어떤 차이가 있는지 한번 알아봐야겠다. 그리고 team이 user entity에서 fk인데 저렇게 바꿔줘도 괜찮은건지... 이 부분에 대해서는 공부가 더 필요한 것 같다. setter와 update, save가 어떤식으로 다른지에 대해 확인하고 넘어가야겠다. 특히, getter와 setter는 사용을 지양하라는데 이제 3차 스프린트 기간때 코드 리팩토링을 하면 반영해서 수정해야겠다.
모의면접 준비(내 코드 다시 훑어보기)