인터넷강의로 spring 공부를 하다가 무상태성이라는 단어를 듣게 되었다. 스프링의 디자인 패턴은 디폴트가 싱글톤방식이다. 싱글톤이란, 메모리에 하나의 인스턴스만 존재하도록 생성하는 방식을 말한다. 이때 여러 쓰레드에서 같은 인스턴스의 전역변수에 접근을 하게된다면 같은 값을 공유하게 돼버린다. 생각만해도 정말 끔찍하다... 위와 같은 상황을 상태유지(Stateful)라고 하며 의도적으로 상태유지를 하는것이 아니라면, 스프링 빈은 항상 무상태(stateless)로 설계해야 한다. 무상태란 한번의 요청과 응답이 이루어지면 연결이 끊기는것을 의미한다. 상태유지와 무상태에 대해 알아보며 싱글톤에 대해도 다시한번 공부하게 되었고 정말 스프링을 잘 이해하고 코딩 해야한다고 생각했다. 통상적으로 서비스를 운영하다보면..
지금까지 static, final, static final에 대한 개념이 제대로 박혀있지 않았다.... 지금에서야 개념을 정리하고자 글을 작성한다. 일단 내 머릿속에 있는 static은 선언시 메모리영역에 저장되며 static이 선언된 값을 하나의 주소값으로 공유해서 쓴다? 그리고 final은 값을 변경할 수 없다. static final은 이 둘을 합친것???... 여기까지였다... 우선 JVM 메모리 구조가 어떻게 생겼는지 공부할겸 다른 블로그에서 퍼왔다... 자바 소스 파일은 자바 컴파일러에 의해 바이트 코드 형태인 클래스 파일로 변환되고 변환된 클래스 파일은 클래스 로더가 읽어들이면서 JVM이 수행된다고 한다. Class Loader JVM 내로 클래스 파일을 로드하고, 링크를 통해 배치하는 작업..
1.인증 필터가 요청을 가로챈다. 2.인증 책임이 AuthenticationManager(인증관리자)에 위임된다. 3.AuthenticationManager(인증관리자)는 인증 논리를 구현하는 AuthenticationProvider(인증공급자)를 이용한다. 4.AuthenticationProvider(인증공급자)는 UserDetailsService(사용자 세부 정보 서비스)로 사용자를 찾고 암호 인코더로 암호를 검증한다. 5.인증 결과가 필터에 반환된다. 6.인증된 엔티티에 관한 세부 정보가 SecurityContext(보안컨텍스트)에 저장된다.
블로그 참고 https://hunit.tistory.com/189 1. 클라이언트가 요청을 보내면 2. Dispatcher Servlet으로 요청을 받는다. 3. Handler Mapping에 해당 요청을 매핑한 Controller가 있는지 검색요청을 한다. 4. 매핑된 Controller가 존재한다면 클라이언트의 요청을 처리하고 결과를 보여줄 view의 이름을 Dispatcher Servlet으로 return 한다. 5. Dispatcher Servlet은 view의 이름을 View Resolver로 보내 해당 view를 검색한다. 6. view의 처리 결과를 Dispatcher Servlet으로 return한다. 7. Dispatcher Servlet은 클라이언트로 최종결과를 return한다.
pom.xml org.springframework.boot spring-boot-starter-security io.jsonwebtoken jjwt 0.9.1 -장정우님의 스프링 부트 핵심 가이드라는 책을 보고 정리하였습니다.- 1. 클라이언트로부터 요청을 받으면 서블릿 필터에서 SecurityFilterChain으로 작업이 위임되고 그중 UsernamePasswordAuthenticationFilter(위 그림에서는 AuthenticationFilter에 해당한다.)에서 인증을 처리한다. 2. AuthenticationFilter는 요청 객체(HttpServletRequest)에서 username과 password를 추출해서 토큰을 생성한다. 3. 그러고 나서 AuthenticationManager에게..