이번 주에는 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를 개발하는 것이 목표!