본문 바로가기
TIL & WIL

[TIL] #61. 231113

by mmm- 2023. 11. 13.

어제 목표 & 오늘 완료한 한 일 

  • 알고리즘 문제
  • 자바 종합 문법 복습 (3주차)
  • 스프링 숙련 강의 (2주차)
  • 스프링 숙련 개인과제


내일 목표

  • 알고리즘 문제
  • 자바 종합 문법 복습 (3주차)
  • 스프링 숙련 강의 (2주차)
  • 스프링 숙련 개인과제

 

오늘 배운 내용

 

발생한 문제와 해결

1️⃣. todo를 생성할 때, 아래와 같은 에러가 발생했었다.

not-null property references a null or transient value : com.sparta.todo.entity.Todo.contents

해당 에러는 @RequestBody를 해주지 않아 발생한 에러였다.  매개변수 앞에 해당 annotation을 붙여주었더니 에러를 해결할 수 있었다.

 

2️⃣. 회원가입 부분을 구현하는 과정에서 DB에는 저장되지 않았는데 중복된 username이 있다는 메세지를 확인할 수 있었다. 그 이유는 바로 request로 들어온 username이 DB에 이미 존재하는지 확인하는 과정에서 usernameCheck 값이 존재하는지 확인하기 위해 isEmpty를 사용해 작성한 if문이 잘못되었기 때문이다. isEmpty()의 경우 저장된 값이 존재하지 않으면 true를 반환하는데, 그 경우에 "중복된 usernmae이 있습니다." 라는 예외처리를 해줬기 때문에 올바르지 않은 로직이 처리가 되었던 것이다. !isEmpty()로 변경해주었더니 인텔리에지에서 isPresent()를 추천해줘 해당 메서드로 변경을 했다.

 

 

느낀점

과제를 하면서 관련된 부족했던 부분들을 적어가며 공부했다. 그럼에도 불구하고 아직 모르는 것이 많지만 이렇게나마 한 번 더 볼 수 있는 기회가 있어서 좋았다. 위에서 이야기 했던 발생한 문제점을 계기로 isEmpty와 isPresent의 차이점에 대해 찾아봤다. 그 결과, isPresent()는 값이 존재하지 않으면 false를 반환한다는 점이 다르고, isPresent()는 Optional객체에 사용되고, isEmpty()는 collection 객체에 사용된다는 것을 알게되었다. 그리고 오늘은 알고리즘 스터디에서 프로그래머스에서 푼 문제를 조금 바꿔 이러한 문제였다면 어떻게 풀었을지에 대해 생각해보는 시간도 가져보고, 모르는 부분은 팀장님이 설명해주셨다. 정말 많이 도움이 된 것 같고 앞으로도 도움이 많이 될 것 같아 기대가 된다. 나도 앞으로 문제를 혼자 풀어볼 때 이 문제가 이랬다면 어땠을까? 이러한 생각도 하면서 문제를 여러 방면에서 바라보기 위해 노력해야겠다.

 

 

'TIL & WIL' 카테고리의 다른 글

[TIL] #63. 231115  (0) 2023.11.15
[TIL] #62. 231114  (1) 2023.11.14
[WIL] #9. 231106 ~ 231112  (0) 2023.11.12
[TIL] #60. 231112  (0) 2023.11.12
[TIL] #59. 231111  (0) 2023.11.11