Excel 작업 복귀 기록: 겹친 중단 3건을 13분으로 계산하기

Excel 작업 복귀 기록을 적었는데 중단 시간을 더하니 실제 쉬었던 시간보다 커지는 경우가 있습니다. 전화가 끝나기 전에 메시지를 확인한 것처럼 사건이 겹치면, 사건 수와 시간 길이를 따로 세어야 합니다. 여기서는 보고서 비교표 A2:C4를 작성하는 가상 30분을 고정하고, 중단 기록 세 건의 단순합 14분을 중복 없는 13분으로 바꿉니다. 남은 17분을 실제 집중 시간이라고 해석하지 않는 것까지가 실습의 범위입니다.

기록을 시작하기 전: Windows 11 집중 환경 설정

아래는 독자가 자신의 PC에서 따라 확인할 절차입니다. Windows 안내는 Microsoft 공식 문서를 근거로 정리했으며, 이 글에서 Windows 설정이나 집중 효과를 직접 시험한 결과는 아닙니다.

  1. 작업할 통합문서의 사본을 열고 보고서!A2:C4 작성처럼 오늘 끝낼 범위를 정합니다. 필요한 원본 자료와 Excel 창만 남기고, 메모에는 현재 셀과 다음 행동을 한 줄씩 적습니다. 예: 보고서!C3 / C4 검산.

  2. Windows 11의 설정 → 시스템 → Focus(집중)에서 세션 시간을 정하고 방해 금지 켜기 옵션을 확인한 뒤 세션을 시작합니다. 작업 표시줄의 배지·깜박임 숨김도 같은 화면에서 선택할 수 있습니다. 메뉴 표기는 Windows 표시 언어와 버전에 따라 다를 수 있습니다. Microsoft: 집중 사용과 구성

  3. 긴급 연락을 받아야 한다면 설정 → 시스템 → 알림 → 우선 순위 알림 설정에서 허용할 앱·통화·미리 알림을 확인합니다. 방해 금지 중에도 허용한 알림은 표시될 수 있습니다. 필요한 연락까지 막지 않도록 예외를 먼저 정합니다. Microsoft: 알림과 방해 금지

  4. 종료 후 Windows 키 + N으로 알림 센터를 열어 놓친 알림을 확인합니다. 세션 전에 방해 금지를 수동으로 켰다면 종료 뒤에도 켜져 있을 수 있으므로 상태를 확인합니다. 아래 실습의 30분은 계산용 예시이며, 자신의 업무에 맞는 세션 길이를 선택하면 됩니다.

설정 확인은 실제 화면에서: 세션 타이머와 방해 금지 상태를 확인하고, 중요한 앱이 예외 목록에 들어 있는지 살펴봅니다. 알림이 계속 뜨면 해당 앱의 우선 순위 허용 여부와 앱 자체 알림 설정을 확인합니다. 설정이 회색으로 잠겨 있다면 조직 관리 정책일 수 있으므로 관리자에게 확인합니다. 이 설정만으로 외부 전화·대화·스스로 다른 창을 여는 행동까지 없어지지는 않습니다.

작업 중단에 대비해 노트에 복귀 위치 북마크를 남기는 상황을 표현한 AI 연출 사진
AI로 만든 연출 이미지. 중단 뒤 돌아올 위치와 다음 행동을 남기는 상황을 표현했습니다. 실제 작업 복귀 기록·집중 측정·중단 시간 계산 결과가 아닙니다.

다시 열 위치를 먼저 남기는 입력표

관찰 구간은 같은 날 10:00부터 10:30까지입니다. 작업 목표는 보고서!A2:C4 작성, 첫 중단 직전 위치는 보고서!C3, 다음 행동은 C4 검산으로 적습니다. 이 위치가 있어야 복귀 후 파일 전체를 다시 읽는 대신 확인할 셀을 알 수 있습니다. 첨부는 해당 Excel 파일을 만들거나 조작하지 않습니다. 위치 문자열과 시각을 기록해 합산하는 자료입니다.

중단 ID 시작 복귀 상태 마지막 위치 다음 행동
I01 10:05 10:08 closed 보고서!C3 C4 검산
I02 10:07 10:10 closed 보고서!C3 C4 검산
I03 10:22 빈칸 open 보고서!C4 합계와 원본 대조

closed는 복귀 시각을 알고 있는 기록입니다. open은 관찰 종료인 10:30에도 중단이 계속된 것을 확인한 기록으로, 이 구간 안에서는 10:30까지 계산합니다. 시각을 잊어 빈칸인 상태와 다릅니다. 복귀했는지 모르는 사건을 임의로 open으로 바꾸면 관찰하지 않은 시간을 만들어 넣게 됩니다. 그 경우는 수치를 확정하지 말고 원자료를 확인합니다.

작업 범위 설정, 중단 시 셀과 다음 행동 기록, 복귀 시각 확인을 순서대로 보여 주는 Excel 작업 복귀 절차
중단 시 남긴 셀 위치와 다음 행동으로 복귀합니다. 계속 중단임을 확인한 open과 복귀 여부를 모르는 누락값을 구분합니다. 설명용 도해입니다.

중단 후 다시 돌아올 위치 남기기

  1. 다른 일을 시작하기 전에 중단 시작 시각을 적고, 현재 위치와 다음 행동을 남깁니다. 이 예시에서는 10:05 / 보고서!C3 / C4 검산입니다.

  2. 다시 Excel로 돌아와 해당 위치를 확인한 시각을 복귀 시각으로 기록합니다. 예를 들어 10:08에 돌아왔다면 I01을 closed로 바꾸고 resume에 10:08을 넣습니다. 전화가 끝난 시각만 적지 말고, 무엇을 복귀 기준으로 삼을지 처음부터 동일하게 정합니다.

  3. 10:30에 중단이 계속되는 것을 확인했다면 I03처럼 open으로 남깁니다. 이미 돌아왔는데 시각을 잊은 경우에는 임의로 10:30이나 0을 넣지 않습니다. 원자료로 복구할 수 없다면 그 관찰 구간은 중단 시간 비교에서 제외하고 누락 이유를 남깁니다.

세 사건이 두 구간이 되는 계산

I01은 3분, I02도 3분입니다. 하지만 10:07~10:08의 1분이 겹치므로 두 사건이 차지한 시간은 6분이 아니라 10:05~10:10의 5분입니다. I03의 8분을 합치면 중단은 13분입니다. 중단 ID는 여전히 세 개이며 연속 시간 구간만 두 개가 됩니다. 사건을 삭제하거나 ID를 합치는 처리가 아닙니다.

Python을 실행하지 않아도 검산하는 방법

종이에 I01의 10:05~10:08과 I02의 10:07~10:10을 같은 시간축에 표시합니다. 겹친 1분을 한 번만 세면 첫 구간은 5분입니다. 여기에 I03의 10:22~10:30 8분을 더해 13분을 얻습니다. 30−13=17분은 중단 기록 밖의 시간입니다. 계산이 맞아도 실제 집중이나 완료한 셀 수를 증명하지는 않습니다.

첨부 analyze.py는 시작·끝을 분 단위로 바꾼 뒤 정렬하고 아래 로직으로 합칩니다. 이 코드는 함수 중 구간 합치기 부분이며, 전체 파일에는 시각·상태·중복 ID 검사가 함께 있습니다.

merged = []
for a, b in sorted(ranges):
    if merged and a <= merged[-1][1]:
        merged[-1] = (merged[-1][0], max(b, merged[-1][1]))
    else:
        merged.append((a, b))
blocked = sum(b - a for a, b in merged)

Python의 datetime.strptime는 문자열을 지정한 형식으로 해석합니다. 이 예제는 그 호출 전에 HH:MM 모양을 검사하고, 해석된 시·분만 같은 날의 분 숫자로 바꿉니다. 날짜·시간대를 자동 추정하는 기능은 넣지 않았습니다.

I01과 I02의 겹친 1분을 한 번만 세어, 중단 3건을 5분·8분 두 구간과 총 13분으로 합치는 가상 시간축
합성 기록의 중단 3건은 2개 시간 구간, 총 13분으로 합쳐집니다. 기록 밖 17분은 실제 집중 시간이 아닙니다. 설명용 도해입니다.

첨부 실행과 예상 출력 확인

  1. ZIP을 빈 폴더에 풀고 session.json의 10:00·10:30과 events.csv의 세 행을 위 표와 비교합니다. blank-events.csv는 헤더만 있는 별도 기록용 양식입니다. 빈 양식을 원본 예제 위에 저장하지 않습니다.

  2. 그 폴더에서 python3 analyze.py session.json events.csv를 실행하고 JSON 출력의 "event_records": 3, "merged_intervals": 2, "interruption_minutes": 13을 확인합니다. Python 표준 라이브러리만 사용합니다. Windows에서 python3 명령을 찾지 못하면 먼저 python --version으로 Python 3인지 확인한 뒤 실행 명령의 python3를 python으로 바꿉니다. 명령을 찾지 못하는 상태에서는 계산이 실행된 것이 아닙니다.

  3. python3 -m unittest -v test_example.py를 실행해 겹침·빈 복귀·중복 ID·자정 통과 등 반례를 확인합니다. 실제 기록은 복사본에서 바꾸고, 합성 원본과 기대값은 남겨 둡니다.

예상 출력은 관찰 30분, 사건 3개, 합친 구간 2개, 단순합 14분, 중복 제거 후 중단 13분, 중단 기록 밖 17분입니다. 마지막 항목의 이름은 outside_logged_interruption_minutes입니다. 화면을 멍하니 보거나 관련 없는 창을 연 시간이 기록되지 않았다면 그 시간도 이 17분에 포함됩니다. 따라서 이를 집중률이나 생산성 점수로 바꾸지 않습니다.

실패를 만든 뒤 원자료로 복구하기

invalid-missing-resume.csv는 I01의 상태를 closed로 두고 복귀 시각만 비운 오류 파일입니다. python3 analyze.py session.json invalid-missing-resume.csv는 “closed 기록에는 복귀 시각이 필요합니다”를 출력하고 종료 코드 1로 끝나야 합니다. 정상 입력처럼 0분을 내면 실패를 숨긴 것입니다. 원자료에서 10:08을 확인했을 때만 그 값을 복구하고 다시 실행해 중단 13분으로 돌아오는지 비교합니다.

I01과 I02에 같은 ID를 넣어도 중단합니다. 서로 다른 사건에 같은 번호를 붙인 것인지, 한 사건을 두 번 옮겼는지 확인한 뒤 원본 기록에 맞게 고쳐야 합니다. 한쪽 행을 편의상 지우면 사건 수를 바꾸므로 원본을 보존한 사본에서 정정 이유를 남기는 편이 낫습니다.

종료 뒤인 10:40에 복귀한 기록은 이 관찰 구간의 끝 10:30까지만 잘라 계산합니다. 반면 23:50~00:20처럼 자정을 넘는 구간은 지원하지 않아 거부합니다. 하루를 넘는 작업을 다루려면 날짜가 있는 입력 계약부터 새로 정해야 하며, 이 프로그램의 시간을 억지로 앞뒤 바꾸면 안 됩니다.

기록으로 결정할 수 있는 일과 한계

이 자료로 확인할 수 있는 것은 겹친 시간을 한 번만 세었는지, 다음 행동을 남겼는지, 모르는 값을 임의로 채우지 않았는지입니다. 알림을 실제로 끄거나 타이머를 실행하지 않으며 Excel 셀도 바꾸지 않습니다. 30분은 계산이 보이는 가상 구간으로 모든 사람에게 맞는 집중 주기가 아닙니다. 환경 변경 효과를 비교하려면 동일한 과업과 관찰 규칙으로 별도 기록을 모아야 합니다.

헤더만 있는 blank-events.csv를 실행하면 사건 0개·중단 0분·기록 밖 30분이 나옵니다. 이는 중단이 없었다는 증거가 아니라 입력된 사건이 없다는 뜻입니다. 환경 변경 전후를 비교할 때는 같은 종류의 작업, 관찰 길이, 복귀 기준으로 여러 번 기록하고, 누락 여부와 실제 완료한 범위를 함께 확인합니다. 한 번의 13분 계산만으로 설정 효과를 판단하지 않습니다.

공개된 ZIP을 별도 폴더에 풀어 Python 3 환경에서 재검증했습니다. 정상 입력은 중단 13분·기록 밖 17분을 출력했고, 복귀 시각이 없는 closed 입력은 종료 코드 1로 거부했습니다. 포함된 테스트 9개가 통과했으며 원본 입력 파일의 바이트도 실행 전후 같았습니다. 이는 합성 데이터와 계산 코드의 검증입니다. 실제 사람의 집중, Windows 알림 설정, Excel 화면 복귀를 측정한 결과는 없습니다.

공식 출처와 확인일

공식 문서 확인 및 합성 실습 재검증: 2026년 10월 4일(KST). Windows 메뉴 안내는 문서 기준이며 실제 Windows 실행 검증은 수행하지 않았습니다.

작성자 소개