[java] Vaadin을 사용하여 웹 폼 개발하기

Vaadin은 Java 기반의 웹 애플리케이션 개발을 위한 사용자 인터페이스 프레임워크입니다. 이를 사용하면 손쉽게 웹 폼을 개발할 수 있으며, 강력한 UI 컴포넌트 라이브러리와 자동화된 클라이언트-서버 통신을 제공합니다.

1. 프로젝트 설정

먼저, Vaadin을 사용하기 위해 프로젝트에 의존성을 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-spring-boot-starter</artifactId>
    <version>14.5.1</version>
</dependency>

2. 폼 레이아웃 생성

Vaadin에서는 FormLayout 컴포넌트를 사용하여 폼을 구성할 수 있습니다. 다음은 간단한 폼 레이아웃의 예입니다:

FormLayout formLayout = new FormLayout();
formLayout.addFormItem(new TextField("이름"), "name");
formLayout.addFormItem(new TextField("이메일"), "email");
formLayout.addFormItem(new PasswordField("비밀번호"), "password");

3. 폼 입력 유효성 검사

Vaadin은 폼 입력의 유효성을 검사하는 기능을 제공합니다. 예를 들어, 다음은 이메일 주소의 유효성을 검사하는 코드입니다:

TextField emailField = new TextField("이메일");
emailField.setRequired(true);
emailField.setPattern("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\\b");
emailField.setErrorMessage("유효한 이메일 주소를 입력해주세요.");

formLayout.addFormItem(emailField, "email");

4. 폼 제출 처리

폼을 제출하기 위해, Vaadin은 Button 컴포넌트를 사용합니다. 다음은 폼 제출을 처리하는 코드의 예입니다:

Button submitButton = new Button("제출");
submitButton.addClickListener(event -> {
    if (binder.validate().isOk()) {
        // 폼 제출 처리 로직
    } else {
        Notification.show("입력이 올바르지 않습니다.", 3000, Position.BOTTOM_START);
    }
});

formLayout.add(submitButton);

5. 폼 데이터 바인딩

Vaadin은 폼 데이터 바인딩을 위해 Binder 클래스를 제공합니다. 다음은 데이터 모델을 폼 요소에 바인딩하는 예입니다:

public class User {
    private String name;
    private String email;
    private String password;

    // getter와 setter
}

User user = new User();

Binder<User> binder = new Binder<>(User.class);
binder.bindInstanceFields(formLayout);
binder.setBean(user);

마무리

이제 Vaadin을 사용하여 웹 폼을 개발하는 방법을 알게 되었습니다. Vaadin의 강력한 컴포넌트와 폼 기능을 사용하여 사용자 친화적인 웹 애플리케이션을 만들어보세요.

참고 자료