아래는 스프링 부트 테스트에서 자주 사용되는 애너테이션들을 **JUnit**, **Spring Test**, **Mockito**로 구분하고, 표 형식으로 정리한 내용입니다. 각 애너테이션의 역할과 설명을 간결하게 작성했습니다.

---

### JUnit 관련 애너테이션
| 애너테이션            | 설명                                                                 |
|-----------------------|----------------------------------------------------------------------|
| `@Test`              | 테스트 메서드를 정의. 별도 설정 없이 실행 가능한 기본 단위 테스트.   |
| `@BeforeEach`        | 각 테스트 메서드 실행 전에 실행되는 설정 메서드를 지정.               |
| `@AfterEach`         | 각 테스트 메서드 실행 후에 실행되는 정리 메서드를 지정.               |
| `@BeforeAll`         | 모든 테스트 실행 전에 한 번 실행되는 클래스 수준 설정 메서드를 지정. (static 필요) |
| `@AfterAll`          | 모든 테스트 실행 후에 한 번 실행되는 클래스 수준 정리 메서드를 지정. (static 필요) |
| `@Disabled`          | 특정 테스트 메서드나 클래스를 비활성화하여 실행에서 제외.             |
| `@DisplayName`       | 테스트 메서드에 사용자 친화적인 이름을 지정해 가독성 향상.           |
| `@ParameterizedTest` | 동일한 테스트를 여러 데이터로 반복 실행. (예: 값 소스와 함께 사용)   |
| `@Nested`            | 테스트 클래스 내에 계층적 구조를 만들어 관련 테스트를 그룹화.         |

---

### Spring Test 관련 애너테이션
| 애너테이션              | 설명                                                                                   |
|-------------------------|----------------------------------------------------------------------------------------|
| `@SpringBootTest`      | 스프링 부트 애플리케이션 컨텍스트를 로드하여 통합 테스트를 실행. (webEnvironment 설정 가능) |
| `@WebMvcTest`          | MVC 계층(컨트롤러)만 로드해 단위 테스트. 서비스나 리포지토리는 모킹 필요.               |
| `@DataJpaTest`         | JPA 관련 테스트를 위해 리포지토리와 데이터베이스 설정만 로드. (H2 기본 사용)            |
| `@AutoConfigureMockMvc`| MockMvc를 자동 설정해 컨트롤러 테스트에 사용.                                          |
| `@Transactional`       | 테스트 메서드 실행 후 트랜잭션을 롤백하여 데이터베이스 상태를 초기화.                   |
| `@Rollback`            | `@Transactional`과 함께 사용해 롤백 여부를 명시적으로 설정. (기본: true)               |
| `@Testcontainers`      | Testcontainers를 사용해 Docker 기반 데이터베이스 등을 테스트 환경에 통합.               |
| `@DynamicPropertySource`| 테스트에서 동적으로 프로퍼티(예: 데이터베이스 URL)를 설정. (Testcontainers와 자주 사용) |
| `@AutoConfigureRestDocs`| 스프링 REST Docs를 자동 설정해 API 문서 생성을 지원.                                   |

---

### Mockito 관련 애너테이션
| 애너테이션             | 설명                                                                                   |
|------------------------|----------------------------------------------------------------------------------------|
| `@Mock`               | 모킹된 가짜 객체를 생성. 외부 의존성을 대체할 때 사용.                                 |
| `@InjectMocks`        | 모킹된 객체를 실제 객체에 주입해 테스트 대상 객체를 초기화.                            |
| `@Spy`                | 실제 객체를 감싸 일부 메서드만 모킹 가능. 전체 동작을 유지하면서 특정 동작만 변경.      |
| `@MockBean`           | 스프링 컨텍스트에 모킹된 빈을 등록. `@SpringBootTest`나 `@WebMvcTest`에서 사용.         |
| `@ExtendWith(MockitoExtension.class)` | JUnit 5와 Mockito를 통합해 `@Mock`, `@InjectMocks` 등을 활성화.                   |

---

### 추가 참고
- **JUnit**: 테스트 실행의 기본 프레임워크로, 단위 테스트와 통합 테스트 모두에서 사용됩니다.
- **Spring Test**: 스프링 부트의 컨텍스트와 통합된 테스트를 지원하며, 계층별 테스트에 특화된 애너테이션을 제공합니다.
- **Mockito**: 의존성을 모킹해 단위 테스트를 독립적으로 실행하거나, 통합 테스트에서 특정 빈을 대체하는 데 유용합니다.

이 표는 책의 **부록 A. 자주 사용하는 테스트 애너테이션 정리**에 포함시키기에 적합합니다. 필요하면 특정 애너테이션에 대한 예제나 더 자세한 설명을 추가할 수 있으니 말씀해 주세요!