BRYZE 위키

회사와 브랜드의 기준, 함께 쌓는 지식

사용자 도구

사이트 도구


ai:assistant_ops_manual_sample

# ECOUNT 출근 점검 / 근태 대응 / 근태 조정 매뉴얼

## 목적 ECOUNT 출/퇴근기록부와 Google Calendar(BRYZE 캘린더)를 함께 확인하여 전 직원의 당일 출근 상태를 분류하고, 필요 시 지정 인원에게 Google Chat 알림을 발송하거나 ECOUNT에서 출근 조정을 수행한다.

—

## 사용 도구 - Python + Playwright: ECOUNT 웹 접속, 출근기록 확인, 근태 조정 - Google Calendar: BRYZE 캘린더에서 반차 일정 확인 - gog: Google Chat 메시지 발송 - 도두위키 조직도: 이름/직급 확인 보조

—

## 접속 정보 - ECOUNT 로그인 URL: `https://login.ecount.com/Login/` - 회사코드: `****` - ID: `****` - PW: `**********`

민감정보가 포함되어 있으므로 파일 접근 권한 관리에 주의한다.

—

## 1. ECOUNT 접속 1. `https://login.ecount.com/Login/` 접속 2. 회사코드 `****` 입력 3. ID `****` 입력 4. PW `**********` 입력 5. 로그인

### 로그인 직후 유의사항 - 로그인 직후 `새로운 기기 로그인 알림` 팝업이 뜰 수 있다. - 자동화가 멈추지 않도록 먼저 팝업을 확인하고, 필요 시 `등록안함` 버튼(role=button 기준) 으로 진행한다. - `등록안함` 텍스트가 중복으로 잡힐 수 있으므로 단순 `text=등록안함` 클릭보다 버튼 역할 기반 선택을 우선한다. - 로그인 직후 잠깐은 로그인 화면처럼 보여도 실제로는 ERP 세션이 열린 상태일 수 있다. 현재 URL이 `view/erp` 또는 `app.login/erp_login` 계열인지 확인한 뒤 다음 단계로 진행한다. - 메뉴가 일반 링크 클릭처럼 바로 동작하지 않을 수 있으므로, 자동화 시 내부 해시 경로(`#menuType=…`) 기반 진입도 고려한다.

—

## 2. 근태 확인

### ECOUNT 확인 경로 1. `그룹웨어 → 업무관리 → 출/퇴근 → 출/퇴근기록부(ID)` 이동 2. 사용자 옆에 `전체` 탭 클릭 3. 해당 월에서 오늘 날짜 클릭 4. 각 직원의 출근 시간 확인 5. 아래 인원은 제외

  1. 홍길동
  2. 최다정
  3. 남지우
  4. 박상철
  5. 박종욱
  6. 송란
  7. 이승완 (퇴사자)

### 화면 조작 유의사항 - 기본 탭이 `사용자`로 열릴 수 있으므로 반드시 `전체` 탭으로 전환했는지 확인한다. - 날짜를 눌러도 바로 상세 표가 안 뜰 수 있으므로 로딩 대기 후 재확인한다. - 자동화 시 메뉴 클릭 실패를 대비해 내부 해시 경로 진입을 준비한다. - 실제 확인된 출/퇴근기록부 직접 진입 해시:

  1. `#menuType=MENUTREE_000007&menuSeq=MENUTREE_000259&groupSeq=MENUTREE_000040&prgId=E070305&depth=4`

- 메뉴 텍스트는 보여도 요소가 숨김 상태일 수 있으므로, 단순 클릭 timeout이 나면 직접 해시 진입 → `전체` 전환 → 오늘 날짜 DOM 클릭 순서로 우회한다. - 오늘 날짜 셀은 `.calItem.today` 가 중복되거나 숨김 상태일 수 있다. 이 경우 보이는 요소만 골라 DOM click 하는 방식이 안정적이다.

—

## 3. 캘린더 확인 기준 BRYZE 캘린더를 확인하여 당일 `오전반반차`, `오전 반차` 여부를 함께 본다.

### 반차 기준 - 오전반반차: 11시 30분 출근 인정 - 오전 반차: 2시 30분 출근 인정

### 근태이슈자 인정 범위 - BRYZE 캘린더에 `오전 반차` 또는 `오전반반차`로 표기된 사람은 `근태이슈자`로 본다. - BRYZE 캘린더에 `연차`, `연차(X)` 등 당일 정상 출근 예외 사유가 확인되는 사람도 `근태이슈자`로 본다. - `오후 반차`는 출근 점검 기준상 `근태이슈자`로 처리하지 않는다.

—

## 4. 분류 기준 전 인원을 아래 4개 그룹으로 분류한다.

### 1) 지각자 - 캘린더 기록이 없음 - ECOUNT 출근 시간이 오전 9시 30분 이후임

### 2) 근태이슈자 - BRYZE 캘린더에 `오전 반차` 또는 `오전반반차`가 표기되어 있음 - BRYZE 캘린더에 `연차`, `연차(X)` 등 당일 정상 출근 예외 사유가 표기되어 있음

### 3) 출근누락자 - 캘린더에 근태 이슈가 없음 - ECOUNT에 출근 체크가 되어 있지 않음

### 4) 정상출근자 - 위 3개 조건에 해당하지 않고 정상적으로 출근 체크가 확인되는 사람

—

## 5. 보고 방식 1. 전 직원을 `지각자 / 근태이슈자 / 출근누락자 / 정상출근자`로 분류한다. 2. 현재 메신저에 아래 항목을 모두 보고한다.

  1. 지각자
  2. 근태이슈자
  3. 출근누락자
  4. 정상출근자

3. 각 인원은 가능하면 이름과 출근시간까지 함께 적는다.

—

## 6. 근태 대응 분류된 인원 목록 중 사용자가 지정한 사람에게만 Google Chat 메시지를 발송한다.

### 발송 대상 - `지각자` - `출근누락자`

### 발송 제외 - `근태이슈자` - `정상출근자` - 사용자가 지정하지 않은 사람

### 이름/직급 확인 - 이름/직급을 찾기 어려울 때에는 도두위키 조직도 페이지를 참조한다. - 주소: `http://192.168.0.14:8080/doku.php?id=company:org`

### 발송 도구 - 실제 발송은 `gog`를 사용한다.

### 지각자 문구 ```text (이름) (직급) 님 송란 부대표님께서 오늘 지각으로 확인되었다고 전달 주셨습니다. 출퇴근 시간 관리에 유의해주시고, 다음부터는 동일한 일이 반복되지 않도록 잘 챙겨주시기 바랍니다. ```

### 출근누락자 문구 ```text (이름) (직급) 송란 부대표님께서 오늘 출근 버튼이 아직 확인되지 않았다고 하셔서 전달드립니다. 확인 후 출근 등록 부탁드리며, 다음부터는 출근 관리가 누락되지 않도록 잘 챙겨주시면 감사하겠습니다 ```

—

## 7. 근태 조정 사용자가 지정한 사람에게만 적용하는 작업이다.

### 조정 경로 1. ECOUNT 로그인 2. `그룹웨어 → 업무관리 → 출/퇴근 → 출/퇴근기록부(ID)` 이동 3. 사용자 옆에 `전체` 탭 클릭 4. 해당 월에서 조정이 필요한 일자 클릭 5. 조정 대상자의 ID 클릭 6. `[출근 00/00 오전 00:00]` 항목 클릭 7. 사유란에 아래 문구 입력

  1. `송란 부대표 컴펌하에 출근조정 지각 제외`

8. `저장` 버튼 클릭 9. 처리 완료 후 현재 메신저에 결과 보고

### 근태 조정 보고 방식 - 조정 대상자 이름 - 조정한 날짜 - 처리 완료 여부 - 필요 시 비고

### 근태 조정 실패사례 / 우회 방법 실제 자동화 시행착오를 기준으로 아래 상황을 유의한다.

1. `전체` 탭 클릭 실패

  1. `a#Allclock` 클릭이 바로 안 먹거나 timeout이 날 수 있다.
  2. 같은 텍스트를 가진 `li`, `span` 등 다른 요소가 함께 존재할 수 있으므로 단일 selector에만 의존하지 않는다.
  3. 우회: `전체` 텍스트 기준으로 후보 요소를 넓게 잡아 클릭하거나, DOM evaluate 방식으로 직접 클릭한다.

2. `전체` 탭으로 전환되지 않고 `사용자` 팝업으로 빠지는 문제

  1. 날짜 클릭 전에 탭 전환이 제대로 안 되면 개인 출근 팝업(예: 송란 사용자 화면)으로 들어갈 수 있다.
  2. 우회: 날짜 클릭 전 현재 화면에 상세 테이블(`ID / 성명 / 소속부서 / 출근`)이 뜨는 구조인지 먼저 확인한다.

3. 오늘 날짜 클릭 후 상세표가 늦게 뜨거나 안 뜨는 문제

  1. 캘린더 셀 클릭 직후 바로 테이블이 안 생길 수 있다.
  2. 우회: 로딩 대기 후 `tr` / 상세표 헤더 존재 여부를 다시 확인하고, 필요 시 오늘 날짜 셀을 다시 클릭한다.

4. 로그인 후 화면이 다시 로그인 페이지처럼 보이거나 세션이 꼬이는 문제

  1. 팝업 처리 직후 화면 상태가 불안정해질 수 있다.
  2. 우회: 현재 URL과 본문을 확인해 ERP 진입 여부를 검증하고, 필요 시 로그인부터 다시 수행한다.

5. 대상자 행은 찾았지만 `[출근 00/00 오전 00:00]` 클릭이 안 되는 문제

  1. 이름 클릭 후에도 원하는 상세 팝업이 바로 열리지 않을 수 있다.
  2. 우회: 이름, ID, 행 전체 등 클릭 대상을 순차적으로 바꿔 시도하고, 팝업 내 `출근` 텍스트가 포함된 요소를 다시 탐색한다.

6. 사유 입력은 됐는데 `저장` 버튼을 못 찾는 문제

  1. 팝업 구조상 `저장` 버튼이 예상 selector에 없거나 하단/다른 레이어에 있을 수 있다.
  2. 우회: `저장` 텍스트 기준으로 버튼/링크/div/span까지 넓게 탐색하고, 클릭 후 완료 메시지나 화면 변화를 반드시 확인한다.

7. 여러 명을 한 번에 처리하다가 두 번째 대상부터 꼬이는 문제

  1. 팝업이 완전히 닫히지 않거나 이전 상태가 남아 다음 사람 선택이 실패할 수 있다.
  2. 우회: 여러 명 동시 처리보다 한 명씩 단독 처리를 우선한다. 각 처리 후 `닫기` 또는 `Escape`로 팝업 종료 여부를 확인한다.

8. 근태조정 완료 여부를 착각할 위험

  1. 사유 입력이나 저장 클릭 시도만으로는 완료가 아니다.
  2. 우회: 저장 후 완료 메시지, 상세 화면 변화, 재조회 결과 중 최소 1개 이상으로 실제 반영 여부를 확인한 뒤 보고한다.

9. 로그인은 되었는데 원하는 화면 대신 메인/교육/위젯 화면으로 보이는 문제

  1. 로그인 자체는 성공했지만 출/퇴근 메뉴까지 안 들어간 상태일 수 있다.
  2. 우회: 본문에 `그룹웨어`, `업무관리`, `출/퇴근` 텍스트가 보이면 세션은 살아있는 경우가 많다. 이때는 실패로 판단하지 말고 그룹웨어 클릭 → 업무관리 클릭 → 내부 해시 직접 진입 순서로 진행한다.

10. 출/퇴근기록부(ID) 링크는 찾았지만 보이지 않아 클릭이 안 되는 문제

  1. 숨겨진 메뉴 트리 안에 있어 Playwright 일반 클릭이 실패할 수 있다.
  2. 우회: 링크 selector를 억지로 클릭하지 말고, 이미 확인된 해시 경로로 직접 이동한다.

11. 표는 떴지만 Google Chat에서 중간 실행 로그가 너무 많이 보여 결과가 묻히는 문제

  1. 사용자에게 보여줄 최종 응답은 반드시 별도로 정리해서 다시 보낸다.
  2. 우회: 실행 중간 로그와 별개로, 최종 보고는 `지각자 / 근태이슈자 / 출근누락자 / 정상출근자` 형식으로 한 번 더 깔끔히 요약한다.

—

## 8. 실제 작업 절차 1. Python + Playwright로 ECOUNT 로그인 2. 로그인 직후 팝업 확인 및 처리 3. 출/퇴근기록부(ID)로 이동 4. `전체` 탭 전환 확인 5. 오늘 날짜 클릭 후 직원별 출근 시간 수집 6. 제외 인원 제거 7. BRYZE 캘린더에서 당일 `오전 반차` / `오전반반차` 일정 확인 8. 전 인원을 아래로 분류

  1. 지각자
  2. 근태이슈자
  3. 출근누락자
  4. 정상출근자

9. 현재 메신저에 전체 결과 보고 10. 사용자가 지정한 사람에게만 Google Chat 발송 11. 사용자가 별도 지시한 경우에만 ECOUNT에서 근태 조정 수행 12. 조정 완료 시 현재 메신저에 결과 보고

—

## 9. 구현 시 체크포인트 - 날짜는 반드시 오늘 기준으로 처리하되, 근태 조정은 사용자가 지정한 날짜 기준으로 처리한다. - 로그인 후 `새로운 기기 로그인 알림` 팝업이 뜨는지 먼저 확인하고 자동화가 멈추지 않도록 선처리한다. - ECOUNT 메뉴가 일반 클릭으로 바로 안 열릴 수 있으므로 자동화 시 내부 해시(`#menuType=…`) 방식 진입도 준비한다. - `사용자` 탭이 기본으로 열릴 수 있으므로 반드시 `전체` 탭으로 전환했는지 확인한다. - 날짜를 눌러도 바로 상세 표가 안 뜨면 로딩 대기 후 재확인한다. - 캘린더 일정 제목이 사람 이름과 정확히 매칭되는지 확인한다. - 이름/직급이 불명확하면 도두위키 조직도 페이지(`company:org`)로 보완 확인한다. - 동명이인 가능성이 있으면 부서/직급 정보로 교차검증한다. - ECOUNT에 출근 시간이 없더라도 캘린더에 `오전 반차`, `오전반반차`, `연차`, `연차(X)`가 있으면 `출근누락자`가 아니라 `근태이슈자`로 본다. - `오전 반차`, `오전반반차`, `연차`, `연차(X)` 대상자는 일반 지각자/출근누락자로 오분류하지 않도록 주의한다. - `오후 반차`는 본 매뉴얼 기준상 근태이슈자로 보지 않으므로 별도 오분류에 주의한다. - Google Chat 메시지는 반드시 사용자 지정 대상에게만 발송한다. - 근태 조정은 반드시 사용자 지시가 있을 때만 수행한다. - 근태 조정 사유 문구는 `송란 부대표 컴펌하에 출근조정 지각 제외`로 통일한다. - 근태 조정 시에는 `탭 전환 성공 → 날짜 상세표 확인 → 대상자 선택 → 출근 항목 클릭 → 사유 입력 → 저장 → 반영 확인` 순서를 체크리스트처럼 확인한다. - 여러 명을 한 번에 처리하다가 꼬일 수 있으므로, 성공률이 낮으면 한 명씩 단독 처리로 전환한다. - 저장 버튼 클릭 시도만으로 완료 처리하지 말고, 실제 반영 여부를 다시 확인한 뒤 보고한다. - 메시지 발송 전과 근태 조정 전에는 최종 대상자를 한 번 더 검토한다.

—

## 10. 권장 산출물 - 내부 보고용 표

  1. 이름
  2. 직급
  3. 출근시간
  4. 캘린더 근태 여부
  5. 최종 분류

- 발송 로그

  1. 발송 시각
  2. 수신자
  3. 발송 사유(지각/출근누락)

- 근태 조정 로그

  1. 조정 시각
  2. 조정 대상자
  3. 조정 날짜
  4. 조정 사유
  5. 처리 결과

—

## 11. 후속 자동화 아이디어 - Playwright + Calendar API + gog를 하나의 Python 스크립트로 통합 - 이름/직급 매핑 테이블 별도 관리 - 보고용 Markdown 자동 생성 - 발송 전 승인 단계 추가 - 근태 조정 결과를 별도 로그 파일로 누적 저장

ai/assistant_ops_manual_sample.txt · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki