Spring Security 테스트 환경 PasswordEncoder 최적화
·
📒 Java & Spring/Spring
들어가며테스트 환경에서 로그인 인증에 필요한 JWT 토큰 헤더를 생성하는 JwtTestHelper 클래스를 사용하는 라인에서 100ms 초과하는 병목을 발견했다. 처음에는 save(…) 메서드로 DB 저장을 2회 수행하는 것이 원인이라고 추측했다.// 최적화 전 코드@Transactionalpublic Header createCouncilAuthorizationHeader(Festival festival) { ... festivalRepository.save(...); ... councilRepository.save(...); String token = jwtProvider.createToken(...); return new Header(HttpHeaders.AUTHORIZ..
Spring 컨텍스트 캐싱 오해, 소멸과 누적 동작 실험
·
📒 Java & Spring/Spring
들어가며festabook 프로젝트 테스트 코드 리팩토링을 진행하면서 @SpringBootTest 사용으로 인한 Spring 컨텍스트가 총 9번 로드되었다. 이는 컨텍스트가 새로 띄워지며 전체 실행 시간이 증가하는 원인 중 하나였다. 개선 방법은 어떤 이유로 로드되는지 구체적인 원인을 찾고 리팩토링하면 되지만, 막상 생각해 보니 실제로 동작하는 방식이나 어떤 식으로 캐시가 소멸하고 누적하는지 모르고 있었다. 이전까지의 가추한 테스트 환경 Spring 컨텍스트 동작 방식은 실행 초기에 Bean 설정이 동일한 그룹끼리 묶어,컨텍스트 생성테스트 실행소멸과정을 반복한다고 예상했다. 즉, 순차적으로 생성과 소멸하는 형태로 기대했다. 하지만 AI와 공식문서 자료를 흝어보니, Spring 컨텍스트는 테스트 종료 시점까..
Online DDL 알고리즘 종류와 단점 (2)
·
📕 공부방
해당 문서는 뱅크 샐러드의 ‘테크 스펙’을 기반으로 작성되었습니다. 요약 (Summary)기술 면접을 계기로 Online DDL에 대한 이해가 부족했다는 점을 깨달았고, 이에 1편에 이어 이번 글에서는 Online DDL의 단점 실무적인 관점에서 다뤄보고자 한다. 단순한 개념 설명이 아닌, 실제 실험과 장애 시나리오를 기반으로 총 6가지 주요 단점을 소개하며, 실제 운영 환경에서 어떻게 문제가 발생하는지를 체감할 수 있도록 구성했다. 또한 단점을 나열하는 데서 끝나지 않고, 어떤 상황에서 Online DDL을 피해야 하는지, 그리고 어떤 경우에는 안전하게 사용할 수 있는지에 대한 실전 가이드라인도 함께 제시한다.배경 (Background)기술 면접을 통해 Online DDL에 대한 이해가 아직 충분하지 ..