캐시에 저장된 데이터를 유효하지 않은 데이터로 마킹하는 작업. 다음 요청이 왔을 때, 유효하지 않은 데이터는 반드시 캐시-미스 로 다루고, 원본 저장소에서 값을 재생성 하도록 해야한다. 즉 캐시 무효화는 캐시에서 데이터를 제거하여 캐시를 무효화하는 프로세스이다. 캐시된 데이터는 실제 원본 데이터가 아니다. 원본 데이터는 DB 에 있거나, 서비스가 생성해야 한다. 문제는 DB 의 데이터가 변경되는 경우 발생하는데 이 경우 캐시된 데이터는 더 이상 유효하지 않다. 캐시 무효화 전략이 필요한 이유 : 웹 브라우저가 GET 요청을 받을 경우 캐시 헤더 없이도 최적화를 위해 임의로 캐싱을 합니다.리소스의 캐시 유효 기간을 장기간으로 설정해 오래된 정보가 표시되는 경우가 있을 것입니다. 이 경우 해당 캐시를 무효..
Cache캐시는 자주 사용되는 데이터나 연산 결과를 임시로 저장하는 고속의 저장 공간을 의미한다. CPU 캐시, 웹 브라우저 캐시, 메모리 캐시 등이 있다. 캐시가 사용되는 대표적인 예시로 DP 알고리즘이 있다. 이전의 값을 저장할 때 캐시의 역할을 사용하고 있다. * 캐싱 : 나중의 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것. (행위) 또한 JPA 의 Entity Manager 또한 내부적으로 캐시를 통해 직접 데이터베이스에 접근하지 않고 1차 캐시에서 데이터를 가져와 성능적인 이점을 가져오고 있다. 그렇다면 이 결과는 어디에 미리 저장하는 것일까? 메모리 계층 구조 사진을 보면 이해할 수 있다. 조금 더 쉬운 예시로 맥북을 생각해보자. M2Pro CPU - 12MB Cache Memory..
1. Flyway란 무엇인가?Flyway는 데이터베이스 스키마의 버전 관리를 자동화하는 오픈 소스 도구이다. 소프트웨어 개발 과정에서 데이터베이스 구조는 자주 변경되며, 이러한 변경 사항을 체계적으로 관리하지 않으면 예기치 않은 문제가 발생할 수 있다. Flyway는 이러한 데이터베이스 변경 사항을 손쉽게 관리할 수 있도록 돕는다.2. Flyway의 주요 기능버전 관리 : Flyway는 데이터베이스 스키마의 변경 사항을 파일로 관리하며, 각 변경 사항에 대해 고유한 버전을 부여한다. 이로 인해 언제, 어떤 변경이 이루어졌는지 명확하게 추적할 수 있다.자동화된 마이그레이션 : Flyway는 애플리케이션이 시작될 때 자동으로 데이터베이스 마이그레이션을 수행한다. 이는 새로운 버전의 스키마로 자동 업그레이드를..
서로 다른 EC2 인스턴스와 각 패밀리의 목표 워크로드 파악가성비를 최적화하는 EC2 인스턴스 유형 선택 방법최신 인스턴스 유형 이해의 장점에 대한 논의Intro이 과정에는 Amazon EC2의 기능, 인스턴스 유형, 요금을 이해하고 구분하는 데 도움이 되는 시나리오가 실려 있습니다. 본 시나리오는 가상의 인물 John Stiles가 Amazon EC2에 대한 지식을 쌓아 가면서 이 서비스를 이용해서 어떻게 온프레미스 워크로드를 AWS 클라우드로 옮길 수 있는지 배우는 과정을 그렸습니다. 워크로드가장 기본적으로 컴퓨터에서 실행할 수 있는 모든 작업, 처리 작업, 프로그램 또는 애플리케이션을 설명하는 용어일반적인 컴퓨팅에서 워크로드 관리는 컴퓨팅 리소스를 특정 작업에 할당하는 것 오늘은 John이 Ama..
MOM (Message Oriented Middleware)MOM 은 어플리케이션들의 메시지를 중간에서 관리해주는 시스템비동기 방식으로 메세지를 전달한다.메세지를 발행하는 Publisher (Producer), 소비하는 Subscribe (Consumer)로 구성되어 있다. 메시지 브로커pub(송신자)가 생성한 메세지를 , 메시지 큐에 저장하고, 저장된 데이터를 sub(송신자)가 가져갈 수 있도록 중간 다리 역할을 한다.Publisher(송신자)로부터 전달받은 Message(메세지)를 동일한 Topic의 Subscriber(수신자)로 전달해주는 중간 역할.메세지가 적재되는 공간을 Message Queue(메시지큐), 메시지의 그룹을 Topic(토픽) 이라고 한다. 메시지 브로커의 제일 큰 특징은 co..
Latency alone is not a deciding factor. If the volume of messages is relatively low (e.g. monitoring network failures) HTTP streaming or polling may provide an effective solution. It is the combination of low latency, high frequency and high volume that make the best case for the use WebSocket. https://docs.spring.io/spring-framework/docs/5.0.4.RELEASE/spring-framework-reference/web.html#websock..