Annotation은 클래스와 메서드에 추가해 사용하며, 다양한 기능을 부여합니다.
Annotation을 사용하여 해당 클래스가 어떤 역할을 하는지 정합니다.
이 글에서는 다양한 Annotation에 대해 정리해보려 합니다.
@Controller
@GetMapping
@RequestParam
@ResponseBody: 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송
@RequestBody: HTTP 요청 본문에 담긴 값들을 자바객체로 변환시켜, 객체에 저장
@Test
@Override
@Transactional
-> 해당 어노테이션은 데이터베이스 트랜잭션을 지원하고 관리하기 위해 사용된다.
1. 트랜잭션 관리: JPA가 트랜잭션을 자동으로 시작하고 종료한다. 때문에 개발자가 직접 트랜잭션을 관리할 필요가 없게 되며, 더 안전하고 편리한 방법으로 데이터베이스 작업을 수행할 수 있다.
2. 트랜잭션 경계 설정: 해당 어노테이션을 메서드 레벨에 적용하면 해당 메서드가 실행될 때 트랜잭션을 시작하고 종료한다. 메서드 단위로 트랜잭션 경계를 설정할 수 있도록 도와준다.
3. 예외 처리: JPA에서는 예외가 발생했을 때 롤백을 자동으로 수행한다. 즉, 이 어노테이션을 사용하면 예외가 발생했을 때 데이터베이스 상태를 이전으로 되돌리고, 작업을 취소할 수 있다.
4. 데이터 일관성 보장: 트랜잭션을 사용하면 여러 작업을 하나의 논리적 단위로 묶어서 실행해 데이터 일관성을 보장하 ㄹ수 있다.
5. 성능 향상: 트랜잭션은 데이터베이스 연산을 묶어서 처리하기 때문에 여러 작업을 단일 트랜잭션 내에서 처리하면 데이터베이스의 로그 작업을 줄일 수 있다.
'Back-end > Spring' 카테고리의 다른 글
JPA, Hibernate 에러 -> org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : (0) | 2023.09.25 |
---|---|
Maven 이란? (0) | 2023.07.31 |
[Spring] 오류 목록 (0) | 2023.04.18 |
[Spring] 빌드하기 + 실행하기 (0) | 2023.04.12 |
[Spring] 프로젝트 생성 및 기본 설정 (0) | 2023.04.11 |