원티드 프리온보딩 백엔드 인턴십 7th : 231117 TIL

원티드 프리온보딩 백엔드 인턴십 7th : 231117 TIL

1️⃣ 할당된 업무에 대한 진행상황.

in progress : 단위 테스트 코드 작성
done : 주석 및 메시지 처리, README 작성, 프로젝트 REST API, cron을 이용한 알림 schedule 기능 추가mailer 알림 기능 추가 완료

2️⃣ 진행한 작업에 대한 리뷰 및 커밋한 내용 리뷰진행.

  • 요구사항 변경 내용 및 사유
    • 기존 이용 중인 사용자들이 설정한 평균 비율 값사용자가 원하는 예산 설계에 적절하지 않을 수 있다고 생각함
      • ex) 기존 사용자들와 사용자간의 예산 격차가 큼
      • ex) 추천대로 예산 비율을 받았으나, 사용자지출 취향을 고려받는다는 보장이 없음
    • 사용자 총 예산과 근접한 다른 사용자 10명카테고리 별 예산 목록을 가져오는 것이 좀 더 참고하기 좋다고 판단
      • 추후 기존 사용자들의 적절한 지출 여부를 추가해 예산 설계 추천의 정확성을 높여도 괜찮다고 생각
await this.budgetRepository
      .createQueryBuilder('b')
      .select('b.user.id', 'userID')
      .addSelect(`ABS(SUM(b.amount) - :amount)`, 'diff')
      .setParameter('amount', amount)
      .where('b.user.id != :id', {
        id: id,
      })
      .orderBy('diff', 'ASC')
      .groupBy('b.user.id')
      .limit(10)
      .getRawMany();
  • 디스코드의 Webhook으로 알림 기능을 구현하려 했으나, 알림을 허용한 사용자에 한하여 전달해야하는 기능이기 때문에, Mailer 모듈을 사용하였음.

3️⃣ Today I Learned

  • @nestjs-modules/mailer 모듈을 사용하여 월별 지출 추천오늘 지출 추천 알림 기능을 구현하였는데, 이에 대해 정리해볼 생각입니다.
this.mailerService.sendMail({
        to: user.email,
        subject: `[돈이 Money 알림] ${user.username}님의 총 지출 현황`,
        html: emailContent,
})

📁 수행 기업 과제 Repository

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.