기존 코드의 소요 시간 측정 @Transactional(readOnly = true)public PostListDTO getPostPreviewList(final int page) { Pageable pageable = getPageable(page); return PostListDTO.toPostListDTO(postRepository.findAllByOrderByViewsDesc(pageable));}@Query("SELECT p FROM Post p ORDER BY p.views DESC")Page findAllByOrderByViewsDesc(Pageable pageable); 기존 코드를 통해서 인기 게시글 조회 소요 시간을 측정하게 되면 다음과 같은 결과가 나오게 된다. 동시에 발생한 요청이 ..
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. 캐시를 사용하는 상황 쓰기보다 조회가 많이 일어나는 상황 평균 평점, 총 리뷰 수에 캐시를 사용하기 때문에 쓰기 연산보다 읽기 연산이 많이 발생 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 자료구조 서버. 레디스는 세계에서 가장 인기 있..