2023-04-04 목
오늘은 PostRepository에 대한 CRUD test를 진행하였다. 일단 가장 기본적인 글쓰기, 글 read, 그리고 삭제 테스트를 진행하였다.
아직 글 수정 테스트는 미처 만들지 못했다.
오늘도 역시나 오류가 나왔다.
Entity 클래스에서 각각의 column들의 null 여부는 분명 필요하다.
내가 만들려 하는 테이블들의 column은 모두 null이 되면 안된다.
그래서 @NotNull이라는 어노테이션을 활용하여 Null이 될 수 없게 만드려 했지만, 해당 어노테이션을 인식하지 않는 오류가 나타났다.
@NotNull 어노테이션에 대해 구글링 해본 결과, 해당 어노테이션을 사용하려면 도메인 클래스에 제약 조건을 걸어주는 validation에대한 의존성을 주입해 주어야 한다.
아직 내가 의존성에 대해 잘 모르는 것인지, build.gradle에 의존성을 주입 했음에도 불구하고, @NotNull 어노테이션을 인식하지 못했다.
그렇다고 @Column 어노테이션의 속성중 하나인 nullabe=false를 사용할 수 있었지만,
해당 속성은 db에는 null인 상태로 들어갈 수는 없지만, null을 넣은 엔티티를 생성하면 생성이 된 뒤 Repository에 전달되고, 이 값이 DB에 넘어간 뒤에 예외가 발생해 위험한 오류를 맞을 수 있다.
그래서 사용하기 싫었다.
그래서 생각해 낸 것이
vscode의 mysql에서 테이블을 디자인 할 수 있는 방법이 있었다.(아직 테이블을 다 만든 것은 아니다..!! 그냥 봐주면 좋겠다.)
여기서 내가 원하는 column에 NotNull속성을 지정할 수 있는 것이었다.
그래서 @NotNull 어노테이션을 사용하는 대신 직접 NotNull을 선택하여 테이블을 만들었다.
요즘 이 프로젝트를 시작해 공부하며 만들면서 느끼는 점이 있다.
저번 겨울 방학동안 강의를 들으며 혼자 공부를 하면서, 무언가 만들어지는 것은 없는 것 같고, 제대로된 결과물이 없는거 같아 내가 공부를 잘하고 있는건가 라는 생각이 들었다.
하지만 프로젝트를 진행 하면서 내가 무언가를 만들고 있다라는 생각이 들면서 삶에 활기가 도는 느낌이 들었다.
물론 개발자가 되기위한 목표를 이루기 위해 방학 때 공부한 것도 맞지만, 지금은 이 프로젝트를 잘 다듬어 만들어 보고 싶다는 좀 더 가까운 목표가 생기니 더욱 내일이 기대가 되고 얼른 완성 시키고 싶다는 생각이 든다.
내일은 TACO 프로젝트의 두번째 회의날이다.
프론트 부분의 팀원들과 추가할 기능들을 정리하고, 어서 프로젝트의 틀이 짜여졌으면 좋겠다.
P.S. 아 뭔가 오늘 있었던 문제점과 해결점만 회고록에 작성하다보니 회고록도 잘 못쓴거 같은 느낌이다. 다음부터는 어떤 방식으로 공부하고 만들었는지에 대해서도 써야겠다.