이론이 먼저일까, 실무가 먼저일까? 로버트 L. 글래스 1. 티켓 판매 어플리케이션 구현하기 요구사항 소극장의 홍보를 위해 추첨을 통해 관객들에게 무료 공연 초대권을 발송한다. 관람객의 소지품은 초대장, 현금, 티켓으로 제한하고 이를 보관할 용도의 가방을 들 고 온다. 클래스 구현 관람객이 소지품을 보관할 Bag 클래스를 추가하고, 초대장의 보유 여부를 판단하는 hasInvitation 메서드와 티켓의 소유 여부를 판단하는 hasTicket 메서드, 현금을 변화시키는 plusAmount, minusAmount 메서드, 그리고 초대장을 티켓으로 교환하는 setTicket 메서드를 구현한다. Bag 인스턴스의 상태는 현금과 초대장을 함께 보관하거나, 초대장 없이 현금만 보관하는 두 가지 상태중 하나이다. 이..