Menu
Coddy logo textTech

검색 기능

Coddy Dart 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 110개 중 104번째.

challenge icon

챌린지

쉬움

이전 레슨에서 대출 및 반납 기능이 있는 Library 클래스를 만들었습니다. 이제 사용자가 도서관의 소장 도서를 찾을 수 있도록 검색 기능을 추가해 보겠습니다.

사용자가 도서를 찾을 수 있도록 돕는 세 가지 새로운 검색 메서드를 Library 클래스에 추가하여 기능을 강화합니다:

  • book.dart: 기존 Book 클래스를 변경하지 않고 그대로 유지합니다.
  • user.dart: 기존 User 클래스를 변경하지 않고 그대로 유지합니다.
  • library.dart: Library 클래스에 세 가지 검색 메서드를 추가합니다:
    • searchByTitle(String query) - 제목에 쿼리 문자열이 포함된 모든 도서를 포함하는 List<Book>을 반환합니다 (대소문자 구분 없음).
    • searchByAuthor(String query) - 저자 이름에 쿼리 문자열이 포함된 모든 도서를 포함하는 List<Book>을 반환합니다 (대소문자 구분 없음).
    • getAvailableBooks() - 현재 대출 가능한 도서만 포함하는 List<Book>을 반환합니다.
  • main.dart: 검색 기능을 시연합니다. Library를 생성하고 다음 네 권의 도서를 추가합니다:
    • 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
    • 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
    • 978-0-13-235088-4, Clean Code, Robert Martin
    • 978-0-20-161622-4, The Pragmatic Programmer, Andrew Hunt
    사용자(U001, Alice)를 등록하고 첫 번째 도서를 대출하게 합니다. 그런 다음:
    1. 제목에 pragmatic이 포함된 도서를 검색하고 Title search 'pragmatic': X found를 출력합니다 (X는 검색된 수).
    2. 저자가 david인 도서를 검색하고 Author search 'david': X found를 출력합니다.
    3. 대출 가능한 도서를 가져와 Available books: X를 출력합니다.
    4. 각 대출 가능한 도서를 각각 한 줄씩 출력합니다.

예상 출력:

U001 borrowed "The Pragmatic Programmer"
Title search 'pragmatic': 2 found
Author search 'david': 1 found
Available books: 3
[978-0-596-51774-8] JavaScript: The Good Parts by Douglas Crockford
[978-0-13-235088-4] Clean Code by Robert Martin
[978-0-20-161622-4] The Pragmatic Programmer by Andrew Hunt

직접 해보기

import 'book.dart';
import 'user.dart';
import 'library.dart';

void main() {
  // Library 생성
  Library library = Library();
  
  // TODO: 도서관에 책 네 권 추가:
  // 1. 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
  // 2. 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
  // 3. 978-0-13-235088-4, Clean Code, Robert Martin
  // 4. 978-0-20-161622-4, The Pragmatic Programmer, Andrew Hunt
  
  // TODO: 사용자 등록 (U001, Alice)
  
  // TODO: 사용자가 첫 번째 책을 대출하도록 함
  
  // TODO: 제목에 'pragmatic'이 포함된 도서 검색
  // 출력: Title search 'pragmatic': X found
  
  // TODO: 저자 'david'로 도서 검색
  // 출력: Author search 'david': X found
  
  // TODO: 대출 가능한 도서 목록을 가져와서 출력: Available books: X
  
  // TODO: 대출 가능한 각 도서를 개별 줄에 출력
}

객체 지향 프로그래밍의 모든 레슨