[Python] 학생 관리 프로그램

Min's Study Note·2023년 11월 17일

Python

목록 보기
20/21

프로젝트 구상도: 학생 관리 프로그램

[로그인 모듈]

  • 사용자가 ID와 비밀번호를 입력하고 로그인할 수 있음
  • 올바른 로그인 정보인 경우, 학생 목록 창으로 이동

[학생 목록 모듈]

  • 데이터베이스에서 모든 학생 정보를 가져와 목록으로 표시
  • 각 학생을 선택하면 학생 정보 상세 보기 창으로 이동
  • 학생 추가 및 수정 버튼을 통해 학생 정보 추가 및 수정 창으로 이동

[학생 추가/수정 모듈]

  • 새로운 학생 정보를 입력하고 추가할 수 있음
  • 기존 학생 정보를 선택하여 수정할 수 있음

[학생 정보 상세 보기 모듈]

  • 선택한 학생의 상세 정보를 표시
  • 학생 정보를 수정하거나 삭제할 수 있는 옵션 제공

[데이터베이스 모듈]

  • SQLite 데이터베이스를 사용하여 학생 정보를 저장
  • student 테이블을 사용하여 각 학생의 ID, 이름, 비밀번호 등을 저장

기능을 분리하여 유지보수성을 높이기 위해 dao, ui, util, vo 모듈로 분리하여 코드를 구현하였다. 아래는 각 모듈의 역할과 설명이다.

1. dao(Data Access Object) 패키지
(1) 데이터베이스와 관련된 작업을 수행하는 모듈
(2) 데이터베이스 연결, 쿼리 수행, 데이터의 CRUD(Create, Read, Update, Delete) 등의 기능을 제공
(3) 주로 데이터베이스와의 상호작용을 담당하며, 데이터 액세스를 추상화하여 나머지 프로그램이 데이터베이스의 구체적인 세부 사항을 알 필요가 없게 함.

  • con_sqlite.py: SQLite 데이터베이스 작업을 관리하는 파일. 학생 정보를 가져오거나, 새로운 학생을 추가하거나, 로그인을 확인하는 등의 기능을 제공.
  • dao_set.py: 데이터베이스 연결을 관리하는 클래스 정의. 데이터베이스 연결 및 해제 기능을 제공.
  • dao_student.py: DaoSet 클래스를 상속받아 학생 데이터베이스 작업을 수행하는 클래스 정의.

2. ui(User Interface) 패키지
(1) 사용자와 상호작용하는 부분을 담당하는 모듈
(2) GUI(Graphical User Interface)를 구현하거나 CLI(Command Line Interface) 등의 사용자 환경을 생성
(3) 사용자의 입력을 받아 해당 입력에 따라 다른 기능을 수행하도록 프로그램을 제어

  • info_window.py: 학생의 정보를 보여주고 수정 및 삭제할 수 있는 창을 생성.
  • join_window.py: 회원가입 창 생성, 사용자가 입력한 정보로 새로운 학생 정보를 데이터베이스에 추가.
  • list_window.py: Tkinter를 사용하여 학생 목록을 표시하는 창 정의. 학생 정보를 Treeview에 표시하고, 수정 및 삭제 기능 제공.
  • login_window.py: Tkinter를 사용하여 로그인 창을 정의. 로그인 기능과 회원가입 창으로 이동하는 기능 제공.

3. util(Utility) 패키지
(1) 각종 유틸리티 함수 및 도구를 제공하는 모듈
(2) 코드의 재사용성을 높이고 일반적인 작업을 간편하게 수행할 수 있도록 도움을 주는 함수들을 포함
(3) 주로 프로그램 전반에서 공통적으로 사용되는 함수들을 모아둠.

  • ui_util.py: UI 관련 유틸리티 함수들이 정의된 파일. 윈도우 중앙 정렬 등의 기능을 수행.

4. vo(Value Object) 패키지
(1) 데이터를 담는 객체를 정의하는 모듈
(2) 주로 데이터베이스나 외부 소스에서 읽어온 데이터를 저장하는 데 사용
(3) 데이터를 표현하는 클래스들을 정의하며, 이는 주로 데이터베이스의 테이블 구조와 일치

  • student_vo.py: 학생 데이터를 표현하는 클래스 정의. Student 클래스는 학번, 이름, 아이디, 비밀번호를 속성으로 갖는 클래스로, 문자열 표현 및 생성 메서드를 제공.

[controller.py]
: 프로젝트의 메인 컨트롤러 클래스. Singleton 패턴을 사용하여 단일 인스턴스를 유지하며, 명령에 따라 다른 창을 열거나 작업을 수행하는 역할.

▼ login 버튼 클릭 시 student List창 실행

▼ 알맞은 ID, Paswword 입력 후 Login 버튼 클릭시 Student List창 실행

▼ lojoin 클릭 시 회원가입 창 실행, 입력 후 join 버튼 클릭 시 Student List에 추가됨

▼ Student List에서 학생의 정보 클릭 시 Student Info창 실행

▼ 수정 버튼 클릭 시 학생 정보 수정 후 Student List 업데이트

▼ 삭제 버튼 클릭시 학생 정보 삭제 후 Student List 업데이트

0개의 댓글