- Spring Security 초기화 - DelegatingFilterProxy, FilterChainProxy, SecurityFilterChain, WebSecuritystarryeye지난 포스팅에서HttpSecurity(SecurityBuilder) 로 SecurityConfigurer 를 이용하여다양한 Servlet Filter 를 포함하는 SecurityFilterChain 을 생성하는 과정을 알아보았다. 이번엔..SecurityBuilder 의 또다른 구현체인 WebSecurity 에 대해 알아보겠다. WebSecurity위 코드는 WebSecurityConfiguration 클래스 중 일부이다.this.securityFilterChains, this.httpSecurity 필드는WebSecurityConfiguration 객체에서 의존성 주입을 받은 것이다.따라서, WebSecurity 는 이전 포스팅에서 봤던 SecurityFilterChain, HttpSecurity 를..
- 2025-01-28 21:13:10
- Spring Security 초기화 - HttpSecurity, SecurityConfigurer, SecurityFilterChainstarryeyeSpring Security 는 요청에 대한 인증, 인가 처리를 Servlet Filter 를 통해 수행한다.해당 Servlet Filter 를 만드는 초기화 과정 및 아키텍처를 알아보겠다. SecurityBuilderSecurityBuilder 는 ...빌더 클래스로 Security 처리와 설정을 담당하는 빈 객체들을 생성하는 역할을 담당한다.대표적으로 WebSecurity 와 HttpSecurity 가 있다. HttpSecurity위는 HttpSecurityConfiguration 클래스에 존재하는 HttpSecurity 빈 등록 코드이다.HttpSecurity 객체는 spring boot auto configuration 에 의해 자동으로 등록되는 빈인 것을 알 수 있다.scope 은 싱글톤이 ..
- 2025-01-28 18:39:22
- Spring Security 초기화 - 의존성에 의한 자동 구성starryeyeorg.springframework.boot:spring-boot-starter-security 의존성을 추가하면Spring boot auto configuration 에 의해 설정되는 사항들에 대해 알아보겠다. 위는 SpringBootWebSecurityConfiguration.class 에 존재하는 SecurityFilteChainConfiguration 클래스 코드이다.SecurityFilterChain 타입의 빈을 등록시키고 있으며- 모든 요청에 대해 인증을 요구하고 formLogin, httpBasic 인증 방법을 지원하도록 한다. 따라서, org.springframework.boot:spring-boot-starter-security 의존성을 추가만 해도SecurityFilterChain 타..
- 2025-01-28 18:34:55
- Spring Security 소개starryeyeSpring 에서 제공하는 Spring security 에 대해 알아보자. Spring Security 공식 문서https://docs.spring.io/spring-security/reference/index.html Spring Security :: Spring SecurityIf you are ready to start securing an application see the Getting Started sections for servlet and reactive. These sections will walk you through creating your first Spring Security applications. If you want to understand how Spring Security..
- 2025-01-28 17:54:28
- DBCP 설정 값 정하기starryeyeDBCP 를 사용할 때 다양한 설정 값들이 있다.설정 값을 어떻게 정하는지에 대한 간단한 가이드를 포스팅 해보겠다.설명은 HikariCP 옵션으로 진행하겠다. maximumPoolSizePool 이 제공할 수 있는 최대 커넥션 갯수이다. (idle + in-use) maximumPoolSize 설정 값을 정하기 위해서는..한 커넥션당 쿼리 실행 시간, 목표로하는 TPS 가 필요하다. 최대 TPS = 1 커넥션 당 초당 요청 처리 개수 * 동시 커넥션 개수위는 TPS 의 계산식이다.여기서 우리는 동시 커넥션 개수 (maximumPoolSize) 를 구할 것이다. 최대 TPS 는 목표로하는 TPS 이므로 알고 있는 값이다.1 커넥션 당 초당 요청 처리 개수는 1초를 1 커넥션당 쿼리 실행 시간으로 나눈 값이..
- 2024-05-01 18:34:39
- @Transactional 과 Test code 고찰 - 개발자들의 생각 모음starryeye@Transactional 을 Test code 에서 사용할 때, 개발자 간에 논란이 좀 있다.. 개발자들의 생각을 알아보자.. 향로님 테스트 데이터 초기화에 @Transactional 사용하는 것에 대한 생각 https://jojoldu.tistory.com/761 테스트 데이터 초기화에 @Transactional 사용하는 것에 대한 생각 얼마 전에 2개의 핫한 컨텐츠가 공유되었다. 존경하는 재민님의 유튜브 - 테스트에서 @Transactional 을 사용해야 할까? 존경하는 토비님의 페이스북 2개의 컨텐츠에서 테스트 데이터 초기화에 @Transa jojoldu.tistory.com 토비님 테스트가 관리하는 트랜잭션 - 향로 님의 @Transactional 글을 읽고 https://toby.epril...
- 2024-04-22 22:01:25
- DBCP (HikariCP)starryeye오늘 포스팅으로는Database Connection Pool (DBCP) 에 대해 정리해보겠다. 배경Application 과 Database 간의 통신은 TCP 기반으로 통신한다.따라서, 본격적으로 데이터를 주고 받기 이전에 연결을 하는 과정을 거친다. (TCP 연결 지향 특성)-> 3 way-handshaking또한, 데이터를 주고 받은 다음 연결을 끊어주는 과정도 거친다. (TCP 연결 지향 특성)-> 4 way-handshaking 실제 데이터를 주고 받기 전 후로 연결을 맺고 끊는 과정이 시간이 오래 걸리므로Backend API 응답 시간에 영향을 주게 되며이는 처리량에 영향을 주게된다 또한, Database Connection 개수의 제한을 두지 않으면 DB 과부하 상태가 될 수 있다. DBCP..
- 2024-04-22 21:21:11
- Spring Data JPA (Hibernate), N + 1 Query ProblemstarryeyeN + 1 문제가 일어나는 모든 경우의 수에 대해 알아보고.. 한번 정리를 해보겠다. N + 1 Query problem ? 어떤 엔티티를 조회하기 위해 쿼리(1)를 수행했는데 예상치 못한 쿼리들(N)이 추가로 수행되는 상황을 말한다. 주로 일대다, 다대일 관계에서 발생한다. 이번 포스팅에서 사용할 DB 다이어그램이다. Team 이 여러 Member 를 가지는 관계이다. N + 1 조회 문제가 일어나는 케이스를 살펴보겠다. 글로벌 페치 전략이 즉시 로딩(Eager loading) 인 경우 JPQL 을 이용하여 어떤 엔티티를 조회 할 경우 발생한다. -> 글로벌 페치 전략이 즉시 로딩이지만, 사용자의 쿼리(JPQL) 가 우선이기 때문에 JPQL 을 충실히 수행후, 글로벌 페치 전략에 의해 연관관계에 있는 ..
- 2024-02-20 22:18:47
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)