Everyspace

Engineering

화면을 저장하지 않는 화면 공유를 만들다

2026-08-14 · Everyspace 팀

Everyspace에는 직원이 화면을 공유하며 근무하는 모드가 있습니다. 이런 기능은 한 끗 차이로 감시 도구가 됩니다. 우리는 반대로 가기로 했고, 그 약속을 문서가 아니라 아키텍처에 박았습니다.

원칙: 최신 한 장, 메모리에만

  • 직원이 브라우저/앱에서 직접 공유를 승인한 동안만 5초 간격의 저프레임 이미지를 받습니다.
  • 서버는 사람마다 최신 1장만 프로세스 메모리에 둡니다. 디스크·DB·로그 어디에도 쓰지 않습니다.
  • 이석·휴식을 누르면 그 순간 메모리의 화면을 폐기하고, 복귀할 때 운영체제의 화면 선택창을 다시 거칩니다.
  • 퇴근하거나 공유가 끊기면 즉시 폐기합니다. 서버를 재시작해도 남는 게 없습니다 — 애초에 저장된 적이 없으니까요.
메모리 세션을 쓰기 때문에 서버는 reload 없는 단일 프로세스로 돕니다. 제약이 아니라 설계입니다: 상태가 한 곳에만 존재하면 "지웠다"는 말을 증명할 수 있습니다.

동의는 버전이다

동의서 본문은 대표가 편집할 수 있는데, 저장하면 정책 버전이 바뀌고 전 직원이 재동의 대상이 됩니다. 최근에 추가한 '화면 보관' 옵션(기본 꺼짐)도 켜는 순간 버전을 올려서, 어제와 다른 조건으로 오늘 일하게 되는 일을 막습니다.

보관을 켜면 어떻게 되나

보관은 무저장 계약의 유일한, 명시적인 예외입니다. 최근 7일은 수신 화면 전체, 31일까지는 분당 1장으로 줄여 서버 디스크에만 두고, 열람은 대표와 본인뿐입니다. S3도 CDN도 없습니다 — 작은 회사의 데이터는 작게, 가까이 두는 게 맞다고 봅니다.

Screen sharing that never stores your screen

2026-08-14 · Everyspace team

Everyspace has a work mode where employees share their screen. Features like this are one step away from becoming surveillance tools. We went the other way — and baked the promise into the architecture, not just the docs.

The rule: one latest frame, memory only

  • Low-rate frames (every 5s) flow only while the employee has explicitly approved sharing in their browser or app.
  • The server keeps only the latest frame per person, in process memory. Nothing touches disk, database, or logs.
  • Stepping away or taking a break discards the frame immediately; coming back requires the OS screen picker again.
  • Clock-out or a dropped connection discards it too. Restart the server and nothing survives — nothing was ever stored.
Because sessions live in memory, the server runs as a single process without reloads. That's a design choice, not a limitation: when state exists in exactly one place, "deleted" is provable.

Consent is versioned

The owner can edit the consent document, but saving it bumps the policy version and every employee must re-consent. Our recent opt-in archive feature (off by default) bumps the version too — nobody works under different terms than the ones they agreed to.

What happens if archiving is on

Archiving is the single explicit exception to the no-storage contract: full frames for 7 days, one per minute up to 31 days, on local disk only, viewable by the owner and the person themselves. No S3, no CDN — a small company's data should stay small and close.