학교 자바 수업 수행평가로 제작하게 된 프로젝트 입니다.
1. 기숙사 생활 중 세탁기 이용 혼잡과 예약 혼잡이 잦음프로젝트 제작 동기
➡️ 사용자들이 실시간으로 세탁기 상태를 확인, 예약, 취소를 가능하게 하고, GUI와 콘솔을 모두 사용하여 사용자의 편의성과 관리 효율을 높이자!
클래스 구조 설계
상속/오버라이딩
JDBC로 SQLite 연동
Swing으로 버튼 UI 만들기
4개를 사용하여 프로젝트 제작을 하기로 결정
전체 구조
WashingMachine - 기본 세탁기 클래스
PremiumWashingMachine - 상속으로 기능 확장
WasherSystem - 세탁기 전체 관리(예약/취소)
DatabaseManager - SQLite DB 관리
WasherGUI - Swing GUI
Main - 콘솔 버전 실행
✔ reserve() — 예약 정보 저장
✔ release() — 예약 취소
✔ getStatus() — 상태 문자열 리턴
➡️ PremiumWashingMachine은 getStatus()만 오버라이드 해서 '건조 기능 포함' 붙여줌
핵심 :
✔ SQLite 연결 (JDBC)
✔ reservations 테이블 자동 생성
✔ addReservation() / deleteReservation()
➡️ GUI·콘솔 어디에서 접근하든 DB에 동일하게 기록됨
실행화면



- 설계의 중요성을 실제 경험으로 체감전체 느낀 점
1. 현재 구조는 세탁기 당 예약을 하나만 저장해서,추후 추가하고 싶은 것
추가하고 싶은 내용 :
→ 세탁기가 여러 개의 예약을 리스트 형태로 보관하도록 확장
→ DB에서도 개별 예약을 ID 단위로 저장·취소하도록 구조를 바꿔 여러 예약을 정상적으로 처리할 수 있도록
→ 시간대가 겹치는지 검증하는 로직도 함께 추가
2. GUI를 배운 적이 많지 않아서, 현재 화면이 기능에 비해 너무 단조롭고 정보 표시가 부족,
예약 목록이나 시간대별 상태 같은 걸 직관적으로 보여주기엔 화면 구성이 아쉬움.
추가하고 싶은 내용 :
→ GUI를 조금 더 발전
→ 세탁기별 예약 목록 확인
→ 개별 예약 취소 선택
→ 시간표 형태의 시각적 표시