CS (6) 썸네일형 리스트형 레디스 - 캐시 전략 패턴 https://lob-dev.tistory.com/77 Redis : Cache Strategy pattern이 글은 특정 구현에 종속되는 내용을 제외한 이론 위주의 정리 글입니다. 그림에는 Redis가 표시되어 있지만 Ehcache, Memcached, Hazelcast, Caffeine Cache 등 다양한 구현체로 이를 구현할 수 있습니다. Readlob-dev.tistory.com본 게시글은 위 게시글을 정리하여 쓴 글입니다.Look Aside Cache 서비스에 사용자 조회 요청이 들어오면 우선 Cache에 저장된 데이터가 있는지 확인하는 전략이다. 초반 Cache 성능 향상 및 트래픽 급증 대비를 위해 (Cache miss 감소) cache warm up을 수행하는 것이 좋다. 이 방식은 Ca.. TLB란 무엇인가? 1. TLB란 무엇인가?TLB (Translation Lookaside Buffer) 는 페이지 테이블의 일부를 캐싱해두는 하드웨어 캐시 메모리 CPU는 메모리 접근 시 다음 단계를 거친다.가상주소 -> 페이지 테이블 탐색 -> 물리 주소메모리 접근을 여러 번 하므로 느리다. 그래서 CPU 근처에 TLB를 두어 변환 결과를 캐싱한다. 2. TLB를 쓰면 왜 빨라지나요?TLB가 없으면 매번 페이지 테이블을 메모리에서 탐색해야 한다.페이지 테이블 탐색은 보통 2~3회 이상의 메모리 접근이 필요하다. TLB 사용 시,최근에 변환했던 주소 매핑이 TLB에 저장TLB Hit 시, 변환 과정 생략 -> 바로 물리주소 접근메모리 접근 1회로 끝남. 3. MMU란 무엇인가요?MMU (Memory Management U.. 쿠키와 세션의 차이 쿠키(Cookie)와 세션(Session)의 차이저장 위치클라이언트(브라우저)서버보안성낮음 (노출 가능)높음 (서버 관리)속도빠름 (로컬에 있음)느림 (서버 접근 필요)만료 시점설정된 시간 후 자동 만료브라우저 종료 or 세션 타임아웃사용 목적사용자 정보 유지, 자동 로그인로그인 상태 유지, 사용자 인증 관리 세션 방식의 로그인 과정(1) 클라이언트 -> 서버: ID/PW 전송(2) 서버 : 사용자 인증 성공 -> 세션 생성(3) 서버 : 세션 ID 발급 -> 쿠키에 담아 클라이언트로 전송(4) 클라이언트 : 이후 요청 시 쿠키에 세션 ID 포함(5) 서버 : 세션 ID 확인 -> 해당 사용자 정보 로드 -> 인증 유지 HTTP의 특성 — StatelessHTTP는 Stateless(무상태성) 프로토콜서.. Schema가 무엇인가요? Schema란 무엇인가?스키마는 데이터베이스의 전체 구도(설계도)를 의미한다.데이터가 어떤 구조로 저장되고, 어떤 관계를 가지며, 어떤 제약 조건이 있는지를 정의한 논리적 구조이다. Schema의 3계층 구조 이 개념은 DB를 논리적/물리적 독립성을 위해 세 단계로 나눈 모델이다. 외부 스키마(External Schema): 사용자나 응용 프로그램이 보는 DB의 일부분(View), 사용자별 맞춤 뷰 제공 (학생은 성적만, 교수는 반 전체 성적)개념 스키마(Conceptual Schema): DB 전체의 논리적 구조, 모든 데이터와 관계 정의, 전체 DB의 논리적 설계(엔티티, 관계 등 ERD 수준)내부 스키마 (Internal Schema): 데이터가 실제로 물리적으로 저장되는 방식, 물리적 저장구조 정.. 트래픽이 높아질 때, DB는 어떻게 관리를 할 수 있을까 트래픽이 높아질 때 DB가 겪는 문제트래픽이 많아질수록 DB는 다음과 같은 부하를 받습니다. 1. 동시 커넥션 (Connection) 증가여러 클라이언트가 동시에 DB에 연결을 시도할 때 발생하는 문제DB는 요청마다 세션과 스레드를 생성하여 요청을 처리한다.동시 사용자가 많아질수록 DB가 관리해야 할 세션/스레드가 기하급수적으로 늘어난다.CPU 스레드 컨텍스트 스위칭이 잦아져 오버헤드 증가각 커넥션마다 메모리를 차지일정 커넥션 수가 넘으면 DB가 Connection Queue에 대기시킴 -> 지연 발생2. 쓰기/읽기 I/O 부하디스크와 메모리 간의 입출력 처리 속도가 한계에 부딪히는 현상. 트래픽이 폭주하면 디스크 I/O 큐가 꽉 차면서 병목이 생긴다.HDD 환경에서는 랜덤 I/O 속도가 급격히 떨어진다.. DB Locking에 대하여 DB Locking이란?Locking은 여러 트랜잭션이 동시에 같은 데이터를 읽거나 쓸 때, 데이터의 일관성을 보장하기 위해 DB가 데이터 접근을 제어하는 메커니즘이다. Lock의 종류Shared Lock(S-Lock): 읽기만 가능한 Lock. 여러 트랜잭션이 동시에 공유 가능Exclusive Lock(X-Lock): 쓰기 Lock. 해당 데이터에 대한 다른 접근(읽기/쓰기) 모두 차단Intention Lock: 상위 테이블 단위에서 하위 레벨 Lock 설정을 하기 위한 신호Row-level Lock: 특정 행에만 걸림(PostgreSQL, InnoDB)Table-level Lock: 전체 테이블 단위로 걸림 Optimistic Lock vs Pessimistic LockOptimistic Lock: .. 이전 1 다음