Spring5 Chain of Responsibility 전에 doFilter를 호출할 때 3개의 파라미터로 넘겼다가 (Filter를 포함한 파라미터)에러가 났다.받는 filter는 chain을 따로 넘겨줄 필요가 없다. 왤까.. 근데 직접 dofilter를 확인 했을 땐 분명히 chain까지 받았딴 말이지.. 그 이유는 ApplicationFilterChain가 중간 관리자로 다음 필터를 호출하기 때문! 뭔가 Chain of Responsibility로 구성된 securityChiain이라서 객체가 체인형태라서 각 객체가 부를 것 같았지만,역시 중간에서 모든 걸 지휘하는 관리자가 있었다.. 그렇지만 핵심은 각 체인이다! 현재 체인이 이 일을 처리할 지 말 지를 정해서 다음 필터를 호출하니까! 현재 체인이 이 일을 처리하지 않고 넘기기로 했다면.. 2025. 5. 10. 사용자 요청부터 스프링 시큐리티까지 feat)OAuth2 목차 스프링 시큐리티 6 기준! 실제 스프링 시큐리티를 만지면서 너무 어렵고 깊이있게 파고들고 싶어서 좀 더 알아보는 흐름을 갖고 싶어서 써보겠다 실제 유저가 스프링에 요청을 보내는 순간으로 부터 시작해서 스프링 시큐리티 작동 원리를 찾아보고일반적인 form 로그인과 Oauth의 경우까지 알아보자 1. http 요청 시 흐름 Client가 API 요청을 하면Web Application server(Java에서는 Tomcat) → Servlet(Java에서는 Dispatcher Servlet ) → Controller 순서로 요청이 전달되는데, 그 중 Filter chain은 Web Application server와 Servlet 사이에서 작동한다. // 흐름HTTP 요청 → WAS .. 2025. 4. 14. JPA 1+N 문제 실습(1) 목차 1. JPA에서 N+1 문제란 무엇인가? JPA(Java Persistence API)는 객체와 RDB 간의 매핑을 지원,SQL를 직접 작성하지 않고 데이터 베이스 작업 가능하다 그러나 JPA를 사용할 때 흔히 발생하는 문제 중 하나가 바로 N+1 문제처음 spring을 접할 때 문제만 알고 있었는데, 좀 더 깊숙하게 파고 들자. (예전에 알아 볼 땐 n+1보다 1+n이 더 맞다는 표현으로 기억하는데.. 실습하면서 정말로 확인해보자!) 그래서?N+1 문제는 JPA 또는 ORM(Object-Relational Mapping) 툴을 사용할 때 자주 발생하는 성능 문제간단히 말해, 하나의 쿼리를 실행한 후 관련된 데이터를 가져오기 위해 추가적으로 N개의 쿼리가 실행되는 상황을 의미 2. 실습 환경 스.. 2025. 4. 12. @transactional을 private메서드에 사용하고 싶다 (자세한 @transactional의 글은 예전 글을 보고오자)@Transactional @Transactional ernest45.tistory.com일반적으로 흔히들 @Transactional은 public에서만 쓸 수 있는 걸로 알고 있다. 대충 프록시 기반의 AOP라서 클래스(CGLIB), 인터페이스(jdk 동적프록시)둘 다public 메서드에서만 호출을 가로챌 수 있다. 먼저 aspectj를 사용한다면 충분히 해결가능하다. spring에서 권장하고 있다. 그렇다면 pubilc으로 선언하고 private한 메서드를 내부에서 호출하면 ? 1. public 메서드에 @Transactional을 적용2.이 public 메서드 내부에서 private 메서드를 호출 간단하게 호출을 테스트 하기.. 2024. 1. 21. @entity 빨간줄 보호되어 있는 글 입니다. 2024. 1. 16. 이전 1 다음