프로그램 주제
자바를 이용한 통합 도서관리 프로그램
개발목적
도서관 관리자에게 관리를 더욱 효율적이고 용이하게 할 수 있도록 도움을 줌.
특징
- 그래픽 인터페이스를 최대한 직관적이고 쉽도록 구성하였고, 관리자가 실시간으로 모니터링 할 수 있도록 구성하였음.
- 데이터의 저장과 열기시 파일을 선택할 수 있어 한 프로그램으로 여러 도서관을 관리할 수 있음.
- 도서 예약 기능을 추가하여 선택한 도서가 이미 대여시 예약이 가능. 반납시 자동으로 대출가능.
개발환경
- Pentium4 2GHz, 1GB RAM, WINDOWS XP
- J2SE SDK 5.0, Eclipse 3.2
프로그램 설명
좌측 상단의 패널에서 학번, 성명, 연락처 등을 입력후 등록 버튼을 눌러 회원을 추가할 수 있음. 또한 우측 상단의 패널에서 번호와 제목을 입력후 등록 버튼을 눌러 도서를 추가할 수 있음.
툴바의 불러오기 버튼을 눌러 데이터가 저장된 파일을 불러옴. 파일명과 확장자는 임의로 지정할 수 있으나 본 예제에서는 list.dat 파일을 사용하겠음. 마찬가지로 저장도 파일 대화창을 띄움.
하단의 대여목록과 예약목록도 같이 불러옴(본 예제는 처음 사용자를 위함). 올바른 데이터가 들어있지 않은 임의의 파일을 불러왔을 경우 에러메시지 대화창을 띄움.
손님의 경우나 대여가 불가능한 장르의 경우 대여 불가능 메시지를 띄움. 참고로 각 목록의 항목을 클릭하면 그에 맞는 속성값들이 출력됨. 예로 대여목록의 경우 대여일자와 반납기한이 출력됨.
이미 대여된 도서의 경우 예약 기능을 이용할 수 있음. 단, 대여가 불가능한 회원이나 장르는 예약도 불가능함.
도서관 이용시간이 끝났을 경우 데이터를 저장해 다음 개장시 다시 불러올 수 있음. 회원목록, 도서목록, 대여목록, 예약목록이 저장됨.
어려웠던 부분
- 설계 경험 부족으로 인해 초기 기획부터 코딩까지 몇 번이나 다시 시작함.
- 짧은 테스트 기간으로 인해 찾지 못한 버그의 존재가 의심됨.
- GUI를 씌우면서 점점 불어나는 소스코드로 인한 클래스 단위의 적절한 분배의 어려움.
향후 개선 사항
- 리스트의 정렬 및 검색 기능 추가
- 관리자의 패스워드 잠금 기능
- 로그 파일을 남겨 월말 결산, 우수 대여자 선발 등에 이용
- 지저분한 소스코드를 디자인패턴을 통해 리펙토링(Manager 클래스는 Singleton 패턴, GUI 컴포넌트들은 Factory Method 패턴 적용 예상)
배운 점
- 프로그램 개발과정을 몸으로 느껴볼 수 있는 좋은 기회였음.
- 개발 초기에 Edit Plus 와 같은 텍스트 에디터를 이용하였으나 점점 규모가 커지면서 Eclipse와 같은 IDE의 필요성을 느끼게 되었음. Eclipse의 기능을 좀 더 알게되었음.