오늘 공부한 것
* Spring 숙련주차 1주차 강의 듣기
Lv1 과제를 마치고 드디어 페어를 이루었다
페어분과 상의한 끝에 숙련주차 1주차 강의를 모두듣고
Lv2 과제를 시작하기로했다
Bean 수동등록 @Component를 사용하면 자동으로 스캔되어 해당 클래스를 Bean으로 등록해줌
기술적 문제나 공통 관심사 처리할 때 사용하는 객체들을 수동 등록하는 것이 좋다
1) 공통 로그처리와 같은 비즈니스 로직을 지원하기 위한 부가적이고 공통적인 기능들을 기술지원
Bean이라 부르고 수동등록함
2) 비즈니스 로직 Bean 보다는 그 수가 적기 때문에 수동으로 등록하기 부담스럽지 않다
3) 수동등록된 Bean에서 문제가 발생했을 때 해당 위치를 파악하기 쉽다
인증 해당 유저가 실제 유저인지 인증하는 개념
로그인은 인증
1) 쿠키 세션 방식 특정 유저가 로그인 되었다 는 상태를 저장하는 방식
인증과 관련된 아주 약간의 정보만 서버가 가지고 있게 되고 최소한의 정보는 저장해서 로그인을
유지시킴
2) JWT 기반 인증 인증에 필요한 정보들을 암호화시킨 토큰을 의미 쿠키/세션 방식과 유사하게 JWT토큰을
HTTP헤더에 실어 서버가 클라이언트를 식별
인가 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념
회원 비회원 여부에 따라 다른 권한을 받는것
예) 관리자 페이지, 관리자 권한
쿠키 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일
세션 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용
서버에서 클라이언트 별로 유일무일한 ‘세션 ID’를 부여한 후 클라인트별 필요한 정보를 저장
서버에서 생성한 ‘세션 ID’ 는 클라이언트의 쿠키값(세션 쿠키)으로 저장되어 클라이언트 식별에 사용됨
JWT JSON 포맷을 이용하여 사용자에게 대한 속성을 저장하는 Claim 기반의 Web Token 쿠키저장소를 사용하여 JWT
저장함
로그인 정보를 Server에 저장하지 않고 Client에 로그인 정보를 JWT로 암호화 하여 저장 -> JWT를 통해
인증 / 인가
모든 서버에서 동일한 Secret Key를 소유함 이를 통한 암호화 / 위조 검증
1) 장점 동시 접속자가 많을 때 서버측 부하 낮춤
Client, Sever 가 다른 도메인을 사용할 때
2) 단점 구현의 복잡도 증가
JWT에 담는 내용이 커질수록 네트워크 비용 증가
기 생성된 JWT를 일부만 만료시킬 방법이 없고 Secret key 유출시 JWT 조작가능
암호화 복호화가 불가능한 단방향 암호 알고리즘을 사용해야함
1) 양방향
(1) 암호화 : 평문 → (암호화 알고리즘) → 암호문
(2) 복호화 : 암호문 → (암호화 알고리즘) → 평문
2) 단방향
(1) 암호화 : 평문 → (암호화 알고리즘) → 암호문
(2) 복호화 : 불가
boolean matches(CharSequence rawPassword, String encodedPassword);
rawPassword 사용자가 입력한 비밀번호 encodedPassword : 암호화되어 DB 에 저장된 비밀번호
'항해99' 카테고리의 다른 글
23.09.01 항해 99 16기 주특기 Spring 7일차 (0) | 2023.09.01 |
---|---|
23.08.31 항해 99 16기 주특기 Spring 6일차 (0) | 2023.08.31 |
23.08.29 항해 99 16기 주특기 Spring 4일차 (0) | 2023.08.29 |
23.08.28 항해 99 16기 주특기 Spring 3일차 (0) | 2023.08.28 |
23.08.21~08.27 항해 99 16기 2주차 회고록 (0) | 2023.08.27 |