[2회차] Spring ApplicationContext 는 왜 테스트 성능에 영향을 줄까? #28
Replies: 5 comments
-
1. Spring ApplicationContext가 부팅되면서 빈을 등록하고 생성하는 전체적인 순서에 대해 간단히 설명해 주세요.
2. 클래스에 @transactional이 붙어 있다면, ApplicationContext는 최종적으로 어떤 객체를 빈으로 등록하게 될까요?원본 객체가 아닌 프록시를 생성하여 프록시 객체를 반환합니다 3. Spring Context Caching은 왜 필요하며, 어떤 조건 속에서 발생하나요?
|
Beta Was this translation helpful? Give feedback.
-
|
문제1: Spring ApplicationContext가 부팅되면서 빈을 등록하고 생성하는 전체적인 순서에 대해 간단히 설명해 주세요.
문제2: 클래스에 @transactional이 붙어 있다면, ApplicationContext는 최종적으로 어떤 객체를 빈으로 등록하게 될까요? proxy mode 기준으로는, 트랜잭션 처리를 위해 실제 대상 객체를 감싼 프록시 객체가 빈으로 노출될 수 있습니다. 문제3: Spring Context Caching은 왜 필요하며, 어떤 조건 속에서 발생하나요? ApplicationContext 생성 비용이 크기 때문에, 같은 설정을 사용하는 테스트끼리는 컨텍스트를 재사용해 테스트 실행 시간을 줄이기 위해 필요합니다. |
Beta Was this translation helpful? Give feedback.
-
Spring ApplicationContext가 부팅되면서 빈을 등록하고 생성하는 전체적인 순서에 대해 간단히 설명해 주세요.
클래스에 @transactional이 붙어 있다면, ApplicationContext는 최종적으로 어떤 객체를 빈으로 등록하게 될까요?
Spring Context Caching은 왜 필요하며, 어떤 조건 속에서 발생하나요?
|
Beta Was this translation helpful? Give feedback.
-
Spring ApplicationContext가 부팅되면서 빈을 등록하고 생성하는 전체적인 순서에 대해 간단히 설명해 주세요.
클래스에 @transactional이 붙어 있다면, ApplicationContext는 최종적으로 어떤 객체를 빈으로 등록하게 될까요?
Spring Context Caching은 왜 필요하며, 어떤 조건 속에서 발생하나요?
|
Beta Was this translation helpful? Give feedback.
-
Q1. Spring ApplicationContext가 부팅되면서 빈을 등록하고 생성하는 전체적인 순서에 대해 간단히 설명해 주세요.
Q2. 클래스에 @transactional이 붙어 있다면, ApplicationContext는 최종적으로 어떤 객체를 빈으로 등록하게 될까요?최종적으로 프록시 객체가 빈으로 등록됩니다. 프록시가 메서드 호출을 가로채 트랜잭션을 열고 닫습니다. 단, 같은 클래스 내부에서 호출하면 프록시를 거치지 않아 트랜잭션이 무시되는 Self-invocation 문제가 발생할 수 있습니다. Q3. Spring Context Caching은 왜 필요하며, 어떤 조건 속에서 발생하나요?Spring Context Caching은 Context 생성 비용이 크기 때문에 필요합니다. 빈 구성이 동일하면 재사용하고, @MockBean/@ActiveProfiles/@TestPropertySource 등이 달라지면 새 Context를 띄웁니다. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
🚀 발표 주제
Spring ApplicationContext 는 왜 테스트 성능에 영향을 줄까?
📅 발표일
2026-06-08
🙋 발표자
러키
🗂️ 카테고리
🌱 Spring
📚 발표 자료
[러키] Spring ApplicationContext 는 왜 테스트 성능에 영향을 줄까?.pdf
🎥 발표 영상
업로드 예정
🎯 핵심 개념 요약
ApplicationContext의 역할과 생성 비용
@DirtiesContext는 테스트 실행 중 Spring ApplicationContext가 수정되거나 손상되었음(더러워졌음)을 나타내는 어노테이션입니다. 이 어노테이션이 붙은 컨텍스트는 테스트 프레임워크의 캐시에서 제거되고 종료되며, 후속 테스트를 위해 기본 Spring 컨테이너가 매번 새로 재구축됩니다.@DirtiesContext를 사용하지 않는다면, 기존에 로드된 컨텍스트를 캐시하여 후속 테스트에서 재사용합니다.🔗 미션과의 연결
학습테스트에 존재하던
@DirtiesContext을 사용했을 때, 테스트 실행 속도에 어떤 영향을 끼치는지 알아보자!📚 참고 자료
스프링 공식문서
🙋♀️ 질문
@Transactional이 붙어 있다면, ApplicationContext는 최종적으로 어떤 객체를 빈으로 등록하게 될까요?Beta Was this translation helpful? Give feedback.
All reactions