본문 바로가기
스파르타 코딩 클럽 내일배움캠프 6기/TIL

2주차 - 1번째 과제 TIL

by 앱 창업 부트캠프 2025. 3. 11.

Today I Learned (TIL)

트러블슈팅 기록

1. Dart SDK 설치 문제

  • 문제: dart 명령어를 찾을 수 없음
  • 해결: Homebrew를 통해 Dart SDK 설치
    brew tap dart-lang/dart
    brew install dart

2. 프로그램 실행 경로 문제

  • 문제: dart run 명령어로 프로그램이 실행되지 않음
  • 해결: pubspec.yaml에 실행 파일 경로 지정
    executables:
      shopping_mall_cli: main

3. Null Safety 관련 문제

  • 문제: String? 타입 처리 시 null 참조 오류 발생
  • 해결: Null 체크 및 기본값 처리 추가
    var quantity = int.parse(quantityInput ?? '0');

4. 장바구니 중복 상품 처리

  • 문제: 같은 상품 추가 시 중복으로 표시됨
  • 해결: Set을 사용하여 중복 제거
    var uniqueItems = cartItems.toSet().toList();

5. 상품 검색 기능 구현

  • 문제: 대소문자 구분 없이 검색해야 함
  • 해결: 검색어와 상품명을 소문자로 변환하여 비교
    keyword = keyword.toLowerCase();
    products.where((product) => product.name.toLowerCase().contains(keyword))

6. 장바구니 상품 제거 기능

  • 문제: 장바구니에서 상품 제거 시 관련 데이터 모두 정리 필요
  • 해결: 상품 제거 시 수량, 금액, 목록에서 모두 제거
    cartItems.removeWhere((item) => item == productName);
    cartQuantities.remove(productName);
    total -= product.price * quantity;

7. 테스트 코드 작성

  • 문제: 기능 검증을 위한 테스트 코드 필요
  • 해결: test 패키지를 사용하여 단위 테스트 구현
    test('상품을 장바구니에 담을 수 있다', () {
      expect(shoppingMall.addToCart('셔츠', 2), true);
      expect(shoppingMall.total, 90000);
    });