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..
가상환경 (Virtual environment)같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경. 각 프로젝트마다 가상환경을 만들고, 그 안에 필요한 패키지를 설치해주면, 필요한 버전이 다르거나 두 패키지가 충돌을 일으키는 등의 문제 없이 관리를 할 수 있다. 가상환경은 기본적으로 Python 에서 제공하는 도구(ex)'venv') 를 이용하여 생성하나, 다른 플랫폼에서도 유사한 개념을 가진 도구를 제공한다. Node.js의 npm과 yarn 이나 Java의 Gradle 과 같이 의존성을 관리하는 이들의 역할이다. 가상환경과 의존성 관리 도구의 차이점가상환경 : python의 가상..