일반적인 출석체크 프로세스
flowchart LR
A[로그인 화면] --> B[로그인 완료]
B --> C(출석 화면)
C --> |일반| D[출석 버튼 클릭]
D --> Z[출석 성공]
C --> |캡차| E[출석 버튼 클릭]
E --> |캡차 등록| F[캡차 확인]
F --> |캡차 실패| E
F --> |캡차 성공| G[출석 완료]
- 일반적으로 로그인을 진행 후 출석 화면 이동 뒤 출석 버튼을 클릭하는 단순한 프로세스를 가진다.
- 출석체크 해야할 도메인이 많다면 각 도멘인별로 접속해서 각 아이디별로 로그인 한 뒤 출석체크를 진행해야 한다.
- 캡차가 있다면 캡차인증도 해주어야 하며, 캡차가 없다면 출석 버튼만 누르면 된다.
자동화 출석체크 프로세스
flowchart LR
subgraph ATTENDANCE_DB
direction LR
DB1[(도메인
정보)]
DB2[(계정정보)]
DB3[(행동정보)]
DB1 -.->|JOIN| DB2
DB1 -.->|JOIN| DB3
end
subgraph ATTENDANCE
direction LR
subgraph LOGIN_ACTION
direction TB
LOGIN_ACTION_1[로그인화면 이동]
LOGIN_ACTION_2[ID입력]
LOGIN_ACTION_3[PW입력]
LOGIN_ACTION_4[로그인 클릭]
LOGIN_ACTION_5[로그인 완료]
LOGIN_ACTION_1 --> LOGIN_ACTION_2 --> LOGIN_ACTION_3 --> LOGIN_ACTION_4 --> LOGIN_ACTION_5
end
DB3 -.-> LOGIN_ACTION
DB2 -.-> LOGIN_ACTION
subgraph ATTENDANCE_ACTION
direction TB
ATTENDANCE_ACTION_1[출석화면 이동]
ATTENDANCE_ACTION_2[출석버튼 클릭]
ATTENDANCE_ACTION_3[출석 완료]
subgraph CAPTCHA
direction LR
CAPTCHA_1[이미지인식]
CAPTCHA_2[캡차등록]
CAPTCHA_3[확인버튼 클릭]
CAPTCHA_1 --> CAPTCHA_2 --> CAPTCHA_3 --> |캡차 실패 재시도|CAPTCHA_1
end
ATTENDANCE_ACTION_1 --> ATTENDANCE_ACTION_2
ATTENDANCE_ACTION_2 --> |일반|ATTENDANCE_ACTION_3
ATTENDANCE_ACTION_2 --> |캡차|CAPTCHA --> |캡차 성공|ATTENDANCE_ACTION_3
end
DB3 -.-> ATTENDANCE_ACTION
LOGIN_ACTION --> ATTENDANCE_ACTION
end
정의된 업무 프로세스는 다음과 같다.
- 도메인 테이블과 계정 테이블을 JOIN하여, 출석체크를 수행할 도메인-계정 리스트를 가져온다.
- 행동정보에 정의된 내용대로 로그인을 하고 출석체크를 수행한다.
행동의 정의
위 출석체크 프로세스의 흐름을 유저가 브라우저를 통해 화면을 컨트롤 하는 방식으로 구현하는 것이 중요하다. 때문에 브라우저에서 출석체크를 하기 위한 브라우저에서 행해지는 행위의 정의는 다음과 같다.
| 브라우저에서의 행위 | 해석된 행동구분 |
|---|---|
| 정해진 url로 이동 | move |
| input 태그에 정해진 값 입력 | input |
| 클릭 | click |
| alert, confirm 확인 | confirm |
| 캡차처리 (이미지인식 > 문자 input > 확인 click) | captcha |
개발 방향
- 데이터베이스에 각 도메인 별 행동을 정의 한 뒤, 정의된 행동의 순서대로 브라우저가 움직일 수 있도록 구현.
- 도메인 별 행동은 같지만 다중 계정을 사용 할 수 있으므로 도메인정보, 계정정보, 행동정보는 따로 저장한다.
부가기능
- 데이터베이스에 접근하기 위한 커넥션 풀 관리 기능
- 저장된 계정, 행동정보, 로그를 조회/수정/입력을 하기 위한 용도
- 로그 기능
- 프로그램 실행 내역 저장
- 비밀번호 관리를 위한 암/복호화 기능
- 저장된 계정의 암호를 관리하기 위한 용도