항해99 - day66

Dasole Kwon·2022년 7월 13일
0

항해99

목록 보기
43/47

1차 scope인 메인글CRUD + 상세페이지 + 댓글 구현을 마치고, 2차 scope인 대댓글CRUD를 완성했다. 그동안 상당히 많은 에러가(하루에 20번정도..ㅋ)났지만, 당장 생각 나는 것 부터 적어보겠다.

  1. java.sql.SQLException: Field '' doesn't have a default value
    -> 컬럼 이름을 바꿔야해서 바꾸고 실행을 하는데(comment -> content) 해당 에러가 떴다.
    알고보니 기존에 있던 mysql db 컬럼을 drop하지 않고 그대로 진행해서 db에 테이블 이름이 바뀌어있지않아 새로운 컬럼이 매칭되지 않았다. 해당 테이블db를 삭제하고 진행하였더니 바로 해결됐다.

  2. unsatisfied dependency expressed through constructor parameter 0 (중략)
    라는 에러코드가 계속 나타났고, 읽어보니 bean들이 연달아서 생성이 안되었다는 메세지와 그 끝에는 도메인 클래스가 생성이 되지 않았다는 메세지가 있었음다. 해결방법은 간단했다. 도메인클래스에서 @Entity 어노테이션을 적지않은 것이 원인이었고, 추가하였더니 해결 됐다.

*대댓글 기능
대댓글을 구현하며, 여러가지 방법에 대해 고민했다.

첫번째 방법으로는 댓글 테이블에 참조키 컬럼을 추가해서 작성자나 작성내용/날짜를 제외하면 [게시판 고유번호], [댓글 고유번호],[댓글 참조코드] 이렇게 추가하고, 댓글 참조 코드는 댓글 고유번호를 가르키도록 하려고 하였다.
[게시판 고유번호], [댓글 고유번호], [댓글 참조코드] 순서라고 할때
board1, rep1, null -> 참조코드가 null 이면 '댓글'
board1, repr1, rep1 -> 참조코드가 rep1이므로, rep1의 대댓글
board1, repr1, rep1 -> 참조코드가 rep1이므로, rep1의 대댓글
board1, rep2, null -> 참조코드가 null 이면 '댓글'
board1, rep3, null -> 참조코드가 null 이면 '댓글'
board1, repr1, rep3 -> 참조코드가 rep3이므로, rep3의 대댓글

이런식으로…… 그런데 어차피 무한대댓글을 구현할 계획이 없었고, parent-child 방식이 생각보다 나에게 어려워서ㅠㅠ 다른 방법을 선택하기로했다.

두번째 방법, 즉 내가 대댓글을 구현한 방식은 대댓글용 테이블을 하나 더 만들어서, 댓글과 동일한 방식으로 crud를 하는것이다. 가장 간단하고 어차피 댓글의 댓글의 댓글을 추가할 계획은 없었기 때문에 해당 방법을 택했다.

0개의 댓글