BRYZE 위키

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

사용자 도구

사이트 도구


ai:assistant_ops_manual_sample

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
ai:assistant_ops_manual_sample [2026-04-10 05:33] – 메뉴얼 샘플 문서 생성 [기존 위키에서 이전] 172.19.176.1ai:assistant_ops_manual_sample [2026-10-30 14:55] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
-====== 메뉴얼샘플 ======+# 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 출근기록과 Google Calendar를 함께 확인해 전 직원의 당일 출근 상태를 분류합니다. +
-  * 필요 시 지정 대상에게만 별도 안내 메시지를 보냅니다.+
  
-==== 2. 사용 도구 ==== +---
-  * Python + Playwright +
-  * Google Calendar +
-  * Google Chat 발송 도구 +
-  * 사내 위키 조직도+
  
-==== 3. 확인 기준 ==== +## 1. ECOUNT 접속 
-  * 지각자: 근태 예외 사유가 없고 출근 시간이 오전 9시 30분 이후인 경우 +1. `https://login.ecount.com/Login/` 접속 
-  * 근태이슈자: 오전 반차 / 오전반반차 / 연차 등 예외 사유가 확인되는 경우 +2. 회사코드 `******` 입력 
-  * 출근누락자: 예외 사유가 없고 출근 체크가 없는 경우 +3. ID `********` 입력 
-  * 정상출근자: 위 기준 외 정상 출근자+4. PW `************` 입력 
 +5. 로그인
  
-==== 4. 보고 방식 ==== +### 로그인 직후 유의사항 
-  * 지각자 +- 로그인 직후 `새로운 기기 로그인 알림` 팝업이 뜰 수 있다. 
-  * 근태이슈자 +- 자동화가 멈추지 않도록 먼저 팝업을 확인하고, 필요 시 **`등록안함` 버튼(role=button 기준)** 으로 진행한다. 
-  * 출근누락자 +- `등록안함` 텍스트가 중복으로 잡힐 수 있으므로 단순 `text=등록안함` 클릭보다 **버튼 역할 기반 선택**을 우선한다. 
-  * 정상출근자 +- 로그인 직후 잠깐은 로그인 화면처럼 보여도 실제로는 ERP 세션이 열린 상태일 수 있다. **현재 URL이 `view/erp` 또는 `app.login/erp_login` 계열인지 확인**한 뒤 다음 단계로 진행한다. 
-  * 가능하면 이름과 출근시간까지 함께 정리+- 메뉴가 일반 링크 클릭처럼 바로 동작하지 않을 수 있으므로, 자동화 시 내부 해시 경로(`#menuType=...`) 기반 진입도 고려한다.
  
-==== 5. 예외 처리 ==== +---
-  * 메뉴 클릭이 실패하면 직접 해시 경로 진입 등 우회 절차를 문서화합니다. +
-  * 저장 버튼 클릭만으로 완료 처리하지 않고 반영 여부를 재확인합니다. +
-  * 여러 명 동시 처리보다 한 명씩 처리하는 우회안도 함께 기록합니다.+
  
-===== 운영 팁 ===== +## 2. 근태 확인
-  * 크론에서 돌릴 작업은 특히 더 자세히 씁니다. +
-  * 구글 스프레드시트나 외부 문서를 참조해야 하면 **웹 링크**를 함께 남깁니다. +
-  * 애매한 표현보다 “누가 / 언제 / 무엇을 / 어떤 기준으로”를 명확히 적는 편이 안전합니다.+
  
-===== 참고 ===== +### ECOUNT 확인 경로 
-  * 실제 출근 점검 업무용 세부 매뉴얼은 별도 운영 문서로 관리합니다. +1. `그룹웨어 -> 업무관리 -> 출/퇴근 -> 출/퇴근기록부(ID)` 이동 
-  * 이 페이지는 새로운 업무 매뉴얼을 만들 때 복사해서 시작하는 샘플 템플릿 용도입니다.+2. 사용자 옆에 `전체` 탭 클릭 
 +3. 해당 월에서 **오늘 날짜** 클릭 
 +4. 각 직원의 출근 시간 확인 
 +5. 아래 인원은 제외 
 +   - 홍길동 
 +   - 최다정 
 +   - 남지우 
 +   - 박상철 
 +   - 박종욱 
 +   - 송란 
 +   - 이승완 (퇴사자) 
 + 
 +### 화면 조작 유의사항 
 +- 기본 탭이 `사용자`로 열릴 수 있으므로 반드시 `전체` 탭으로 전환했는지 확인한다. 
 +- 날짜를 눌러도 바로 상세 표가 안 뜰 수 있으므로 로딩 대기 후 재확인한다. 
 +- 자동화 시 메뉴 클릭 실패를 대비해 내부 해시 경로 진입을 준비한다. 
 +- 실제 확인된 출/퇴근기록부 직접 진입 해시: 
 +  - `#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. 현재 메신저에 아래 항목을 모두 보고한다. 
 +   - 지각자 
 +   - 근태이슈자 
 +   - 출근누락자 
 +   - 정상출근자 
 +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. 사유란에 아래 문구 입력 
 +   - `송란 부대표 컴펌하에 출근조정 지각 제외` 
 +8. `저장` 버튼 클릭 
 +9. 처리 완료 후 현재 메신저에 결과 보고 
 + 
 +### 근태 조정 보고 방식 
 +- 조정 대상자 이름 
 +- 조정한 날짜 
 +- 처리 완료 여부 
 +- 필요 시 비고 
 + 
 +### 근태 조정 실패사례 / 우회 방법 
 +실제 자동화 시행착오를 기준으로 아래 상황을 유의한다. 
 + 
 +1. `전체` 탭 클릭 실패 
 +   - `a#Allclock` 클릭이 바로 안 먹거나 timeout이 날 수 있다. 
 +   - 같은 텍스트를 가진 `li`, `span` 등 다른 요소가 함께 존재할 수 있으므로 단일 selector에만 의존하지 않는다. 
 +   - 우회: `전체` 텍스트 기준으로 후보 요소를 넓게 잡아 클릭하거나, DOM evaluate 방식으로 직접 클릭한다. 
 + 
 +2. `전체` 탭으로 전환되지 않고 `사용자` 팝업으로 빠지는 문제 
 +   - 날짜 클릭 전에 탭 전환이 제대로 안 되면 개인 출근 팝업(예: 송란 사용자 화면)으로 들어갈 수 있다. 
 +   - 우회: 날짜 클릭 전 현재 화면에 상세 테이블(`ID / 성명 / 소속부서 / 출근`)이 뜨는 구조인지 먼저 확인한다. 
 + 
 +3. 오늘 날짜 클릭 후 상세표가 늦게 뜨거나 안 뜨는 문제 
 +   - 캘린더 셀 클릭 직후 바로 테이블이 안 생길 수 있다. 
 +   - 우회: 로딩 대기 후 `tr` / 상세표 헤더 존재 여부를 다시 확인하고, 필요 시 오늘 날짜 셀을 다시 클릭한다. 
 + 
 +4. 로그인 후 화면이 다시 로그인 페이지처럼 보이거나 세션이 꼬이는 문제 
 +   - 팝업 처리 직후 화면 상태가 불안정해질 수 있다. 
 +   - 우회: 현재 URL과 본문을 확인해 ERP 진입 여부를 검증하고, 필요 시 로그인부터 다시 수행한다. 
 + 
 +5. 대상자 행은 찾았지만 `[출근 00/00 오전 00:00]` 클릭이 안 되는 문제 
 +   - 이름 클릭 후에도 원하는 상세 팝업이 바로 열리지 않을 수 있다. 
 +   - 우회: 이름, ID, 행 전체 등 클릭 대상을 순차적으로 바꿔 시도하고, 팝업 내 `출근` 텍스트가 포함된 요소를 다시 탐색한다. 
 + 
 +6. 사유 입력은 됐는데 `저장` 버튼을 못 찾는 문제 
 +   - 팝업 구조상 `저장` 버튼이 예상 selector에 없거나 하단/다른 레이어에 있을 수 있다. 
 +   - 우회: `저장` 텍스트 기준으로 버튼/링크/div/span까지 넓게 탐색하고, 클릭 후 완료 메시지나 화면 변화를 반드시 확인한다. 
 + 
 +7. 여러 명을 한 번에 처리하다가 두 번째 대상부터 꼬이는 문제 
 +   - 팝업이 완전히 닫히지 않거나 이전 상태가 남아 다음 사람 선택이 실패할 수 있다. 
 +   - 우회: 여러 명 동시 처리보다 **한 명씩 단독 처리**를 우선한다. 각 처리 후 `닫기` 또는 `Escape`로 팝업 종료 여부를 확인한다. 
 + 
 +8. 근태조정 완료 여부를 착각할 위험 
 +   - 사유 입력이나 저장 클릭 시도만으로는 완료가 아니다. 
 +   - 우회: 저장 후 완료 메시지, 상세 화면 변화, 재조회 결과 중 최소 1개 이상으로 실제 반영 여부를 확인한 뒤 보고한다. 
 + 
 +9. 로그인은 되었는데 원하는 화면 대신 메인/교육/위젯 화면으로 보이는 문제 
 +   - 로그인 자체는 성공했지만 출/퇴근 메뉴까지 안 들어간 상태일 수 있다. 
 +   - 우회: 본문에 `그룹웨어`, `업무관리`, `출/퇴근` 텍스트가 보이면 세션은 살아있는 경우가 많다. 이때는 실패로 판단하지 말고 **그룹웨어 클릭 → 업무관리 클릭 → 내부 해시 직접 진입** 순서로 진행한다. 
 + 
 +10. 출/퇴근기록부(ID) 링크는 찾았지만 보이지 않아 클릭이 안 되는 문제 
 +   - 숨겨진 메뉴 트리 안에 있어 Playwright 일반 클릭이 실패할 수 있다. 
 +   - 우회: 링크 selector를 억지로 클릭하지 말고, **이미 확인된 해시 경로로 직접 이동**한다. 
 + 
 +11. 표는 떴지만 Google Chat에서 중간 실행 로그가 너무 많이 보여 결과가 묻히는 문제 
 +   - 사용자에게 보여줄 최종 응답은 반드시 별도로 정리해서 다시 보낸다. 
 +   - 우회: 실행 중간 로그와 별개로, 최종 보고는 `지각자 / 근태이슈자 / 출근누락자 / 정상출근자` 형식으로 한 번 더 깔끔히 요약한다. 
 + 
 +--- 
 + 
 +## 8. 실제 작업 절차 
 +1. Python + Playwright로 ECOUNT 로그인 
 +2. 로그인 직후 팝업 확인 및 처리 
 +3. 출/퇴근기록부(ID)로 이동 
 +4. `전체` 탭 전환 확인 
 +5. 오늘 날짜 클릭 후 직원별 출근 시간 수집 
 +6. 제외 인원 제거 
 +7. BRYZE 캘린더에서 당일 `오전 반차` / `오전반반차` 일정 확인 
 +8. 전 인원을 아래로 분류 
 +   - 지각자 
 +   - 근태이슈자 
 +   - 출근누락자 
 +   - 정상출근자 
 +9. 현재 메신저에 전체 결과 보고 
 +10. 사용자가 지정한 사람에게만 Google Chat 발송 
 +11. 사용자가 별도 지시한 경우에만 ECOUNT에서 근태 조정 수행 
 +12. 조정 완료 시 현재 메신저에 결과 보고 
 + 
 +--- 
 + 
 +## 9. 구현 시 체크포인트 
 +- 날짜는 반드시 **오늘 기준**으로 처리하되, 근태 조정은 사용자가 지정한 날짜 기준으로 처리한다. 
 +- 로그인 후 `새로운 기기 로그인 알림` 팝업이 뜨는지 먼저 확인하고 자동화가 멈추지 않도록 선처리한다. 
 +- ECOUNT 메뉴가 일반 클릭으로 바로 안 열릴 수 있으므로 자동화 시 내부 해시(`#menuType=...`) 방식 진입도 준비한다. 
 +- `사용자` 탭이 기본으로 열릴 수 있으므로 반드시 `전체` 탭으로 전환했는지 확인한다. 
 +- 날짜를 눌러도 바로 상세 표가 안 뜨면 로딩 대기 후 재확인한다. 
 +- 캘린더 일정 제목이 사람 이름과 정확히 매칭되는지 확인한다. 
 +- 이름/직급이 불명확하면 도두위키 조직도 페이지(`company:org`)로 보완 확인한다. 
 +- 동명이인 가능성이 있으면 부서/직급 정보로 교차검증한다. 
 +- ECOUNT에 출근 시간이 없더라도 캘린더에 `오전 반차`, `오전반반차`, `연차`, `연차(X)`가 있으면 `출근누락자`가 아니라 `근태이슈자`로 본다. 
 +- `오전 반차`, `오전반반차`, `연차`, `연차(X)` 대상자는 일반 지각자/출근누락자로 오분류하지 않도록 주의한다. 
 +- `오후 반차`는 본 매뉴얼 기준상 근태이슈자로 보지 않으므로 별도 오분류에 주의한다. 
 +- Google Chat 메시지는 반드시 사용자 지정 대상에게만 발송한다. 
 +- 근태 조정은 반드시 사용자 지시가 있을 때만 수행한다. 
 +- 근태 조정 사유 문구는 `송란 부대표 컴펌하에 출근조정 지각 제외`로 통일한다. 
 +- 근태 조정 시에는 `탭 전환 성공 -> 날짜 상세표 확인 -> 대상자 선택 -> 출근 항목 클릭 -> 사유 입력 -> 저장 -> 반영 확인` 순서를 체크리스트처럼 확인한다. 
 +- 여러 명을 한 번에 처리하다가 꼬일 수 있으므로, 성공률이 낮으면 **한 명씩 단독 처리**로 전환한다. 
 +- 저장 버튼 클릭 시도만으로 완료 처리하지 말고, 실제 반영 여부를 다시 확인한 뒤 보고한다. 
 +- 메시지 발송 전과 근태 조정 전에는 최종 대상자를 한 번 더 검토한다. 
 + 
 +--- 
 + 
 +## 10. 권장 산출물 
 +- 내부 보고용 표 
 +  - 이름 
 +  - 직급 
 +  - 출근시간 
 +  - 캘린더 근태 여부 
 +  - 최종 분류 
 +- 발송 로그 
 +  - 발송 시각 
 +  - 수신자 
 +  - 발송 사유(지각/출근누락) 
 +- 근태 조정 로그 
 +  - 조정 시각 
 +  - 조정 대상자 
 +  - 조정 날짜 
 +  - 조정 사유 
 +  - 처리 결과 
 + 
 +--- 
 + 
 +## 11. 후속 자동화 아이디어 
 +- Playwright + Calendar API + gog를 하나의 Python 스크립트로 통합 
 +- 이름/직급 매핑 테이블 별도 관리 
 +- 보고용 Markdown 자동 생성 
 +- 발송 전 승인 단계 추가 
 +- 근태 조정 결과를 별도 로그 파일로 누적 저장
  
ai/assistant_ops_manual_sample.1775766792.txt.gz · 마지막으로 수정됨: (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki