이번 프로젝트를 진행하면서
댓글 기능을 개발하게 되어서
어떻게 개발을 하게되었는지 이야기 해보려고 한다.
댓글은 위 이미지처럼 개발할 예정이다
댓글하나에 대댓글 작성이 가능하고
대댓글의 대댓글은 작성 불가능하도록 할 것이다.
테이블 설계
댓글 테이블은 아래와 같이 구성할 예정이다.
MSA 기반 프로젝트이기 때문에 댓글과 연관관계를 가져야 될 서비스들은 분리 되어 있다.
그리고 서비스의 특성상 어떤 모임의 댓글인지를 구분해줄 모임 id가 존재한다.
컬럼들을 설명해보자면,
- comment_class : 댓글 종류를 구분해주는 역할을 해준다. 0은 댓글, 1은 대댓글임을 표시해주는 역할을 한다
- parent_id : 만약 대댓글인 경우 댓글(부모댓글)의 id를 넣어줘서 어떤 댓글의 대댓글인지를 알려주는 역할을 한다.
만약 댓글인 경우 null값을 저장한다. - user_id : 어떤 유저가 작성했는지를 알려준다
- post_id : 어떤 게시물의 댓글인지를 알려준다
- comment : 댓글 내용
추가적으로, 댓글 개수가 많아지면, 페이지네이션을 구현해줄지 말지도 생각해야 할것 같고,
댓글을 실시간으로 업데이트 해줄지 말지도 고민해보면 좋을거 같다. (이건 아마도 안할듯, http로 할듯)
728x90
'CS > 데이터베이스' 카테고리의 다른 글
벌크 연산으로 쿼리 튜닝하기 (0) | 2025.04.25 |
---|---|
DB를 선택하는 기준 (0) | 2025.04.05 |
캐싱 전략 (Chache-Aside, Write-Through, Write-Behind) (0) | 2025.03.07 |
HttpSession과 Session Clustering (with Redis) (2) | 2025.03.06 |
프로젝트에 Redis를 도입하는 근본적인 이유 (feat. 기술 면접) (0) | 2025.03.05 |