이번에는 저번에 했던 일정 관리 프로젝트를 디벨롭 하는 과제였는데, 지난 번보다 과제의 난이도가 있어서 그런지 중간 중간 문제가 꽤 있었다.

분명히 테이블 내에 member_id 컬럼이 있는데 자꾸 없다고 하는 문제였다.
application.properties에 DB url 설정이 schedule_develop_db여야 하는데 schedule_db라고 되어있어서 생긴 문제였다.
이 문제는 에러 메세지를 보고 금방 해결할 수 있었다.

@NotBlank는 String 타입에만 사용할 수 있는데 LocalDate 타입에다가 사용해서 생긴 문제였다.
이건 너무 지식이 부족해서 생긴 문제라서 어노테이션을 더 공부해야할 것 같다.

@ModelAttribute나 Spring의 바인딩 동작이 객체를 먼저 new 해서 생성한 후에 setter로 값을 주입하기 때문에 생성자가 필요하다.
내가 이름으로 회원을 조회하는 로직에서 @ModelAttribute로 받아서 처리했는데, 어노테이션 방식에 익숙하지 않아서 헷갈린 것 같다.
내가 지금까지 setter를 붙이지 않아도 잘 동작했던 이유는 @RequestBody처럼 Jackson이 JSON 객체로 변환하는 방식만 사용해서 그렇다.

자바 단위랑 헷갈려서 @Column(nullable = false, length = 20) 이런 식으로 적게 걸어놨던 게 문제였다.
암호화 전에는 문제가 없었는데 암호화 로직을 적용하고 나니까 길이가 길어져서 생긴 문제인 듯 하다.
length 속성을 제거 해주었더니(제거하면 255로 자동 설정) 해결되었다.