더북(TheBook)

1.10.1 실습 문제 3: 사무실 공유 프린터의 인쇄 대기 목록 시뮬레이션

이번 실습 문제에서는 사무실 프린터에서 인쇄 대기 목록을 시뮬레이션해보겠습니다. 보통의 회사 사무실에서는 한 대의 프린터를 공유하여 사용합니다. 보통 여러 대의 컴퓨터가 하나의 프린터에 연결되어 있습니다. 프린터는 한 번에 하나의 인쇄 요청을 수행할 수 있으며, 하나의 인쇄 작업을 완료하기까지는 얼마간의 시간이 필요합니다. 그러는 동안 다른 사용자가 인쇄 요청을 보낼 수 있습니다. 이 경우 프린터는 지연된 인쇄 요청 내역을 어딘가에 저장해 두어야 하며, 현재 인쇄 작업이 완료된 후 저장된 인쇄 요청을 처리해야 합니다.

이 문제를 해결하기 위해 다음 단계를 수행합니다.

  1. Job이라는 이름의 클래스를 생성합니다. 이 클래스는 작업 ID, 인쇄 요청을 한 사용자 이름, 인쇄 페이지 수 등으로 구성됩니다.

  2. Printer 클래스를 생성합니다. 이 클래스는 새 인쇄 작업을 추가하고, 현재까지 추가된 모든 인쇄 작업을 처리하는 기능을 제공합니다.

  3. Printer 클래스를 구현하려면, 모든 지연되고 있는 인쇄 요청을 저장해야 합니다. 인쇄 요청은 먼저 요청된 순서대로 처리하는 방식을 따릅니다. 즉, 가장 빠른 인쇄 요청부터 처리하여 인쇄됩니다.

  4. 마지막으로 여러 사람이 프린터에 작업을 추가하는 시나리오를 구현하고, 프린터는 차례대로 인쇄 작업을 수행합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.