Spring 입문 (Annotation, Lombok 라이브러리)

KimGwangmin·2026년 9월 6일

Annotation

  • Java 코드에서 추가할 수 있는 메타데이터
  • 컴파일러나 런타임에 필요한 추가 정보를 전달
어노테이션은 복잡한 기능을 쉽게 사용할 수 있도록 해준다.

@Override가 대표적인 어노테이션이다.

  • 어노테이션을 붙이지 않아도 오버라이딩은 가능하다.
  • 어노테이션을 붙이면, 존재하지 않는 메서드를 오버라이딩 하는 등 잘못된 사용을 사전에 검사하여 막아준다. (어노테이션이 없다면, 에러 없이 새로운 메서드를 선언하는 것으로 해석될 것이다)
  • 코드 가독성 향상의 효과도 있다.

Lombok

  • 자주 사용되는 코드를 줄여주는 라이브러리
  • 보일러 플레이트 코드를 생성하여 가독성과 유지보수성을 높임
    • 예를 들어, 생성자를 자동으로 생성해주는 어노테이션을 사용하면, 필드가 추가되어도 생성자를 따로 수정할 필요가 없다

      보일러 플레이트란?
      getter/setter, 생성자, toString 메서드 등 거의 수정 없이 반복적으로 사용되는 '정형화된 코드'

주요 Lombok 어노테이션

  1. @Getter, @Setter

    • 클래스의 모든 필드에 대한 getter, setter 메서드 자동 생성
  2. @ToString

    • 객체의 toString() 메서드 자동 생성
    • 기본적으로 클래스 모든 필드를 포함한 스트링을 만들어줌
      • 예시 toString() 결과: User(id=1, name=Alice, email=alice@example.com)
    • @ToString.Exclude 어노테이션을 통해 특정 필드 제외 가능
  3. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

    • 기본 생성자 자동 생성 (기본 생성자, 전체 생성자, 필수 생성자)
    • 필수 생성자: final 필드 + @NotNull이 붙은 필드 대상
  4. @Slf4j

    • 로그 출력을 위한 Logger 객체 자동 생성
    • log.info(), log.error(), log.debug() 등의 메서드 사용 가능

0개의 댓글