3조 : 최규식, 김양군, 김흥섭, 변정훈, 오도현, 권성기
------------------------------------------------------
기능
------------------------------------------------------
1. 학생 개인정보 간리
2. 출석체크(지각 및 조퇴처리)
3. 학생 성적 관리
4. 벌금 부과
------------------------------------------------------
DB
------------------------------------------------------
student - 메인 테이블, 학생 개인 정보 관리
필드 : ID NOT NULL VARCHAR2(15) PRIMARY KEY //회원 아이디
PASSWORD NOT NULL VARCHAR2(15) //비밀번호
NAME NOT NULL VARCHAR2(15) //이름
NO NOT NULL NUMBER(3) //회원 등급 1:학생 2:관리자
ADDR VARCHAR2(40) //주소
BIRTHDAY VARCHAR2(20) //생년월일 (년/월/일)
attend - 출석을 위한 테이블
필드 : SEQ NOT NULL NUMBER(5) PRIMARY KEY // attend_seq 시퀀스 사용
ID NOT NULL VARCHAR2(15) FOREIGN KEY REFERENCE STUDENT //아이디
ATTEND VARCHAR2(10) // 출석체크, 출석하면 1, 아니면 0 or null
LATE VARCHAR2(10) //지각체크, 지각하면 1, 아니면 0 or null
EARLY VARCHAR2(10) //조퇴체크, 조퇴하면 1, 아니면 0 or null
FINISH VARCHAR2(10) //퇴근체크, 퇴근하면 1, 아니면 0 or null
ADATE VARCHAR2(20) //시간 기록 (월/일 시각:분)
grade - 성적관리를 위한 테이블
필드 : SEQ NOT NULL NUMBER(10) PRIMARY KEY //grade_seq 시퀀스 사용
ID NOT NULL VARCHAR2(15) FOREIGN KEY REFERENCE STUDENT //아이디
GRADE VARCHAR2(10) //성적
SUBJECT VARCHAR2(10) //과목명
penalty - 벌금 관리를 위한 테이블
필드 : SEQ NOT NULL NUMBER(5) PRIMARY KEY //penalty_seq 시퀀스 사용
ID NOT NULL VARCHAR2(15) FOREIGN KEY REFERENCE STUDENT //아이디
AMOUNT NUMBER(10) //벌금 금액
WHY VARCHAR2(20) //벌금 부과 이유
PDATE VARCHAR2(20) //시간 기록 (월/일 시각:분)
-----------------------------------------------------
클래스
------------------------------------------------------
com.project.admin -> AdminAttendControl //출석 수정
AdminAttendSelect //출석 열람
AdminControlMenu //관리(수정)메뉴 선택부
AdminGradeControl //성적 수정
AdminGradeSelect //성적 열람
AdminMenu //로그인한 사용자가 관리자일때 호출되는 어드민 메인
AdminPenaltyControl //벌금 수정
AdminPenaltySelect //벌금 열람
AdminSelectMenu //열람메뉴 선택부
AdminStudentControl //학생정보 수정
AdminPenaltySelect //학생정보 보기
com.project.dao -> AbstractDao //드라이버로딩과 클로즈를 위한 추상클래스. 다른 DAO가 상속받음.
AttendDao //attend 테이블에 대한 쿼리를 위한 DAO
GradeDao //grade 테이블에 대한 쿼리를 위한 DAO
PenaltyDao //penalty 테이블에 대한 쿼리를 위한 DAO
StudentDao //student 테이블에 대한 쿼리를 위한 DAO
com.project.dto -> AttendDto //attend 테이블을 위한 DTO
GradeDto //grade 테이블을 위한 DTO
PenaltyDto //penalty 테이블을 위한 DTO
StudentDto //student 테이블을 위한 DTO
com.project.main -> LogInProCess //로그인 및 회원가입 처리
StudentTestMain //메인!!!!
Users //로그인한 사용자가 학생일 경우
com.project.util -> SceneUtil //메인에서 사용할 화면전환 상수모음
StudentMethod //공통적으로 사용될 메서드 모음
StudentUtil //DB 쿼리를 위한 상수모음
- 중간까지 주석열심히 달다가 다른 진도 쫓아가느라고 포기.
- 정리된 소스가 아니라서 남이 보면 이해못할 가능성 높음.
프로젝트 후...
- 팀프로젝트로 입사를 같이 할것이기 때문에 다른 조와 다르게 마인드맵 프로그램으로 모든 클래스와 메서드에 대한 이름과 반환값, 아규먼트를 2-3시간동안 작업해서 완료함.
- 팀원들간 실력차이가 나는 관계로 미리 협의한대로 작성되지 않은 부분이 많아서 결국은 다시 일일이 보며 수정을 해야 했음!
- 나름 초기에 모든 메서드를 정의한다고 생각했지만 의외로 빠진 부분도 많았고 아규먼트나 반환값에서 잘못된 부분도 상당부분이 있었음.
- 역시 팀으로 하는 것은 쉽지 않다는 생각.
- 마인드 맵으로 미리 모든 것을 정의한것은 잘 했다고 생각. 약간의 여유와 서로 의논의 시간이 있었다면 분업해서 해볼 수 있었을 거라고 생각됨.
- 하지만 같은 얘기를 할때도 머릿속에 그리고 있는 생각이 서로 다른 경우가 많았고 그 결과 작성된 코드의 형태에서 많은 차이를 보이게 됨. 이런건 어떻게 해결해야 할지 잘 모르겠음.
- 클래스를 나누어서 작성했지만 합쳐서 돌아갈수 있도록 하는 과정에서 결국은 전체소스를 보면서 버그없이 돌아갈 수 있도록 하기 위해 한사람이 수정작업을 해야해서 결과적으론 다시 한사람이 프로그램을 짜는 형태가 되어버림. 이것두 어떻게 해결해야 할지 잘 모르겠음.
grade와 attend 시퀀스를
증가 1씩 시작은 0으로 주시고 하셨나요?
create sequence ATT_SEQ
increment by 1
start with 1;
너무 오래돼서 기억이 잘 나지 않지만 질문의 의도를 잘 모르겠습니다.
시퀀스는 디비따라 주는 방식이 약간 다릅니다.
햄은.. 저렇게 관리를 했었군용..
I think it was very good program