1. Refresh 토큰 저장 방식 Refresh Token은 Access Token을 재발급하기 위한 용도 Refresh Token을 쿠키에 저장하면 오히려 보안성만 떨어뜨리는 행위가 됩니다. 쿠키는 CSRF 공격에 취약하다는 점을 가지고 있어 좋지 않은 방법이라고 결론을 내렸습니다. 마찬가지로 Refresh Token을 세션 스토리지에 저장하는 것도 XSS 공격의 취약성을 가지고 있습니다. 따라서 Refresh Token을 Redis에 저장하는 방식을 채택했습니다.출처 : https://byungil.tistory.com/309 1.1 Redis 저장 방식의 장점 Key - Value 방식, 인메모리 DB 방식으로 빠르게 접근할 수 있음.브라우저에 비해 탈취 가능성이 낮다고 생각하는 redis 서버에..
1. JWT JWT 개념 | Notion1. JWTchanmin-study-log.notion.site 1.1 application.yml, build.gradle 설정하기 jwt: secret: ${JWT_SECRET_KEY} access-token-validity: ${JWT_ACCESS_TOKEN_TIME} refresh-token-validity: ${JWT_REFRESH_TOKEN_TIME} secret key와, 액세스 토큰 만료시간, 리프레시 토큰 만료 시간을 yml에 지정 secret key 값은 중요한 정보이니만큼 github로 관리하지 않고, 별도로 다른 파일에 설정해 주는 것이 좋음 # jwt build.gradleimplementation 'io.jsonwebtoken:jj..
1. 카카오 로그인 과정 1.1. 인가 코드 받기카카오 인증 서버로 /oauth/authorize URI로 GET 요청을 보냄카카오 인증 서버에서 클라이언트에게 카카오 로그인 페이지를 통해 로그인을 요청함사용자는 카카오계정으로 로그인카카오계정이 유효한 경우 카카오 인증 서버에서 클라이언트에게 동의 화면을 통해 사용자 정보 수집 동의를 요청함.클라이언트가 동의한 항목을 카카오 인증 서버에게 요청함.카카오 인증 서버에서는 302 Redirect URI로 서비스 서버에게 인가 코드를 전달여기서 Redirect URI는 Kakao Developers - 내 애플리케이션 - 카카오 로그인에서 추가한 URI로 설정됨 💡 우리는 여기까지가 프론트에서 하는 일이라고 생각!! 1.2. 토큰 요청하기 서비스 서버로 받..
1. Spotless여러 개발자가 협업하는 환경에서 코드 컨벤션을 지키고 쉽게 유지보수하기 위해 사용하는 플러그인 컨벤션이 지켜지지 않을 경우 build가 실패함으로 여러 개발자가 컨벤션을 지킬 수 있게 됨 2. Spotless 적용 2.1 Install plugins { id 'com.diffplug.spotless' version '6.23.3'}build.gradle에 플러그인 적용 2.2 Setting spotless { java { // import 순서 정의 importOrder( "java", "javax", "lombok", "org.springfram..
1. 캐시를 사용하는 상황 쓰기보다 조회가 많이 일어나는 상황 평균 평점, 총 리뷰 수에 캐시를 사용하기 때문에 쓰기 연산보다 읽기 연산이 많이 발생 2. 쓰기 정책 : Write Through 전략은? 캐시와 백업 저장소에 업데이트를 같이 하여 데이터 일관성을 유지할 수 있어서 안정적 쓰기 작업이 많은 시스템이라면 눈에 띄는 지연을 유발 3. 쓰기 정책 : Write Back 전략은? Write-Back은 우선 캐시 메모리에만 데이터를 Write 하여 사용하다가 캐시 메모리가 새로운 데이터 블록으로 교체되는 때에 (다른 Tag를 가진 데이터가 캐시 블록에 할당될 때) 데이터를 주기억장치에도 저장하는 정책캐시 메모리에 있는 데이터를 여러 번 Overwrite하여 사용한 다음, 캐시 메모리가 해제되는 때에..
1. NoSQL이란? 기존 RDBMS 방식을 탈피한 데이터베이스를 의미 기존의 관계형 DB가 가지고 있는 특성뿐만 아니라 다른 특성들을 부가적으로 지원 RDBMS가 가지고 있는 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 가지고 있음 문서, 그래프, 키 값, 인 메모리, 검색을 포함해 다양한 데이터 모델을 사용 1.1 NoSQL 특징DBMS와 달리 데이터 간의 관계를 정의하지 않음RDBMS에 비해 훨씬 더 대용량의 데이터를 저장할 수 있음반정형화, 비정형화된 데이터에 적합분산형 구조이고 확장성이 뛰어남고정되지 않은 테이블 스키마를 가짐 2. Redis란? Remote Dictionary Server의 약자로, 원격 Dictinary 자료구조 서버. 레디스는 세계에서 가장 인기 있..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.