-
2023-04-05 : Spring Security & SpringTIL ( Today I Learned ) 2023. 4. 25. 09:31
Spring Security에서 loadUserByname return 후에 실행되는게 onAuthenticationSuccess 인가?
- Spring Security에서 `loadUserByUsername()` 메소드는 인증 프로세스에서 사용자 인증 정보를 가져오는 역할을 한다.
- 이 메소드 실행 후에는 `AuthenticationManager` 에서 다음 단계로 진행된다.
- `AuthenticationManager` 가 인증을 성공하면 `onAuthenticationSuccess()` 메소드가 호출된다.
- 이 메소드는 인증 성공 시 수행할 작업을 구현할 수 있다.
- 이 메소드를 구현할려면 `AuthenticationSuccessHandler` 인터페이스를 구현하거나 `SimpleUrlAuthenticationSuccessHandler` 클래스를 확장해야 한다.
- 따라서 `loadUserByUsername()` 메소드는 인증 프로세스의 일부이며, 인증이 성공하면 `onAuthenticationSuccess()` 메소드가 실행된다.
하나의 Controller 가 어떻게 수 많은 request 를 처리할 수 있을까?
- 하나의 컨트롤러가 수많은 request를 처리하는 것을 스레드(Thread)와 스레드 풀(Thread Pool)을 이용하여 가능하다.
- 스레드는 프로그램에서 동시에 실행되는 실행 단위이다.
- 즉, 스레드를 이용하여 다수의 request를 처리할 수 있다.
- 하지만, 스레드를 매번 생성하는 것은 비효율적이기 때문에 스레드 풀을 이용하여 효율적으로 스레드를 관리할 수 있다.
- 스레드 풀은 미리 생성해 놓은 스레드를 재활용하여 작업을 처리하는 방식이다.
- 스레드 풀에 미리 생성해 놓은 스레드가 request를 받으면 해당 작업을 처리하고 다음 request를 대기하게 된다.
- 이렇게 함으로써, 스레드를 매번 생성하고 삭제하는 것보다 메모리 사용량도 감소시키고, 스레드 생성에 드는 비용도 줄일 수 있다.
- 따라서, 스레드와 스레드 풀을 이용하여 하나의 컨트롤러가 수많은 request를 처리할 수 있다.
'TIL ( Today I Learned )' 카테고리의 다른 글
2023-05-11 : Java (0) 2023.05.11 2023-04-28 : git (0) 2023.04.28 2022-09-07 : ReactJS (0) 2022.09.07 2022-08-24 : Git & Java (0) 2022.08.24 2022-08-23 : JAVA (0) 2022.08.23