컴포넌트 property, event, visibility, enabled state가 렌더링과 상호작용에 반영되는 방식을 설명합니다.
컴포넌트 property는 Java 객체의 상태가 렌더링 결과로 전달되는 경로입니다. 단순 문자열뿐 아니라 enabled, visible, selected 같은 상호작용 상태를 일관되게 다루면 컴포넌트 조합이 쉬워집니다.
- 기본값은 컴포넌트 내부에서 안정적으로 둡니다.
- null과 빈 문자열 처리 기준을 정합니다.
- 렌더링된 HTML 속성과 property 이름을 맞춥니다.
클릭, 입력, 선택 변경은 사용자 의도가 서버 코드로 들어오는 지점입니다. 이벤트 핸들러는 화면 상태 변경과 서비스 호출을 분리해 두면 테스트와 추적이 쉬워집니다.
- 이벤트 payload를 작게 유지합니다.
- 중복 이벤트가 들어와도 안전하게 처리합니다.
- 실패 시 UI 상태를 되돌릴 기준을 둡니다.
숨김과 비활성화는 서로 다른 의미입니다. 사용자가 조건을 이해해야 하는 기능은 비활성화와 도움말을 쓰고, 권한상 보여주면 안 되는 기능은 렌더링 자체를 제한합니다.
- 권한 제한 항목은 서버에서 숨깁니다.
- 일시적 제약은 disabled 상태로 표현합니다.
- 레이아웃 공간이 갑자기 흔들리지 않게 합니다.
빌더는 HTML 구조, CSS hook, 접근성 속성을 함께 만들어야 합니다. data 속성을 안정적으로 붙이면 페이지별 script나 테스트가 class 이름 변경에 덜 민감해집니다.
- 테스트 대상에는 data 속성을 둡니다.
- 컴포넌트 내부 style과 페이지 style을 분리합니다.
- 반복되는 구조는 작은 private method로 나눕니다.
Java 중심 UI 시스템으로 제품 수준의 웹 앱을 더 빠르게 구축합니다. 공통 컴포넌트와 레이아웃을 기반으로 사이트를 일관되게 확장할 수 있습니다.