Simple is IT, 누구나 보고 누구나 깨닫는 IT

ERROR: Cannot find symbol method "Getter" 본문

Simple is IT/Programming

ERROR: Cannot find symbol method "Getter"

currenjin 2021. 11. 24. 21:56

상황

객체를 생성하고, 해당 객체의 getter 를 이용해 비교 테스트를 진행했습니다.

@Test
void create() {
    Post actual = Post.of(ANY_ID, ANY_TITLE, ANY_CONTENT, ANY_DATE, ANY_STATUS);

    assertThat(actual.getId()).isEqualTo(ANY_ID);
    assertThat(actual.getTitle()).isEqualTo(ANY_TITLE);
    assertThat(actual.getContent()).isEqualTo(ANY_CONTENT);
    assertThat(actual.getDate()).isEqualTo(ANY_DATE);
    assertThat(actual.getStatus()).isEqualTo(ANY_STATUS);
 }

하지만 에러가 발생했죠.

cannot find symbol method getId()
cannot find symbol method getTitle()
cannot find symbol method getContent()
cannot find symbol method getDate()
cannot find symbol method getStatus()

아니 객체에 Lombok 의 어노테이션인 Getter 를 지정해 줬는데, 왜 해당 메소드를 못 사용할까?

영문도 모르고 허덕여야 했습니다.
직접 손으로 Getter, Setter, Constructor 를 추가해 주자니 너무 귀찮고 또 코드도 보기 싫다고 생각했어요. 제 딴에선 이유를 찾아야만 했습니다.

해결

dependencies 에 아래 내용을 추가해 주니 말끔하게 해결되었습니다.

annotationProcessor 'org.projectlombok:lombok'

이유

annotationProcessor 는 자바 컴파일러의 플러그인 중 하나입니다. 우리가 설치한 Dependency 를 통해 Annotation 을 사용하는 경우 해당 Annotation 에 대한 코드베이스를 검사하고, 수정, 생성하죠.
즉, 자바 컴파일러가 Lombok 의 annotation 을 인식하고 동작을 수행할 수 있도록 정의해 주어야 하는 것이죠.


annotationProcessor 에 대한 자세한 정의는 따로 포스팅을 진행하겠습니다.

Comments