로그인, 세션, 화면 보호, 역할 기반 접근 제어를 제품 흐름에 맞게 연결합니다.
인증은 로그인 화면만의 문제가 아니라 세션 유지, 만료, 로그아웃, redirect까지 포함하는 사용자 여정입니다. 보호된 route에 직접 접근했을 때와 메뉴에서 들어갔을 때가 같은 규칙으로 동작해야 합니다.
- 로그인 후 돌아갈 URL을 보존합니다.
- 세션 만료 시 사용자가 잃는 작업을 줄입니다.
- 로그아웃 후 보호 route 캐시를 확인합니다.
권한은 화면을 숨기는 것과 실행을 막는 것을 모두 포함합니다. 메뉴에서 보이지 않는 기능이라도 URL이나 API로 접근할 수 있으므로 view 보호와 service 보호를 함께 설계합니다.
- 역할과 권한 이름을 업무 언어로 둡니다.
- 서버 명령에서 최종 권한을 확인합니다.
- 권한 없음과 존재하지 않음을 구분해 처리합니다.
문서와 UI에는 운영 키, 토큰, 개인 정보가 섞이지 않아야 합니다. 개발 편의를 위해 노출한 값이 배포 산출물이나 브라우저 HTML에 남지 않는지 확인하는 습관이 필요합니다.
- 환경 변수 이름만 문서에 남깁니다.
- 마스킹된 샘플 값을 사용합니다.
- 브라우저로 내려가는 데이터 범위를 검토합니다.
보안 기능은 구현 뒤 점검 가능한 흔적이 있어야 합니다. 로그인 실패, 권한 거부, 중요한 설정 변경은 감사 로그로 남기고 운영자가 어떤 사용자가 어떤 행동을 시도했는지 확인할 수 있게 합니다.
- 중요 이벤트의 감사 필드를 표준화합니다.
- 권한 변경은 변경 전후를 남깁니다.
- 보안 테스트 route를 통합 테스트에 포함합니다.
Java 중심 UI 시스템으로 제품 수준의 웹 앱을 더 빠르게 구축합니다. 공통 컴포넌트와 레이아웃을 기반으로 사이트를 일관되게 확장할 수 있습니다.