Dev/SpringBoot

JPA 사용해서 무한 계층 댓글 구현해보기 - 01

VIPeveloper 2022. 1. 20. 13:44
728x90
반응형

페이스북에서 보던 무한댓글(댓글의 댓글의 댓글의...) 은 어떻게 구현되는지 궁굼해서 이것저것 알아보다가

우연히 좋은 포스팅을 발견해서, 공부하고 응용해보는 작업을 해보려 한다.

 

1. 요구조건 및 개발 사항 정리

1. 엔티티 개발

  • 하나의 테이블만 이용하여 구현 예정
  • self join 사용하여 무한 뎁스 구현
  • level 필드를 구현하여 depth에 따라 level별 분류하도록 구현

2. 리포지토리 개발

  • JpaRepository 사용하여 구현

3. DTO 개발

  • Entity는 순수하게 DB를 생성하고 DB하고만 소통하게 하기 위해 DTO구현
  • DTO는 비지니스 로직에서 사용하기 위해 구현
  • Entity에서 list로 담은 children을 DTO로 변환 구현 (stream, Collectors 사용)

4. 서비스 개발

  • save 메소드
    • 상위 카테고리, 하위 카테고리 검색 후 각각의 상황에 맞게 save 구현
  • delete 메소드
    • 상위 카테고리, 하위 카테고리 검색 후 상황에 맞게 delete 구현
    • 하위 카테고리가 있는 상위 카테고리 삭제 시 name만 변경 하여 구분
  • get 메소드
    • branch로만 검색하여 하위 카테고리 모두 반환

5. 테스트 코드 개발

  • 1)given 2)when 3)then 의 순으로 테스트 코드 구현

6. 컨트롤러 개발

  • 웹 계층에 뿌려줄 각각의 반환 로직 구현

7. 웹 개발

  • Thymeleaf
  • CRUD가 다 진행될 수 있도록 구현

2. 개발 환경

  • Dependency 및 Spring boot Version

개발용 H2, AWS용 PostgreSQL 생각해서 둘다 추가해주었다.

728x90
반응형