v0.1.1 — 모바일 대응과 권한 기반 승인 표기
첫 프로덕션 릴리스(v0.1.0) 이후의 첫 후속 릴리스입니다. develop에 쌓인 21개 커밋을 main으로 올렸습니다.
이번 회차의 큰 줄기는 모바일 대응입니다. 예전에는 body { min-width: 1024px }가 데스크톱 전용을 강제하고 있어, 휴대폰으로 열면 화면이 가로로 밀린 채 조작해야 했습니다.
모바일 반응형
경계는 lg(1024px) 하나뿐입니다. 예전의 min-width 값을 그대로 브레이크포인트로 삼았으므로 lg 이상은 정의상 예전과 같은 화면입니다 — 데스크톱 사용자에게는 바뀐 것이 없습니다.
- 기반 구축 (#85) — 전역 뷰포트, 관리자 셸(좁은 화면에서는 사이드바 대신 드로어), 공용 컴포넌트, 대시보드. 메뉴 목차와 권한 판정은 한 벌만 두어 사이드바와 드로어가 갈리지 않게 했습니다.
- 화면별 대응 — 승인함 (#86) · 폼 응답 (#87) · 가입 흐름 (#91) · 운영 조회 (#92) · 회원 조회 (#93) · 폼·응답 조회 (#94) · 등록·수정 (#95) · 역할·권한·CSV 이관 위저드 (#96)
- 입력란 글자를 좁은 화면에서 16px로 (#105). iOS Safari는 16px 미만인 입력란에 포커스하면 화면을 자동 확대하고 그 확대가 스스로 돌아오지 않습니다 — 첫 칸에 입력하는 순간 폼 전체가 커진 채로 남았습니다. 미관이 아니라 동작 문제라 공용 입력 컴포넌트에 규칙을 걸고 AGENTS.md에 남겼습니다.
- 대시보드 '내 업무 목록' 머리줄이 좁은 화면에서 글자 단위로 깨지던 것 (#103)
열 수가 많은 표(GridTable)는 lg 미만에서 카드로 바뀝니다. 아직 전 화면이 대응된 것은 아닙니다 — min-width 제거로 드러난 나머지 화면은 후속 이슈로 남아 있습니다.
PWA
- 매니페스트와 iOS 설치 메타 (#108) — 홈 화면에 앱으로 설치할 수 있습니다
- 매니페스트를 인증 가드에서 제외 (#110). 가드에 걸려 로그인으로 리다이렉트되는 바람에 설치 자체가 되지 않았습니다
- 앱 아이콘 (#106) → 동아리 공식 로고로 교체 (#113)
서비스 워커·오프라인·푸시는 이번 범위 밖입니다.
권한 · 문구
- 승인자 표기를 서버 결재 권한 기반으로 전환하고 투표 버튼을 권한으로 잠금 (#115). 서버가 승인·투표 자격을 권한 시스템으로 통합(ssccops-server#123)하면서, 웹이 들고 있던 승인자 어휘 하드코딩(
AUTZR_ROLE_NM4종)을 걷어냈습니다 — 권한 이름은 화면에서 바뀌는 운영 데이터라 사전을 웹에 두면 개명 즉시 어긋납니다. 투표 버튼은 이제APPROVAL_VOTE권한으로 미리 잠깁니다(예전에는 눌러 403을 보고서야 자격이 없다는 것을 알았습니다). - 화면 문구 윤문 (#117). AI 번역투를 걷어내려 훑었는데 실제로 걸린 것은 잘못된 안내였습니다 — 시스템에 없는 역할명("최고운영자")을 안내하던 6곳, 시스템에 없는 판정 기준("국장 이상")을 설명하던 2곳, 요구 권한을 "운영진 권한"으로 뭉뚱그려 무엇을 받아야 하는지 알 수 없던 17곳. 회원 도메인이 쓰던 형식(
업무 관리(WORK_MANAGE) 권한이 필요합니다)으로 통일하고, 화면에 노출된 개발 용어(@RequireAuthority·PK·"회원 도메인")를 사용자의 말로 옮겼습니다. 톤·용어 기준은 AGENTS.md에 남겼습니다. - 권한 분리를 화면에 반영하고 팀 공유용 AGENTS.md 작성 (#82)
운영
- 업무·하위 업무·회의 소프트 삭제 연동 (#119)
⚠️ 배포 시 주의
ssccops-server v0.1.1과 함께 배포해야 합니다. #115가 서버의 승인자 응답 계약(직위 코드 → 결재 권한)에 맞춰져 있어, 옛 서버와 조합하면 하위 업무 유형 화면의 승인자 표시가 빈칸이 됩니다.
Full Changelog: v0.1.0...v0.1.1