스프링에서 발생할 수 있는 문제점

📌 스프링을 사용할 때 발생하는 문제점

빈 설정

빈 설정을 잘못해서 문제가 발생할 수 있다. 따라서 스프링의 동작 원리를 이해하고 있어야 한다.

프록시

가장 많이 발생하는 문제는 프록시와 관련있다. 프록시는 기본적으로 실행 시에 생성된다. 프록시를 사용하게 하는 주요 기능은 트랙잭션이다. @Transactional 어노테이션을 사용하면 클래스의 인스턴스를 처음 만들 때 프록시 객체를 만든다. 그러나 AOP 코드에서 예상치 못한 성능 문제를 보일 가능성이 매우 높다. 부하 테스트를 성능적인 테스트를 해봐야 한다.

캐시

스프링이 내부 매커니즘에서 사용하는 캐시도 조심해야 한다. ViewResolver 중에 InternalResourceViewResolver는 캐싱 기능이 내장되어 있다. 만약에 문자열로 반환해서 뷰를 찾는다면 이미 캐싱되어 있는 뷰를 반환하기 때문에 성능상 이점이 있다. 그러나 매번 다른 문자열로 뷰를 생성할 경우, 캐시에 많은 데이터가 쌓이므로, 이를 조심해야 한다. 차라리 뷰 객체를 만들어 반환하면 메모리 릭을 방지하는 데 도움이 된다.

📌 참고 자료

TOP