equals는 문자열을 비교하는 메서드이다.
게시판 수정, 게시판 삭제를 구현하는 api를 만들고 있는데
api 명세서에 수정,삭제 시 입력해야하는 비밀번호가 게시글을 작성한 유저의 비밀번호와 같은지 확인해야하는 부분이 있었다.
if(post.getPassword().equals(requestDto.getPassword())
만약 데이터베이스에 저장되어있는 비밀번호와 클라이언트에서 입력한 비밀번호를 비교해야한다 생각해서 위와같이 코드를 짰다.
하지만 기술매니저님과의 면담을 통해서 만약 문자열이 null값이라면 저 조건문에서 서버가 터질것이라는 피드백을 받았다.
그 대안으로 StringUtils.equals라는 메서드를 사용하라고 하셨다.
그래서 StringUtils.equals가 무엇인지 구글링을 했는데 결과를 예외처리없이 false를 출력하고 다음 코드로 진행한다는 것이다.
널 포인터를 체크하지않고 사용해서 발생하는 버그가 너무 많아서 10억달러짜리 실수를 없애기 위하여 최신 언어는 null reference를 배제하려는 움직임을 보이려고 한다고들 한다.