코드스테이츠_국비교육/[Section4] 38

70.01_[Spring WebFlux] Project Reactor_22.11.30

>Project Reactor (Reactor) : 리액티브 스트림즈 표준 사양 구현체 중 하나(대표) : Spring Reacive Web Application을 만드는데 핵심적인 역할을 함. : Reactor 뿐 만 아니라 Spring WebFlux 를 사용. : 즉, Spring Reacive Web Application은 Reactor를 이용한 Spring WebFlux 기반의 Application이다. >Reactor 공식 홈 https://projectreactor.io/ >Reactor 특징 1. Reactive Streams를 구현한 리액티브 라이브러리 2. Non-Blocking 통신 지원 3. Mono[0|1] 과 Flux[N]이라는 두 가지 타입의 Publisher 지원 //Mono[..

69.01_[Spring WebFlux] 리액티브 프로그래밍_22.11.29

>명령형 프로그래밍, 선언형 프로그래밍 전통적인 개발 방식(기존) : 명령형 프로그래밍 리액티브 프로그래밍 : 선언형 프로그래밍 >리액티브 시스템이란? : 클라이언트의 요청에 반응을 잘하는 시스템(요청에 대해 즉각적으로 반응하는 시스템) >리액티브 시스템 관점에서의 반응이란? : Thread의 Non-Blocking과 관련있음. : 리액티브 시스템이 클라이언트의 요청 쓰레드를 차단하지 않음(Non-Blocking)으로써 응답 대기 시간을 최소화한다. >리액티브 시스템 용어 -MEANS : 리액티브 시스템에서 사용하는 커뮤니케이션 수단 -FORM : 메세지 기반 통신을 통해 리액티브 시스템이 어떤 특성을 가지는 구조로 형성되는지를 의미 -VALUE : 리액티브 시스템의 핵심 가치가 무엇인지를 표현하는 영역..

68.01_[Spring Security] OAuth2 인증_적용(SSR)_22.11.28

========================================= OAuth 2 을 사용한 애플리케이션 구현_기본편(SSR) ========================================= 1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' //타임리프 : HTML 화면 구성을 위한 템플릿 implementation 'org.springframework.boot:spring-boot-starter-security' //현재 만드는 OAuth 2 애플리케이션은 Spring Security 기반 애플리케이션 implementation 'org.springframework.boot:spring-b..

67.01_[Spring Security] OAuth2 인증_개요 및 동작 방식_22.11.25

>OAuth2란? : 신뢰할 만한 벤더(네이버, 카카오, 구글 등)에 사용자 인증 처리를 위임하는 인증 방식 >OAuth2를 사용하는 이유 : 다른 써드 파티 애플리케이션을 사용함에 있어서, 이중 로그인 혹은 이중 크리덴셜 관리를 피하기 위해 : 편의를 위해서 >OAuth2를 사용하는 애플리케이션 유형 1. 써드 파티 애플리케이션에서 제공하는 API 를 직접적으로 사용하는 애플리케이션 : 여기서 써드 파티 애플리케이션은 google, github, naver, kakao 등의 신뢰할 만한 벤더의 애플리케이션을 의미함. 2. 추가적인 인증 서비스 제공 용도 : 기존 인증 외의 신뢰할 만한 벤더의 써드 파티 애플리케이션이 제공하는 인증 서비스를 이용하는 용도로 사용. : 혹은 아예 인증 처리를 위임하기 위해..

66.02_[Spring Security]JWT_검증 기능 구현_22.11.24

JWT 검증 기능 구현 : HTTP Request header에 포함되어 전송되는 JWT를 request가 전송될 때마다 검증하는 기능을 구현하면 JWT 검증 기능을 구현할 수 있다. : 현재 로그인 인증을 성공적으로 수행하면 response header의 Authorization, Refresh로 JWT를 전달 받을 수 있음. ========================================== JWT 검증 기능 구현 ========================================== 1. 검증용 Filter 구현(JwtVerificationFilter) -OncePerRequestFilter 상속 : request 한 번당 OncePerRequestFilter를 한 번 거치기 때문에 ..

66.01_[Spring Security]JWT_인증 기능 구현_22.11.24

=============================== JWT 자격 증명을 위한 로그인 인증 구현 =============================== 1. SecurtyConfiguration 추가 : Spring Security 인증/보안 기능 추가 1.1. SecurityFilterChain 메서드 >HttpSecurity -headers -csrf -cors -formLogin -httpBasic -authorizeHttpRequests -and -build 1.2. PasswordEncoder 1.3. CorsConfigurationSource =============================== 2. 회원 가입 로직 수정 : Spring Security 적용 2.1. MemberDto..

65.02_[Spring Security]JWT_JSON Web Token_22.11.23

>JWT : JSON Web Token : JSON 포맷의 토큰 정보를 인코딩한 후, 인코딩 된 토큰 정보를 비밀키(개인키)로 서명한 메세지를 Web Token으로써 인증 과정에 사용 : Rest API 통신을 사용하는 백엔드 서버에 사용하기 적합한 자격 증명 방식 >JWT의 종류 1. Access Token 2. Refresh Token >액세스 토큰, Access Token : 사용자 정보에 접근할 수 있는 권한을 부여하는데 사용되는 토큰 : 액세스 토큰은 보안 위험성 때문에 유효 기간을 짧게 주어 오래 사용할 수 없다. >리프레시 토큰, Refresh Token : 새로운 액세스 토큰을 받기 위해 사용되는 토큰 : 액세스 토큰이 만료되면 리프레시 토큰으로 새로 액세스 토큰을 발급받고, 이를 통해 사..

65.01_[Spring Security]JWT_Session 과 Token_22.11.23

>HTTP 프로토콜 특징 HTTP 프로토콜은 request를 전송한 후, response를 수신하면 연결을 끊는 비연결성(Connectionless)과 reques와 response에 대한 상태를 저장하지 않는 비상태성(Stateless)이 특징이다. 이는 다양한 장점을 갖게하는 특징들이지만, 사용자에게 불편을 가져다준다. >세션 기반 자격 증명 방식 : 서버 측에 인증된 사용자의 정보를 세션(Session) 형태로 세션 저장소에 저장하는 방식 : Session은 서버측에는 세션 저장소에 저장되고, 클라이언트에는 쿠키로 저장된다. (클라이언트에는 세션 ID를 보낸다) : 양측의 세션이 확인되면 인증된 사용자라고 판단하여 정보 교환을 한다. >세션 기반 자격 증명의 특징 : HTTP 통신을 Stateful..