[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 | 숫자 범위 |
| 이메일 형식 | |
| @Valid | 검증 실행 |
'언어 > Java' 카테고리의 다른 글
| [Java] 주석(/, /*, /**)과 공백, 식별자와 예약어 (0) | 2026.03.03 |
|---|---|
| [Java] 내부 클래스(nested Class)와 익명 클래스(Anonymous Class) (0) | 2026.03.03 |
| [Java] 어노테이션(Annotation)이란? 개념과 특징, 주요 어노테이션 정리 (0) | 2026.03.03 |
| [Java] 스트림(Stream)이란? 개념과 주요 메서드, 직렬/병렬 스트림 (0) | 2026.03.03 |
| [Java] 람다표현식(Lambda Expression) / 함수형 인터페이스 / 메서드 참조 연산(::) (0) | 2026.03.03 |
블로그의 정보
우와한개발자 님의 블로그
우와한개발자