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

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

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

in progress : 예산 및 지출 관련 API 작성 중
done : 프로젝트 구조 설계, 사용자 회원가입 및 로그인, 카테고리 API 완료

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

  • 예산 생성 관련 생성(수정)을 json 배열 형식으로 요청 받아 진행하였는데, 이 방식이 괜찮은 지에 대한 고민해보았습니다.
[
    {
        "categoryID": 1,
        "amount": 400000
    },
    {
        "categoryID": 3,
        "amount": 200000
    }
]
  • 아래 요구사항을 변경 구상하고 있는데, 요구사항을 변경할 지 그대로 구현할 지 고민하고 있습니다!
  • 자동 생성된 예산은, 기존 이용중인 유저 들이 설정한 평균 값 입니다.
    • 유저들이 설정한 카테고리 별 예산을 통계하여, 평균적으로 40% 를 식비에, 30%를 주거 에 설정 하였다면 이에 맞게 추천.
    • 10% 이하의 카테고리들은 모두 묶어 기타 로 제공한다.(8% 문화, 7% 레져 라면 15% 기타로 표기)
    • 위 비율에 따라 금액이 입력됩니다.
  • 기존 이용 중인 사용자들이 설정한 평균 비율 값이 사용자가 원하는 예산 설계에 적절하지 않을 수 있다고 생각함
    • 사용자 총 예산과 근접한 다른 사용자 10명의 카테고리 별 예산 목록을 가져오는 것이 좀 더 참고하기 좋다 생각함

3️⃣ Today I Learned

  • Entity에서 Join된 Relation Entity의 Column을 찾을 때 아래와 같이 조건문으로 접근해서 찾는 방식에 대해 이해할 수 있었음.
@Entity('users')
@Unique(['username'])
export class User {
  @PrimaryGeneratedColumn()
  id: number;
    ...
  @OneToMany(() => Budget, (budget) => budget.user)
  budgets: Budget[];
}
@Entity('budget')
export class Budget {
    ...
  @ManyToOne(() => User, (user) => user.budgets, {
    onDelete: 'CASCADE',
  })
  @JoinColumn({ name: 'user_id' })
  user: User;
}
  /** id의 사용자 예산 정보 반환
   * @return Budget[]
   */
  getBudgetsByUser(id: number): Promise<Budget[]> {
    return this.budgetRepository.find({
      where: { user: { id: id } },
      relations: ['user', 'category'],
    });
  }

📁 수행 기업 과제 Repository

이 글이 도움이 되었나요?

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