JH LIM LAB NOTES
Lab Note 013
EDUCATION4 NOV 2025

Cross-Device, and the Cache

StatusSHIPPED

What I added

Firestore 를 켜서 기기 간 과제 공유를 붙였다. 교사가 과제 코드를 주면 학생이 아무 기기에서나 열 수 있다. 보안 규칙에 assignments 컬렉션을 추가하고, 규칙 배포를 GitHub Actions 에 넣었다. 같은 날 로그인 화면에 박혀 있던 교사 코드도 걷어냈다.

The 1MB wall

붙이자마자 벽에 부딪혔다. 과제 하나에 제출을 전부 담고 있었는데, 한 반이 다 내면 문서 한 개가 1MB 상한을 넘는다. 상한에 걸리면 저장이 통째로 실패한다. 제출을 서브컬렉션으로 옮겼다. 과제 문서는 과제만 갖고, 제출은 그 아래에 하나씩 따로 들어간다. 그날 새로고침하면 과제가 사라지던 것도 같이 잡혔다. 한 문서에 다 넣는 구조에서는 쓰다가 실패하면 앞의 것도 같이 날아간다.

The cache

고치고 배포해도 브라우저가 옛 화면을 계속 보여줬다. 이게 제일 답답했던 이유는 내 쪽에서는 고쳐져 있었기 때문이다. 교사가 "안 고쳐졌는데요"라고 하면 확인할 방법이 없다. 캐시 지우는 법을 문서로 따로 썼다.

만드는 시간보다 남에게 닿게 하는 시간이 길었다.

The numbers

전체 142커밋 중 배포·캐시 관련이 31개다. 5분의 1이 넘는다. 11월 8일 하루에도 학생 제출이 교사 화면에 안 뜨는 것, 직접 접속한 제출이 저장이 안 되는 것, 한 학생이 여러 명으로 세어지는 것을 연달아 잡았다. 전부 실제 수업에서 나온 것이다. 혼자 쓰는 도구와 남이 쓰는 도구 사이의 거리가 이 31개다.

Related project
En Teacher
English comprehension grading for teachers
Technical