카테고리 없음

20240903Wed 💭스프링 개념 정리 (숙련) 2/2

ddh1713 2024. 9. 4. 20:26

Index

1. Bean 수동 등록
2. 인증과 인가
3. 쿠키와 세션
4. JWT (Json Web Token)
 

1. Bean 수동 등록

 

[1] @Autowired : 자동 주입

 

[2] @Primary 와 @Qualifier(" ")

@Primary : 넓은 범위의 설정
@Qualifier(" ") : 좁은 범위의 설정. 좀 더 효율적으로 사용 가능

 

 

2. 인증과 인가

 

[1] 인증 (Authentication) : 해당 유저가 실제 그 유저가 맞는지 확인하는 절차

[2] 인가 (Authorization) : 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인, 즉 접근 권한이 있는지 확인

 

서버 - 클라이언트 구조에서, HTTP 라는 프로토콜을 이용하여 통신하는데, 그 통신은 비연결성(Connectionless) 무상태(Stateless)로 이루어진다. 비연결성은 서버와 클라이언트가 연결되어 있지 않다는 것이고, 무상태는 서버가 클라이언트의 상태를 저장하지 않는다는 것이다.

 

3. 쿠키와 세션

 

 

 

4. JWT (Json Web Token)

 

로드 밸런서 (Load Balancer)

Secret Key 통한 암호화 / 위조 검증 (복호화 시)

 

[1] JWT의 장단점

JWT의 장점
- 동시 접속자가 많을 때 서버 부하를 낮춤
- Client, Server가 다른 도메인을 사용할 때

 

JWT의 단점
- 구현의 복잡도가 증가
- JWT에 담는 내용이 커질 수록 네트워크 비용 증가 (클라이언트 ⇒ 서버)
- 이미 생성된 JWT를 일부만 만료시킬 방법이 없음
- Secret key 유출 시 JWT 조작 가능

 

JWT에는 민감한 정보(비밀번호 등)은 넣으면 안된다.

 

JWT Encoding / Decoding Link

http://jwt.io

Header / PayLoad / Signature

 

[2] JwtUtil : JWT 관련 메서드를 가져다 쓰는 클래스

public class JwtUtil {

	// JWT 생성
    
    // 생성된 JWT를 Cookie에 저장
    
    // Cookie에 들어있던 JWT 토큰을 Substring
    
    // JWT 검증
    
    // JWT에서 사용자 정보
    
}