[java] Vaadin을 사용하여 CRUD 애플리케이션 개발하기

개요

Vaadin은 Java 개발자가 웹 기반의 애플리케이션을 쉽게 개발할 수 있는 프레임워크입니다. 이번 포스트에서는 Vaadin을 사용하여 간단한 CRUD(Create, Read, Update, Delete) 애플리케이션을 개발하는 방법에 대해 알아보겠습니다.

사전 준비

프로젝트 생성

먼저 Maven을 사용하여 Vaadin 프로젝트를 생성해보겠습니다. 아래 커맨드를 터미널에서 실행하여 프로젝트를 생성합니다.

mvn archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=LATEST -DgroupId=com.example -DartifactId=myapp

프로젝트 생성이 완료되면 IDE에서 프로젝트를 열고, MyApp 클래스를 생성합니다.

UI 디자인

Vaadin은 UI를 그래픽 툴 없이 자바 코드로 디자인할 수 있는 특징이 있습니다. MyApp 클래스를 열고, 다음과 같이 UI를 디자인해봅시다.

@Route
public class MyApp extends VerticalLayout {

    private Grid<Person> personGrid = new Grid<>(Person.class);
    private TextField firstNameField = new TextField("First Name");
    private TextField lastNameField = new TextField("Last Name");
    private Button addButton = new Button("Add");
    private Button updateButton = new Button("Update");
    private Button deleteButton = new Button("Delete");

    public MyApp() {
        personGrid.setColumns("firstName", "lastName");
        personGrid.setItems(getDummyData());

        addButton.addClickListener(e -> addPerson());
        updateButton.addClickListener(e -> updatePerson());
        deleteButton.addClickListener(e -> deletePerson());

        add(personGrid, firstNameField, lastNameField, addButton, updateButton, deleteButton);
    }

    private void addPerson() {
        String firstName = firstNameField.getValue();
        String lastName = lastNameField.getValue();

        Person person = new Person(firstName, lastName);
        personGrid.getItems().add(person);
        clearFields();
    }

    private void updatePerson() {
        Person selectedPerson = personGrid.getSelectedItems().iterator().next();
        selectedPerson.setFirstName(firstNameField.getValue());
        selectedPerson.setLastName(lastNameField.getValue());
        personGrid.getDataProvider().refreshAll();
        clearFields();
    }

    private void deletePerson() {
        Person selectedPerson = personGrid.getSelectedItems().iterator().next();
        personGrid.getItems().remove(selectedPerson);
        clearFields();
    }

    private void clearFields() {
        firstNameField.clear();
        lastNameField.clear();
    }

    private List<Person> getDummyData() {
        List<Person> people = new ArrayList<>();
        people.add(new Person("John", "Doe"));
        people.add(new Person("Jane", "Smith"));
        return people;
    }
}

위의 코드에서 Person 클래스는 간단한 데이터 객체입니다. Person 클래스를 아래와 같이 정의해줍니다.

public class Person {
    private String firstName;
    private String lastName;

    // getters and setters

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

애플리케이션 실행

실행하려면 MyApp 클래스에서 메인 메서드를 생성해야 합니다. 아래 코드를 추가해주세요.

public static void main(String[] args) {
    Vaadin.run(MyApp.class, args);
}

탐색창이 실행되면 웹 브라우저에서 애플리케이션을 확인할 수 있습니다.

결론

Vaadin 프레임워크를 사용하여 CRUD 기능을 가진 애플리케이션을 개발하는 방법에 대해 알아보았습니다. Vaadin은 자바 개발자들에게 쉽고 간편한 웹 개발 경험을 제공합니다. 추가적인 개발이 필요한 경우 Vaadin 프레임워크의 다양한 기능과 컴포넌트를 사용하여 기능을 구현할 수 있습니다.

참고 자료