이번 주에는 NestJS와 TypeORM을 활용하여 댓글 서비스 (CommentsService & CommentsController) 를 개발했다.
createComment): POST /comments/:cardId API를 통해 댓글을 생성 findAllComment, findOneComment): 특정 카드의 모든 댓글과 개별 댓글을 조회하는 API 구현 updateComment): PATCH /comments/:id를 통해 댓글 내용 수정 deleteComment): DELETE /comments/:id로 댓글을 삭제 _.isNil): verifyComment에서 댓글이 존재하는지 검증 userInfo를 활용해 실제 유저 ID를 받아오는 방식이 미구현되어 있어, 현재는 임시로 userId를 하드코딩(1) 해야 하는 점이 아쉬웠다. findBy()나 findOneBy()를 활용한 쿼리 작성이 생각보다 직관적이라 개발 속도가 빨랐다. NestJS의 컨트롤러 & 서비스 구조
Controller는 요청을 받아 적절한 서비스를 호출하고 응답을 반환하는 역할을 한다. Service는 비즈니스 로직을 처리하고, TypeORM을 통해 DB와 직접 소통한다. TypeORM에서 데이터 검증 및 예외 처리 중요성
_.isNil()을 활용한 유효성 검사 NotFoundException을 통해 적절한 에러 메시지 반환 DTO(Data Transfer Object)의 필요성
CreateCommentDto, UpdateCommentDto를 사용하면 요청 데이터의 구조를 명확하게 정의할 수 있다. userInfo를 활용하여 실제 로그인된 유저의 ID를 가져오는 방식으로 개선할 예정 DTO에 유효성 검사(class-validator) 추가하여 요청 데이터 검증 강화 verifyComment()에서 중복 조회를 줄이도록 리팩토링 댓글 좋아요 기능 같은 추가적인 기능을 구현해볼 계획 이번 주에 배운 NestJS & TypeORM 개념을 바탕으로, 더욱 효율적이고 확장성 있는 API를 개발하는 것이 목표!