본 프로그램은 청주대학교 내 동아리 관리를 디지털화하여 효율성을 높이고, 사용자 간 상호작용을 원활하게 돕는 것을 목적으로 합니다.
관리자, 학생, 동아리 회장이 각자의 역할에 맞는 기능을 이용할 수 있도록 설계되었습니다.
- 관리자: 동아리 추가/삭제 및 데이터 관리를 담당합니다.
- 학생: 동아리에 가입 신청을 하고, 가입 여부를 확인합니다.
- 동아리 회장: 가입 신청서를 확인하고 승인합니다.
- 효율적인 관리: 동아리 데이터를 중앙에서 관리하여 정보의 일관성을 유지하고, 중복 및 오류를 방지합니다.
- 접근성 강화: GUI 기반 인터페이스를 통해 누구나 쉽게 사용할 수 있습니다.
- 종이 기반의 동아리 가입 및 관리 방식의 비효율성을 해결합니다.
- 동아리 관련 데이터 관리가 디지털화되어 검색 및 처리 속도가 향상됩니다.
- 관리자와 학생 간 상호작용을 체계화하여 사용자 경험을 향상시킵니다.
## 프로그램 순서도
[프로그램 시작]
↓
[메인 메뉴 표시]
↓
[로그인 화면으로 이동]
↓
[로그인 성공 여부 확인]
↙ ↘
[실패] [성공: 역할별 메뉴]
↙ ↓ ↘
[관리자] [학생] [동아리 회장]
-
프로그램 실행
ClubManagementSystem
클래스가 초기화됩니다.- 사용자 및 동아리 데이터를 로드합니다.
-
메인 메뉴
- 사용자는 "관리자 모드", "학생 모드", "동아리 회장 모드" 중 하나를 선택하거나 프로그램을 종료할 수 있습니다.
-
로그인
- 각 역할에 따라 로그인 창이 표시되며, 사용자는 아이디와 비밀번호를 입력하여 인증합니다.
- 권한이 맞지 않거나 정보가 올바르지 않은 경우 오류 메시지가 표시됩니다.
-
역할별 메뉴
- 관리자: 동아리 추가, 삭제, 목록 조회를 수행할 수 있습니다.
- 학생: 동아리 목록을 조회하거나, 특정 동아리에 가입 신청서를 제출할 수 있습니다.
- 동아리 회장: 가입 신청서를 확인하고 승인할 수 있습니다.
-
데이터 저장
- 동아리 데이터는
clubs_data.txt
파일에 실시간 저장됩니다.
- 동아리 데이터는
- 클래스를 설계하면서 책임 분리와 재사용성의 중요성을 배웠습니다.
- 특히
ClubManager
클래스를 통해 동아리 데이터를 효율적으로 관리할 수 있었습니다.
Swing
을 사용하여 사용자 친화적인 인터페이스를 만드는 데 주안점을 두었습니다.- 레이아웃 조정을 통해 가독성과 사용성을 크게 향상시킬 수 있었습니다.
- 데이터 저장
- 동아리 데이터는
clubs_data.txt
파일에 실시간 저장됩니다.
- 동아리 데이터는
-
객체 지향 설계의 중요성
- 클래스를 설계하면서 책임 분리와 재사용성의 중요성을 배웠습니다.
- 특히
ClubManager
클래스를 통해 동아리 데이터를 효율적으로 관리할 수 있었습니다.
-
GUI 설계의 복잡성
Swing
을 사용하여 사용자 친화적인 인터페이스를 만드는 데 주안점을 두었습니다.- 레이아웃 조정을 통해 가독성과 사용성을 개선할 수 있었습니다.
-
에러 처리
- 파일 읽기 실패 및 잘못된 입력을 처리하면서 예외 처리가 프로그램 안정성에 미치는 영향을 체감했습니다.
-
협업 및 버전 관리
Git
을 통한 협업은 코드 관리 및 팀 간 의사소통을 원활히 하는 데 매우 유용했습니다.
-
사용자 중심 설계
- 초기 설계 단계에서 사용자 요구사항을 더 구체적으로 정의했다면 프로그램 사용성을 더욱 높일 수 있었을 것이라는 점을 깨달았습니다.
- 개발자: Ji Woon Kim
- 버전: 1.0
- 최초 배포일: 2024-12-26