YOUNG-JIN.OH
웃어라. 온 세상이 너와 함께 웃을 것이다.
울어라. 너 혼자만 울게 될 것이다.

Spring Boot, Lombok 설정

참고 사이트:

IntelliJ IDEA 에서 프로젝트 생성시 Spring Initializr, Type “Gradle”, Java Version “11” 기준으로 Dependencies 는 “Core – Lombok” 을 선택해서 프로젝트를 생성합니다.

build.gradle

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    compileOnly 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Lombok 을 사용하는 이유는 소스의 가독성을 좋게 하고 유지보수가 편하게 하기 위함입니다. 예를 들어, 단순히 값을 보관하는 클래스를 만든다고 했을 때 private 접근자의 멤버 변수에 값을 저장하거나 가져오기 위해서는 getter/setter 등을 정의해야 합니다. 손이 많이 가는 단순작업이기 때문에 IntelliJ IDEA에서도 소스를 자동으로 만들어주는 기능을 제공하고 있습니다.

package com.example.demo;

public class User {

    private String name;
    private String email;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

그런데 문제는 멤버 변수가 많아지면 소스의 절반 이상이 getter/setter 로 채워지기 때문에 가독성도 떨어지고 멤버 변수가 추가되거나 삭제되면 여간 번거로운게 아닙니다. @Data라는 어노테이션을 붙여주면 이 작업을 알아서 진행해 줍니다. 왼쪽 중간쯤에 Structure 항목에 생성된 메소드를 보면 확인이 가능합니다.

그런데 막상 테스트 코드에서 실행하면 오류가 발생하는데요.

IntelliJ IDEA의 Preferences 에서 annotation 부분의 Enable annotation processing를 체크를 해주면 문제가 해결됩니다.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.