16주차 개발일지
스프링 부트를 이용해서 개인프로젝트를 한지 2주째다.
https://github.com/zeroempty2/Springpractice
GitHub - zeroempty2/Springpractice
Contribute to zeroempty2/Springpractice development by creating an account on GitHub.
github.com
저번 주차에 만들었던 프로젝트에 몇가지 기능을 더했다.
JWT를 이용한 인증을 구현했고, 저번에 만들지 않고 넘어갔던 API 명세서를 작성하고, ERD도 그려보았다.
여기에 계정을 생성할때 받는 입력값을 제한된 문자와 길이로만 받는 기능도 구현했다.
그리고 좀 더 나아가서, 주말동안 다음 과제도 조금 해보았다.
계정에 권한부여(ADMIN이면 모든 글에 수정, 삭제 권한을 가진다.)기능을 만들었고, 댓글의 CRUD도 구현했다.
댓글 생성, 댓글 불러오기, 댓글 수정까지는 문제 없이 구현했지만 댓글 삭제에서 약간의 문제가 있었다.
댓글 삭제를 할때 게시글에서 @OneToMany로 지정해놓은 댓글도 삭제되어야하는데 삭제되지 않고 SQL에서 에러가 떴다.
찾아보니 @OneToMany에 mappedBy, cascade, orphanRemoval설정을 해 줄수 있었고, 적절한 값을 넣었더니 댓글 레파지토리에 댓글 삭제 명령을 내렸을때, 게시글의 댓글값도 같이 삭제되고, 게시글을 삭제했을때, 게시글에 달린 댓글도 모두 같이 삭제되었다.
ERD를 그리지 않고 만들었던 기능인데, 그래서 더 헷갈렸던것 같다.
CRUD외의 추가적인 기능까지 다 완성하고 ERD를 그리면서 다시 복습해볼 생각이다.