현재와 변화를 함께 파악
개인 대시보드, 저장 관점, 활동 이력과 이전 기간 비교를 통해 현재값이 만들어진 문맥까지 읽게 했습니다.
Operations product system
이슈를 저장하고 찾는 도구를 넘어, 현재 상태를 이해하고 일정 위험을 발견하며 권한에 맞게 다음 행동을 결정하고 실패에서 복구하는 하나의 운영 시스템으로 확장했습니다.
The problem
업무 상태, 담당자, 일정, 활동 이력이 서로 다른 관점에 흩어지면 같은 데이터를 보고도 팀마다 다른 현재를 이해하게 됩니다.
목표는 새 화면을 하나 더 만드는 것이 아니라, 조회·분석·변경·알림이 같은 업무 문맥을 공유하도록 연결하는 것이었습니다.
System design
개인 대시보드, 저장 관점, 활동 이력과 이전 기간 비교를 통해 현재값이 만들어진 문맥까지 읽게 했습니다.
계층, 의존성, 지연과 충돌을 상세 패널과 시간축에 함께 보여줘 날짜가 어떤 위험으로 이어지는지 설명했습니다.
역할 정책, 승인 흐름, 기능 공개 단계를 분리하고 화면과 서버가 같은 권한 기준을 반복 확인하게 했습니다.
반복 작업은 자동화하되 결과를 검증하고, 실패하면 원본 데이터와 기존 업무 흐름을 유지하도록 설계했습니다.
Technical architecture
외부 이슈 서비스의 이벤트와 전체 스냅샷을 같은 정규화 계층으로 통과시킨 뒤, 현재 상태·변경 이력·관계를 분리해 저장합니다. 화면과 자동화는 원본 응답이 아니라 이 검증된 읽기 모델을 사용합니다.
Example 01 · Search
Example 02 · Schedule
Example 03 · Automation
Example 04 · AI assist
Working views
데이터베이스와 간트는 별도 도구가 아닙니다. 같은 권한 범위와 최신 스냅샷을 사용하되, 하나는 찾기와 비교에, 다른 하나는 날짜·계층·의존성 해석에 맞게 읽기 모델을 바꿉니다. 화면을 오가거나 브라우저 기록을 이동해도 사용자의 판단 문맥을 복원합니다.
View 01 · Database
상태·담당 범위·저자·마일스톤·라벨·기간을 조합해 현재 이슈를 찾고, 표시 열과 다중 정렬까지 개인 관점으로 보존합니다. 부모·자식과 선행 관계, 작업 순서는 같은 목록에서 이어서 점검합니다.
“진행 중이며 이번 기간에 마감되는 담당 범위”를 열면, 서버가 허용 프로젝트를 고정하고 현재값을 조회한 뒤 관계와 최근 변경 요약을 붙입니다. 사용자는 이 조건을 개인 관점으로 저장하거나 링크로 공유할 수 있습니다.
View 02 · Gantt
데이터베이스에서 좁힌 이슈를 일간·주간·월간 시간축에 놓고 부모·자식 순서와 선행·종속 연결을 함께 그립니다. 마감 지연, 마일스톤 초과, 작업 대기 같은 상태는 같은 우선순위 규칙으로 목록과 막대에 표시합니다.
후속 작업의 시작일이 선행 작업의 종료일보다 빠르면 연결선과 막대를 위험 상태로 표시합니다. 사용자가 날짜를 옮기면 개인 화면은 즉시 갱신되고, 권한이 확인된 변경만 저장 큐를 거쳐 외부 이슈 서비스에 반영됩니다.
Data & API operations
검색과 대시보드가 읽는 최신 스냅샷입니다. 전체 갱신은 별도 대기 데이터셋을 완성한 뒤 교체해 갱신 중에도 직전 데이터를 읽을 수 있게 합니다.
담당자·상태·마감일처럼 시간에 따른 변화만 축적합니다. 활동 분석과 날짜 변화의 근거가 되며 현재값을 복제하는 용도로 쓰지 않습니다.
부모·자식·선행·종속 연결을 별도 관리합니다. 일정 계산은 이 연결을 따라가되 순환과 누락을 방어하는 검증을 먼저 거칩니다.
세션, 역할 권한, 저장 관점과 기능 공개 상태를 업무 데이터와 분리해 관리합니다. 화면에서 숨긴 것만으로 권한이 부여되지는 않습니다.
페이지 단위 전체·부분 동기화, 메타데이터와 활동 조회에 사용합니다. 요청 범위와 재시도를 제한하고, 호출 한도에서는 간격을 늘려 회복합니다.
paged fetch · bounded retry · normalization변경을 빠르게 반영하되 서명·중복·대상 범위를 확인합니다. 기본 서비스가 전환되는 동안에도 이벤트를 보존해 유실을 줄입니다.
verify · dedupe · durable handoff브라우저가 보낸 식별자를 신뢰하지 않고 세션·역할·프로젝트 허용 범위를 요청마다 다시 검사합니다.
session · capability · scope브라우저는 선택 대상만 전달하고, 서버가 권한 범위 안에서 다시 조회한 데이터로 결과를 만듭니다. 외부 인증 정보와 업무 데이터는 분리합니다.
descriptor · re-query · short-lived handoffOperational hardening
기능이 정상일 때의 경로만 설계하면 운영 시스템은 오래 버티지 못합니다. 최근 개선은 사용자의 탐색 상태, 외부 서비스의 호출 한도, 프로세스 장애와 AI 응답 실패를 각각 다른 경계에서 작게 멈추고 복구하는 데 집중했습니다.
직접 주소, 뒤로·앞으로 이동과 짧은 화면 복귀에서 선택한 맥락을 되살립니다. 복원할 권한이 없으면 안전한 화면으로 안내합니다.
역할, 기능 공개 상태와 사용자 범위를 서버 요청마다 확인합니다. 설정 일부가 없어도 기본 가입과 탐색은 유지합니다.
선택값과 데이터 변화가 있을 때만 묶어서 갱신합니다. 일시 오류는 제한적으로 재시도하고 행별 실패를 성공 결과와 분리합니다.
역할별 실행을 나눠 독립적으로 회복하고, 새 웹 버전은 준비 상태를 확인한 뒤 전환합니다. 문제가 생기면 직전 버전으로 돌아갑니다.
키워드와 의미 검색을 단계적으로 사용하고 모델에는 제한된 근거만 전달합니다. 시간 초과나 형식 오류에는 기존 결과를 보존합니다.
실행 이름, 포트, 데이터와 로그 위치를 분리해 같은 코드의 두 환경이 서로의 상태를 덮어쓰지 않게 했습니다.
Outcomes
조회 화면과 알림, 분석 결과가 같은 상태 기준을 공유해 다시 설명해야 하는 간극을 줄였습니다.
마감일을 넘긴 뒤가 아니라 의존성과 변화 흐름에서 일정 위험을 먼저 확인할 수 있게 했습니다.
반복 작업을 줄이면서 승인, 실행, 공유의 최종 결정권은 사용자에게 유지했습니다.
화면 이동과 복귀 뒤에도 선택과 데이터 상태를 보존해 반복 탐색과 불필요한 재요청을 줄였습니다.
새 기능이 실패해도 기본 업무가 유지되도록 검증, 격리, 대체 경로와 되돌리기를 제품의 일부로 설계했습니다.