binding, conversion, validation을 Java 모델과 연결하는 기준을 정리합니다.
바인딩은 입력 컴포넌트와 Java 모델 사이의 계약입니다. 필드 이름, 타입 변환, 검증 순서를 명확히 두면 폼이 커져도 오류 위치를 좁히기 쉽습니다.
- 필드별 getter와 setter 기준을 확인합니다.
- 중첩 객체는 별도 섹션으로 나눕니다.
- 읽기 전용 필드는 바인딩 대상에서 제외합니다.
사용자가 입력하는 값은 대부분 문자열이지만 서비스 모델은 숫자, 날짜, enum을 요구합니다. 변환 실패를 검증 실패와 같은 사용자 경험으로 처리하면 폼 전체 흐름이 단순해집니다.
- 날짜와 숫자는 locale 영향을 확인합니다.
- enum label과 저장 값을 분리합니다.
- 빈 문자열을 null로 볼지 결정합니다.
Bean Validation은 서버 모델의 기본 안전망입니다. UI에서 빠른 피드백을 제공하더라도 최종 저장 전에는 같은 규칙을 서버에서 다시 검증해야 합니다.
- 공통 message를 재사용합니다.
- 그룹 검증이 필요하면 문서화합니다.
- 서버 오류를 필드 오류로 매핑합니다.
폼에는 저장뿐 아니라 되돌리기, 취소, 새로고침 흐름이 있습니다. dirty 상태를 추적하면 사용자가 변경 내용을 잃는 상황을 줄이고, 저장 후 어떤 값이 기준이 되는지 명확히 할 수 있습니다.
- 초기값 snapshot을 유지합니다.
- 취소 시 route 이동 여부를 정합니다.
- 저장 성공 후 dirty 상태를 초기화합니다.
Java 중심 UI 시스템으로 제품 수준의 웹 앱을 더 빠르게 구축합니다. 공통 컴포넌트와 레이아웃을 기반으로 사이트를 일관되게 확장할 수 있습니다.