Back-end/Spring

어노테이션(Annotation) 정리

yujin0517 2023. 4. 20. 17:38

Annotation은 클래스와 메서드에 추가해 사용하며, 다양한 기능을 부여합니다.

Annotation을 사용하여 해당 클래스가 어떤 역할을 하는지 정합니다. 

이 글에서는 다양한 Annotation에 대해 정리해보려 합니다. 


@Controller

@GetMapping

@RequestParam

@ResponseBody: 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송

@RequestBody: HTTP 요청 본문에 담긴 값들을 자바객체로 변환시켜, 객체에 저장

@Test

@Override


@Transactional

-> 해당 어노테이션은 데이터베이스 트랜잭션을 지원하고 관리하기 위해 사용된다. 

1. 트랜잭션 관리: JPA가 트랜잭션을 자동으로 시작하고 종료한다. 때문에 개발자가 직접 트랜잭션을 관리할 필요가 없게 되며, 더 안전하고 편리한 방법으로 데이터베이스 작업을 수행할 수 있다. 

2. 트랜잭션 경계 설정: 해당 어노테이션을 메서드 레벨에 적용하면 해당 메서드가 실행될 때 트랜잭션을 시작하고 종료한다. 메서드 단위로 트랜잭션 경계를 설정할 수 있도록 도와준다. 

3. 예외 처리: JPA에서는 예외가 발생했을 때 롤백을 자동으로 수행한다. 즉, 이 어노테이션을 사용하면 예외가 발생했을 때 데이터베이스 상태를 이전으로 되돌리고, 작업을 취소할 수 있다. 

4. 데이터 일관성 보장: 트랜잭션을 사용하면 여러 작업을 하나의 논리적 단위로 묶어서 실행해 데이터 일관성을 보장하 ㄹ수 있다. 

5. 성능 향상: 트랜잭션은 데이터베이스 연산을 묶어서 처리하기 때문에 여러 작업을 단일 트랜잭션 내에서 처리하면 데이터베이스의 로그 작업을 줄일 수 있다.