본문 바로가기

SpringBoot24

@OneToOne 도서(Book)와 도서 이미지(BookImage) 간 요구사항은 아래와 같다. 일단은 도서 별로 도서이미지는 하나만 가지도록 해주시고!!추후에 도서 별로 도서이미지는 여러 개 등록해주세요!! 위 요구사항에 대해 연관관계로는 @OneToOne으로 맺어주려 한다.1:1관계는 반대로 해도 1:1이 된다.즉, 주테이블이나 대상테이블 중 외래키를 어느쪽에서든 선택하여 지정할 수 가 있다. * 도서를 주테이블, 도서이미지를 대상 테이블라고 칭함 아래 @OneToOne에 대해 두 케이스를 가지고 어떤 장단점이 있는지 잊지 않도록 정리해보려 한다.1. 연관관계 주인의 위치(외래키를 가지고 있는 테이블이 주인)2. 양방향? 단방향? Entity 객체public class BookEntity { @Id @Ge.. 2024. 4. 22.
페이징 개선(첫 페이지 조회결과 cache) 첫 페이지 조회 결과 cache 하기 기존) BookRepositoryImpl @Repository @RequiredArgsConstructor public class BookRepositoryImpl implements BookRepository { private final JPAQueryFactory jpaQueryFactory; private final SpringDataJpaBookRepository bookRepository; ... @Override public Page findBooksBySimpleCategory(InquiryCategory category, String inquiryWord, Pageable pageable) { JPQLQuery query=jpaQueryFactory.s.. 2024. 4. 18.
OpenFeign 사용 시 헤더 값 넘기기 들어가기 앞서..- 시큐리티 연동(jwtToken 방식)해둔 상태 api 요청 시 헤더에 토큰을 담겨서 서버로 들어온다. 필터에선 토큰 검증 완료하여 원하는 비즈니스 로직을 처리한다. 비즈니스 로직 중 openfeign으로 외부 API 호출하는 로직이 있으며, 외부 API에게 동일하게 첫 요청 시 전달받았던 토큰을 동일하게 세팅해주어야 했다. 즉, 첫 요청 시 전달받은 헤더값을 openFeign으로 외부API요청 시에도 동일하게 세팅하는 해주어야 했다. 시도 1. 쓰레드로컬변수 사용해볼까?스프링MVC는 요청마다 쓰레드를 할당받아 사용하니쓰레드 내 쓰레드로컬변수를 활용하여 토큰을 저장했다가 외부API호출 시 헤더 세팅하고 없애주면 되지않을까?? 쓰레드 로컬변수 선언public class ThreadLoca.. 2024. 3. 27.
리소스 접근 시 인증,인가 Exception 처리 특정 자원 접근 시 발생하는 있는 거절 종류 ( 토큰은 정상 ) - 로그인조차 되지 않은 채 로그인이 필요한 리소스에 접근 시 AuthenticationException -> 인증 실패 - 로그인하였으나 권한 없는 관계로 인한 AccessDeniedException -> 인가 실패 *로그인 은 정상 토큰으로 인증객체 생성 완료된 상태 *비로그인 은 Anonymous인증객체가 생성 완료된 상태 더보기 각각 어떤 식으로 에러 응답을 처리할까? 인가 실패 CustomAccessDeniedHandler 권한 없는 자원 접근 발생하는 예외( AccessDeniedException )에 대하여 AccessDeinedHandler 인터페이스를 구현하여 처리 @Slf4j public class CustomAccessD.. 2023. 10. 19.