우와한 개발자

[Java] 주요 어노테이션 정리 - Java, Lombok, Spring, JPA

by 우와한개발자

1. Java 기본 어노테이션

어노테이션 설명 @Retention
@Override 메서드 재정의 명시 SOURCE
@Deprecated 사용 금지 표시 RUNTIME
@SuppressWarnings 경고 무시 SOURCE
@FunctionalInterface 함수형 인터페이스 명시 RUNTIME
@SafeVarargs 가변 인자 경고 억제 SOURCE

 

2. 메타 어노테이션 (어노테이션 위에 붙는 것)

어노테이션 설명
@Target 어디에 붙일 수 있는지 지정
@Retention 유지 범위 지정 (SOURCE / CLASS / RUNTIME)
@Documented Javadoc 포함 여부
@Inherited 상속 허용

 

3. Lombok 어노테이션

어노테이션 설명
@Getter, @Setter getter/setter 자동 생성
@ToString toString 자동 생성
@EqualsAndHashCode equals/hashCode 생성
@NoArgsConstructor 기본 생성자
@AllArgsConstructor 모든 필드 생성자
@RequiredArgsConstructor final 필드 생성자
@Builder 빌더 패턴
@Data @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 포함
@Slf4j 로그 객체 생성

 

4. Spring 핵심 어노테이션

1) Bean 등록 관련

어노테이션 설명
@Component 스프링 빈 등록
@Service 서비스 계층
@Repository DAO 계층
@Controller MVC 컨트롤러
@RestController REST API 컨트롤러

 

2)  DI 관련

어노테이션 설명
@Autowired 의존성 자동 주입
@Qualifier 특정 빈 지정
@Primary 우선 빈 지정
@Value 프로퍼티 값 주입

 

3) 요청 매핑 관련

어노테이션  
@RequestMapping 기본 매핑
@GetMapping GET
@PostMapping POST
@PutMapping PUT
@DeleteMapping DELETE
@PathVariable URL 변수
@RequestParam 쿼리 파라미터
@RequestBody 요청 body 매핑

 

4) 트랜잭션 / AOP

어노테이션 설명
@Aspect AOP 정의
@Before, @After, @Around Advice
@Transactional 트랜잭션 처리

 

5) 설정 관련

어노테이션 설명
@Configuration 설정 클래스
@Bean 빈 직접 등록
@ComponentScan 패키지 스캔
@EnableAutoConfiguration 자동 설정
@SpringBootApplication Boot 시작점

 

5. JPA 어노테이션

어노테이션 설명
@Entity 엔티티
@Table 테이블 지정
@Id PK
@GeneratedValue 자동 생성
@Column 컬럼 설정
@OneToMany, @ManyToOne 관계 매핑
@JoinColumn FK 지정
@Enumerated enum 매핑
@Embedded, @Embeddable 값 타입

6. Validation 어노테이션

어노테이션 설명
@NotNull null 금지
@NotBlank 빈 문자열 금지
@Size 길이 제한
@Min, @Max 숫자 범위
@Email 이메일 형식
@Valid 검증 실행

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기