Back-end/TroubldShooting

🌱 문제 상황@RequiredArgsConstructor@UseCasepublic class BidUseCase { private final BidRepository bidRepository; @Transactional public void deleteBid(User user, Long bidId) { Bid bid = bidRepository.findById(bidId).orElseThrow(() -> NOT_FOUND_BID); bid.cancel(); bidRepository.delete(bid); log.info(bid.getStatus().name()); }}@SQLDelete(sql =..
🌱 문제 상황Bid 엔티티는 낙관적 락을 위해 @Version 필드를 사용 중이다.@SQLDelete 어노테이션을 사용해 Soft Delete를 하고 있다.Bid 엔티티를 삭제하려고 할 때 다음과 같은 SQL 오류가 발생했다.could not delete: [core.domain.bid.Bid]; SQL [UPDATE bid SET is_deleted = 1 WHERE id = ?]SQL Error: 90008, SQLState: 90008Invalid value "2" for parameter "parameterIndex" [90008-214]o.h.engine.jdbc.spi.SqlExceptionHelper : Invalid value "2" for parameter "parameterInde..
🌱 문제 상황멀티스레드 테스트에서 테스트 데이터 초기화를 위해 @Transactional을 사용했을 때 @BeforeEach를 통해 초기화한 데이터 조회가 안 되는 문제가 발생하였다.@Transactional@SpringBootTestclass OrderUseCaseTest { @Autowired private OrderUseCase orderUseCase; // ... @BeforeEach void initData() { userService.create(user); productService.create(product); bidService.create(bid); } @Test @DisplayName("판매 입찰에 대한..
🌱 문제 상황판매 입찰에 관련된 구매 입찰 생성 로직@RequiredArgsConstructor@UseCasepublic class BidUseCase { private final BidRepository bidRepository; @Transactional public void order(User user, OrderRequestDto request) { Bid sellBid = bidRepository.findFirstByProductIdAndPriceAndStatusOrderByCreatedAtAsc( request.productId(), request.price()).orElseThrow(() -> NOT_FOUND_BID_WITH_COND..
Annotation-specified bean name 'authController' for bean class [com.chaewsstore.controller.AuthController] conflicts with existing, non-compatible bean definition of same name and class [com.chaewsstore.apis.auth.controller.AuthController]🌱 문제 상황멀티모듈 구조 변경으로 많은 파일들을 이동하고 삭제하는 과정 중 ConflictingBeanDefinitionException이 발생했다. 에러에서 어느 경로에서 중복이 발생하는지 알려주고 있지만 내 프로젝트 파일에는 저런 경로가 없다는 것이 문제였다 ㅎㅎ😅사진에서 볼..
java.lang.NullPointerException: Cannot invoke "org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder.getObject()" because "this.authenticationManagerBuilder" is null🌱 문제 상황기존에 구현했던 로직은 AuthenticationManagerBuilder를 통해 인증된 Authentication을 반환하는 형식이다.실제 구동할 때는 잘 동작하는데, 단위 테스트를 수행할 때는 authenticationManagerBuilder.getObject()에서 NPE가 발생했다.@RequiredArgsCon..
현재 개발 중인 프로젝트에서 Spring Security와 JWT를 이용해 로그인 로직을 구현하고 있다. 구현 중 인증(Authentication) 예외와 JWT 예외 처리를 따로 분리하기 위한 과정을 정리해 보았다. 🔙 이전 진행사항 [Spring Security] SecurityConfig permitAll() 적용 안 되는 이유Spring Security를 도입하면 SecurityConfig 클래스 파일에서 웹 애플리케이션의 인증(Authentication) 및 권한 부여(Authorization) 메커니즘을 설정하고 관리하게 된다. 🌱 SecurityConfig.class@RequiredArgsConstructor@Conchaewsscode.tistory.com [Spring Security]..
현재 개발 중인 프로젝트에서 Spring Security와 JWT를 이용해 로그인 로직을 구현하고 있다. 구현 중 SecurityConfig의 permitAll() 메서드와 JwtAuthenticationFilter의 shoudNotFilter() 메서드의 효율적인 관리를 위한 과정을 정리해 보았다. 🔙 이전 진행사항 [Spring Security] SecurityConfig permitAll() 적용 안 되는 이유Spring Security를 도입하면 SecurityConfig 클래스 파일에서 웹 애플리케이션의 인증(Authentication) 및 권한 부여(Authorization) 메커니즘을 설정하고 관리하게 된다. 🌱 SecurityConfig.class@RequiredArgsConstruct..
Spring Security를 도입하면 SecurityConfig 클래스 파일에서 웹 애플리케이션의 인증(Authentication) 및 권한 부여(Authorization) 메커니즘을 설정하고 관리하게 된다. 🌱 SecurityConfig.class@RequiredArgsConstructor@Configurationpublic class SecurityConfig { private final JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; private final JwtAccessDeniedHandler jwtAccessDeniedHandler; private final JwtAuthenticationFilter jwtAuthent..
서채리
'Back-end/TroubldShooting' 카테고리의 글 목록