트랜잭션을 위한 SAGA 패턴
개발/Java2024. 11. 21. 17:23트랜잭션을 위한 SAGA 패턴

개요SAGA 패턴은 마이크로서비스 아키텍처에서 분산 트랜잭션을 관리하기 위한 패턴입니다. 각 서비스의 로컬 트랜잭션을 순차적으로 처리하고, 문제 발생 시 보상 트랜잭션을 통해 일관성을 유지하는 방식으로 동작합니다. 1. 왜 SAGA 패턴이 필요한가?1.1 분산 트랜잭션의 문제점마이크로서비스 아키텍처에서는 하나의 작업이 여러 서비스에 걸쳐 발생하며, 각 서비스는 독립적인 데이터베이스를 가지므로 전통적인 ACID 트랜잭션을 적용하기 어렵습니다. 이로 인해 데이터 일관성을 보장하기 위한 새로운 방법이 필요합니다.1.2 SAGA 패턴의 장점장애 격리 (Failure Isolation): 각 서비스의 로컬 트랜잭션 실패가 전체 시스템에 영향을 최소화.서비스 간 느슨한 결합: 각 서비스는 이벤트나 중앙 오케스트레이..

클린 아키텍처 도입을 위한 SOLID 원칙 복습
개발/Java2024. 10. 1. 12:35클린 아키텍처 도입을 위한 SOLID 원칙 복습

개요우리는 왜 클린아키텍처를 도입해야 할까요?  클린 아키텍처는 코드를 더 유지보수하기 쉽고, 확장 가능하며, 테스트하기 좋게 만들어줍니다. 그 이유는 크게 두 가지 입니다. 설명에 앞서 일단 객체지향의 설계 5원칙 "SOLID" 에 대해서 알아 볼 필요가 있습니다.(저도 다시 복습 해보고자...)   SOLID 원칙이란? 객체 지향 설계의 다섯 가지 핵심 원칙소프트웨어 개발에서 중요한 목표 중 하나는 유지보수성, 확장성, 그리고 코드의 재사용성을 높이는 것입니다.이를 달성하기 위해서 SOLID 원칙이 제시되었습니다. SOLID는 소프트웨어 설계 원칙들의 약어로, 각 원칙은 객체 지향 프로그래밍에서 모듈을 더 유연하고 확장 가능하게 만들기 위해 제안되었습니다. 이 글에서는 SOLID 원칙이 무엇인지,각 ..

Java 애플리케이션에서 로깅 구현하기 (feat. SLF4J)
개발/Java2024. 7. 12. 15:43Java 애플리케이션에서 로깅 구현하기 (feat. SLF4J)

이번 포스팅에서는 java 어플리케이션에서 로깅을 구현하는 방법을 소개하겠습니다. 1. SLF4J와 Log4j의 차이SLF4J (Simple Logging Facade for Java)SLF4J는 Java에서 사용하는 로깅 프레임워크의 인터페이스 역할을 하는 라이브러리입니다. SLF4J는 다양한 로깅프레임워크 (예: Log4j, Logback, JUL)를 추상화하여, 개발자가 특정 로깅 프레임워크에 종속되지 않고 코드에서 로깅을사용할 수 있도록 도와줍니다. SLF4J를 사용하면 나중에 로깅 프레임워크를 쉽게 교체할 수 있습니다. Log4j (Apache Log4j)Log4j는 Apache에서 개발한 Java 기반의 로깅 라이브러리입니다. Log4j는 설정 파일을 통해 다양한 방식으로 로그를남길 수 있으며..

image