오늘은 거의 내내 파이썬만 붇잡고 코딩만 했습니다. 특히 과제를 했는데
과제 내용은 파이썬으로 Python CLI 도서관 관리 시스템 구현을 하는것이 과제였습니다.
혹시 나중에 내가 이런 과제를 수행했다라는 것이 필요해서 여기다가 README를 올려야겠슴돠
본 과제는 Python 기초 과정을 이수한 여러분이 지금까지 배운 지식을 총동원하여 객체 지향적인 텍스트 기반 어플리케이션을 만드는 것을 목표로 합니다.
단순한 코드 작성이 아닌, 클래스 설계, 예외 처리, 모듈 분리에 중점을 두어 진행해 주세요.
과제 수행을 돕기 위해 초기 데이터 파일이 함께 제공됩니다.
books.csv: 테스트를 위한 도서 더미 데이터입니다. (제목, 저자, ISBN 정보 포함)아래 기술된 기능과 문법적 요소를 반드시 포함해야 합니다.
Book: 책 정보를 담는 클래스Member: 도서관 회원 정보를 담는 클래스Library: 전체 시스템을 관리하는 클래스 (도서/회원 목록 저장 및 메서드 구현)list 혹은 dict를 적절히 사용하세요.Exception 클래스를 상속받아 사용자 정의 예외를 만들어도 좋습니다.)main.py (실행 파일), models.py (클래스 정의), utils.py (기타 함수) 등으로 파일을 분리하여 작성하세요.csv 모듈 또는 기본 파일 입출력을 사용하여 books.csv를 읽어오는 기능을 구현해야 합니다.dataclass 등 배운 내용 외에 사용할 수 있는 기능은 자유롭게 사용해도 됩니다.프로그램을 실행하면 가장 먼저 books.csv를 로드하고, 아래 메뉴가 반복해서 출력되어야 합니다. (while 반복문 사용)
books.csv 파일을 읽어 Library에 도서들을 저장합니다.Book 클래스
title, author, isbn, is_borrowed (대출 여부, 기본값 False)__str__ (책 정보 문자열 반환)Member 클래스
name, phone, borrowed_books (현재 대출 중인 책 목록)Library 클래스
books (Book 객체 리스트), members (Member 객체 딕셔너리)add_book, add_member, borrow_book, return_book 등[System] books.csv 에서 도서 데이터를 불러왔습니다.
=== 도서관 관리 시스템 ===
1. 도서 등록
2. 도서 목록
3. 회원 등록
4. 대출
5. 반납
6. 검색
7. 종료
메뉴를 선택하세요: 4
[대출 시스템]
사용자 이름을 입력하세요: 홍길동
대출할 책의 ISBN을 입력하세요: 12345
>> '홍길동'님이 '파이썬 정복' (12345)을 대출했습니다.
필수는 아니지만, 실력 향상을 위해 도전을 권장합니다.
datetime 모듈을 사용하여 대출 시점의 시간을 기록하고, 반납 시 7일이 지났다면 연체 메시지를 출력해보세요.[!IMPORTANT]
주의사항 (필독)여러분의 PR은 여러 코드가 섞이는 것을 방지하기 위해 main 브랜치에 Merge 되지 않습니다.
PR을 제출하면 코드리뷰 후 최종 통과여부를 판단합니다.제프 최종 확인이 끝나면 PR은 Closed 되며 이 경우 통과입니다.
보완을 요청한 경우 해당 부분을 보완한 후 재제출 해주셔야 합니다!👩🎓
브랜치 전략을 사용하여 제출해야 합니다. 아래 순서를 정확히 지켜주세요.
이 Repository 우측 상단의 Fork 버튼을 클릭하여 본인의 계정으로 복사합니다.
로컬로 Clone 받습니다.
git clone <본인 레포 주소>
[중요] 본인의 이름으로 브랜치를 생성하고 이동합니다.
aws13th-본인이름 (예: aws13th-홍길동)git checkout -b aws13th-홍길동
과제 코드를 작성하고 커밋합니다.
본인의 원격 저장소(Fork 뜬 곳)에 해당 브랜치를 Push 합니다.
git push origin aws13th-홍길동
원본 레포지토리(이곳)로 Pull Request (PR) 를 보냅니다.
main ⬅️ Compare(출발지): aws13th-홍길동[이름] 도서관 관리 시스템 과제 제출이런 내용을 구현했고 https://github.com/gimyw/aws13th-ywkim-library-system.git
여기다가 push했습니다