Skip to content

Conversation

@hyomee2
Copy link
Collaborator

@hyomee2 hyomee2 commented Dec 26, 2025

🔥Pull requests

👷 과제 구현

필수과제

  • 앱잼 신청
  • 기획경선과 밋업 참여
  • 댓글 기능 추가

선택과제

  • 캐싱
  • 대용량 데이터 처리 및 정렬 최적화
  • 인프라 설계 시각화
  • 테스트 코드 도입

구현한 내용에 대해서 설명해주세요

댓글 기능을 구현했습니다.

구현하며 고민했던 내용을 적어주세요 (사소한 것도 좋아요)

  1. BaseEntity와 BaseSoftDeleteEntity
  • BaseEntity에 created_at과 updated_at 컬럼을 두고 상속하여 생성 및 수정일시를 관리하였습니다.
  • 이번 댓글 기능을 추가하며 soft delete를 도입했고, 이 역시 여러 엔티티에 걸쳐 사용할 것이라고 판단하여 별도의 추상클래스인 BaseSoftDeleteEntity로 두고 상속해 사용했습니다.
  1. Controller의 책임 분리
  • CommentController을 따로 만들어주었지만, 계층 관계 및 비즈니스적으로도 댓글 생성과 댓글 리스트 조회는 특정 아티클에 종속된다고 생각했습니다. 따라서 이 두 API는 ArticleController에, 댓글 수정 및 삭제는 CommentController에 두었습니다.
  1. RequestHeader을 이용한 memberId 전달
  • 이전의 심화과제를 구현하지 않아 현재 로그인한 회원의 memberId를 꺼내올 수 없어 임시로 RequestBody에 보낼까 고민하다가 RequestHeader를 이용해 전달하도록 했습니다.


키워드 과제 정리내용



🚨 참고 사항

- title 단일 컬럼에 대한 unique 제약조건이므로 Table 레벨에서의 제약조건을 삭제해주었습니다.
- createdAt, updatedAt을 상속할 수 있게 BaseEntity를 분리했습니다.
- DTO와 메서드명을 의미가 직관적으로 와닿도록 변경했습니다.
- 이전에 작성했던 article-member 양방향 연관관계가 불필요하다고 판단하여 단방향 연관관계로 변경했습니다.
- request/responseDTO -> request/response로 변수명을 통일했습니다.
- Soft Delete을 위한 BaseSoftDeleteEntity를 추가해주었습니다.
- Soft Delete를 할 경우가 늘어날 것을 대비하여 별로의 추상 클래스를 생성했습니다.
- 양방향 관계를 단방향으로 바꿈에 따라 assignAuthor를 삭제했습니다.
- @joincolumn의 column 명을 스네이크 방식으로 변경했습니다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants