Skip to content

feat:3주차 과제 완료 - 도서 데이터 처리 시스템#1

Open
kyuwani wants to merge 1 commit into
LIKELION-HALLYM:mainfrom
kyuwani:main
Open

feat:3주차 과제 완료 - 도서 데이터 처리 시스템#1
kyuwani wants to merge 1 commit into
LIKELION-HALLYM:mainfrom
kyuwani:main

Conversation

@kyuwani

@kyuwani kyuwani commented Jun 2, 2026

Copy link
Copy Markdown

도서 데이터 처리 시스템 과제 제출

과제 내용

JavaScript 심화 과제 - 도서 데이터 처리 시스템 구현

구현한 함수

PART 1. 배열과 배열 메서드

  • [ x ] getTitlesByCategory() - 카테고리별 책 제목 추출
  • [ x ] getTotalPriceAbove() - 가격 합계 계산
  • [ x ] isAllSameCategory() - 동일 카테고리 여부 확인

PART 2. 구조 분해 할당

  • [ x ]formatBookLabel() - 도서 라벨 포맷
  • [ x ]splitFirstAndRest() - 첫 번째 책과 나머지 분리
  • [ x ]omitPrice() - 가격 필드 제거

PART 3. Map과 Set

  • [ x ]groupByCategory() - 카테고리별 그룹화 (Map)
  • [ x ]intersection() - 두 배열의 교집합
  • [ x ]unique() - 중복 제거

PART 4. Object 유틸

  • [ x ]getOutOfStock() - 재고 없는 책 목록
  • [ x ]getTotalStock() - 전체 재고 합산
  • [ x ]removeNullish() - null/undefined 키 제거

PART 5. 배열 메서드 심화 ★

  • [ x ]getAvgPriceByCategory() - 카테고리별 평균 가격
  • [ x ] sortBy() - 특정 키 기준 정렬
  • [ x ]flattenCategories() - 중첩 카테고리 평탄화

PART 6. 이터러블 & 페이지네이션 ★★

  • [ x ] createBookIterator() - 이터레이터 생성
  • [ x ] paginate() - 페이지네이션 처리

과제 수행 후기

  • 어려웠던 점:

  • 새롭게 배운 점:

  • 리뷰어가 중점적으로 봐줬으면 하는 점:

셀프 체크리스트

  • [ x ] npm test를 실행하여 모든 테스트가 통과하는지 확인했습니다.
  • [ x ] for 반복문 대신 배열 메서드(filter, map, reduce 등)를 사용했습니다.
  • [ x ] 원본 배열 또는 객체를 직접 수정하지 않았습니다.
  • [ x ] module.exports 블록을 수정하지 않았습니다.
  • [ x ] 함수 이름이 역할을 명확히 드러냅니다.
  • [ x ] 불필요한 console.log가 남아 있지 않습니다.
  • [ x ] 코드가 가독성 있고 잘 구성되어 있습니다.

🔗 관련 파일

  • index.js - 메인 구현 파일
  • index.test.js - Jest 테스트 파일
  1. 어려웠던 점
    Object 유틸 함수를 구현하는 과정에서 테스트 결과가 undefined로 나오는 오류를 해결하는 데 어려움을 느꼈다.

  2. 문제 상황
    getTotalStock은 재고 합계 숫자를 반환해야 하고, removeNullishnullundefined를 제거한 객체를 반환해야 했지만 테스트 결과가 모두 undefined로 출력되었다.

  3. 원인
    함수 내부에서 값을 처리하는 로직은 작성했지만, 최종 결과를 return하지 않아 기대값이 반환되지 않았다.

  4. 해결 방법
    getTotalStockObject.values()reduce()를 사용해 재고 수량의 합계를 반환하도록 수정했다.
    removeNullishObject.entries()filter()를 사용해 nullundefined 값만 제외한 새 객체를 반환하도록 수정했다.

  5. 배운 점
    이번 오류를 통해 함수 구현 시 로직 작성뿐만 아니라 최종 결과를 명확히 반환하는 것이 중요하다는 점을 배웠다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant