연습 문제
요구사항
- 책과 DVD는 제목(title)과 고유 id를 가진다.
- 연체료 계산 방식은 항목 종류에 따라 다르게 동작해야 한다.
- 책: 하루 연체당 100원
- DVD: 하루 연체당 300원, 단 최대 3000원을 넘지 않음
- 새로운 항목 종류가 추가되더라도(예: 잡지) 기존 코드를 수정하지 않고 확장 가능한 구조여야 한다.
- 도서관은 여러 항목을 보관하고 있으며, id로 특정 항목을 찾아 연체일수를 주면 연체료를 계산해줄 수 있어야 한다.
- 존재하지 않는 id로 조회하면 프로그램이 죽지 않고, 적절한 예외를 던져서 호출부에서 처리할 수 있어야 한다.
- 보관 중인 모든 항목을 출력할 수 있어야 하며, 출력 시 항목의 실제 타입(책인지 DVD인지)이 구분되어야 한다.
- main()에서 여러 항목을 등록하고, 존재하는 id/존재하지 않는 id 둘 다로 연체료 조회를 시도해서 예외 처리가 잘 되는지 확인한다.
