2025년 1월 5주차

김동환·2025년 1월 31일
0

📌 이번 주의 학습 (WIL)

1️⃣ FACTS (사실, 객관)

이번 주에는 NestJSTypeORM을 활용하여 댓글 서비스 (CommentsService & CommentsController) 를 개발했다.

  • 댓글 생성 (createComment): POST /comments/:cardId API를 통해 댓글을 생성
  • 댓글 조회 (findAllComment, findOneComment): 특정 카드의 모든 댓글과 개별 댓글을 조회하는 API 구현
  • 댓글 수정 (updateComment): PATCH /comments/:id를 통해 댓글 내용 수정
  • 댓글 삭제 (deleteComment): DELETE /comments/:id로 댓글을 삭제
  • Lodash 활용 (_.isNil): verifyComment에서 댓글이 존재하는지 검증

2️⃣ FEELINGS (느낌, 주관)

  • 처음에는 NestJS의 의존성 주입데코레이터 방식이 익숙하지 않아 어려웠다.
  • userInfo를 활용해 실제 유저 ID를 받아오는 방식이 미구현되어 있어, 현재는 임시로 userId를 하드코딩(1) 해야 하는 점이 아쉬웠다.
  • TypeORM의 findBy()findOneBy()를 활용한 쿼리 작성이 생각보다 직관적이라 개발 속도가 빨랐다.
  • 예외 처리를 추가하면서 비즈니스 로직의 견고함이 얼마나 중요한지 다시 한번 느꼈다.

3️⃣ FINDINGS (배운 것)

  • NestJS의 컨트롤러 & 서비스 구조

    • Controller는 요청을 받아 적절한 서비스를 호출하고 응답을 반환하는 역할을 한다.
    • Service는 비즈니스 로직을 처리하고, TypeORM을 통해 DB와 직접 소통한다.
    • 역할을 명확하게 분리하면 유지보수가 훨씬 쉬워진다.
  • TypeORM에서 데이터 검증 및 예외 처리 중요성

    • _.isNil()을 활용한 유효성 검사
    • NotFoundException을 통해 적절한 에러 메시지 반환
  • DTO(Data Transfer Object)의 필요성

    • CreateCommentDto, UpdateCommentDto를 사용하면 요청 데이터의 구조를 명확하게 정의할 수 있다.
    • 향후 유효성 검사를 추가할 때 유용할 것으로 보인다.

4️⃣ FUTURE (미래)

  • userInfo를 활용하여 실제 로그인된 유저의 ID를 가져오는 방식으로 개선할 예정
  • DTO유효성 검사(class-validator) 추가하여 요청 데이터 검증 강화
  • 쿼리 최적화: verifyComment()에서 중복 조회를 줄이도록 리팩토링
  • 댓글 좋아요 기능 같은 추가적인 기능을 구현해볼 계획

이번 주에 배운 NestJS & TypeORM 개념을 바탕으로, 더욱 효율적이고 확장성 있는 API를 개발하는 것이 목표!

profile
Node.js 7기

0개의 댓글

관련 채용 정보