본 글은 2PC와 SAGA패턴에 대해서 공부한 지식을 정리한 글입니다.전통적인 모놀리식 아키텍처에서는 애플리케이션의 모든 기능이 하나의 애플리케이션 내에서 구현되며, 데이터베이스 트랜잭션은 단일 데이터베이스에서 처리됩니다. 이 구조에서는 트랜잭션 관리가 비교적 간단하며, commit이나 rollback을 트랜잭션의 원자성, 일관성, 격리성, 지속성(ACID 속성)을 보장하는 것이 수월합니다. 모놀리식 아키텍처의 데이터베이스는 일관된 상태를 유지하기 쉬운 반면, 애플리케이션이 커지고 복잡해지면서 성능과 유지보수에 어려움을 겪을 수 있습니다. 반면, 마이크로서비스 아키텍처(MSA)에서는 애플리케이션을 독립적인 서비스들로 나누어 개발하고 운영합니다. 각 서비스는 자신만의 데이터베이스를 가지고 있으며, 서비스 ..
본 글은 @Builder 어노테이션의 acces 옵션에 대해서 공부한 지식을 정리한 글입니다. @Builder는 롬복(Lombok) 라이브러리의 어노테이션으로, 빌더 패턴을 자동으로 생성해 주어 복잡한 객체 생성 로직을 간편하게 만들어 줍니다. @Builder 어노테이션에 대한 설명은 아래의 포스팅에서 확인가능합니다.▼ [Spring boot] @Builder 어노테이션의 장점객체를 객체를 생성하는 방법은 여러 가지가 있습니다. 각 방식은 특정 상황에서 유리하게 작용하며, 코드의 가독성, 유지보수성, 불변성 등에 영향을 미칩니다. 이번 포스팅에서는 자바에서pixx.tistory.com @Builder 옵션@Builder 어노테이션에는 여러 가지 옵션이 있으며, 이를 통해 빌더 패턴의 동작을 조정할 수..
본 글은 캐싱 전략에 대해서 공부를 한 지식을 정리한 글입니다. 캐싱 전략은 데이터나 결과를 저장하여 반복적인 요청이나 계산을 더 빠르게 처리할 수 있도록 하는 방법론입니다. 효과적인 캐싱 전략을 사용하면 애플리케이션의 응답 속도를 개선하고, 서버의 부하를 줄일 수 있습니다. Cache의 기본 개념캐시(Cache)원본 데이터 저장소가 아닌 다른 장소에 데이터를 저장하는 시스템입니다.캐시는 속도와 성능을 높이기 위해 자주 접근되는 데이터를 빠르게 제공할 수 있습니다. 그러나 캐시는 휘발성 메모리나 제한된 저장 공간을 사용하기 때문에 언제든지 사라질 수 있으며, 저장할 데이터 양이 너무 크지 않도록 관리해야 합니다.캐시 적중(Cache Hit)캐시에 접근했을 때, 요청한 데이터가 캐시에 존재하는 경우를..
Docker는 컨테이너화된 애플리케이션을 손쉽게 배포하고 관리할 수 있는 강력한 도구입니다. 단일 컨테이너를 다룰 때는 관리가 간단하지만, 여러 개의 컨테이너를 사용할 때는 문제가 발생할 수 있습니다. 여러 컨테이너가 서로 상호작용하며 네트워크를 통해 연결되고, 각 컨테이너가 사용하는 포트와 환경 변수를 모두 고려해야 하기 때문에 관리가 복잡해질 수 있습니다. 이러한 상황에서 Docker Compose는 매우 유용한 도구가 됩니다. Docker Compose란❓ Docker Compose는 멀티 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 오케스트레이션(Orchestration) 도구입니다. 여러 개의 Docker 컨테이너를 하나의 YAML 파일로 정의하고, 단일 명령어로 이들을 관리할 ..