아웃박스 패턴 프로젝트 (Day 2): 주문 생성과 아웃박스 기록, 한 번에!
안녕하세요! 지난번에는 아웃박스 패턴을 활용하여 데이터 유실 없는 이벤트 기반 아키텍처를 구축하는 프로젝트의 전체적인 그림을 그려봤었죠. 오늘은 그 대장정의 첫걸음, Day 1: 기본 프로젝트 구조 설정 및 도메인 모델링을 함께 진행해 보겠습니다. 단단한 기반이 있어야 튼튼한 집을 지을 수 있듯이, 프로젝트의 초기 세팅과 핵심 도메인 모델링은 매우 ...
안녕하세요! 지난번에는 아웃박스 패턴을 활용하여 데이터 유실 없는 이벤트 기반 아키텍처를 구축하는 프로젝트의 전체적인 그림을 그려봤었죠. 오늘은 그 대장정의 첫걸음, Day 1: 기본 프로젝트 구조 설정 및 도메인 모델링을 함께 진행해 보겠습니다. 단단한 기반이 있어야 튼튼한 집을 지을 수 있듯이, 프로젝트의 초기 세팅과 핵심 도메인 모델링은 매우 ...
안녕하세요! 마이크로서비스 아키텍처에서 데이터 일관성과 이벤트 발행의 신뢰성을 보장하는 핵심 패턴인 ‘아웃박스 패턴(Outbox Pattern)’에 대해 얼마 전 다뤘었죠. 오늘은 그 아웃박스 패턴을 실제로 적용해보는 프로젝트를 시작하면서, 어떤 점들을 고민하고 어떻게 구현해 나갈지 함께 이야기해볼까 합니다. 이론을 넘어 실제 코드로 패턴을 적용해보고...
데이터 유실없이 이벤트 발행하기 : MSA 방식의 아웃박스 패턴! 안녕하세요. 지난번에는 마이크로서비스 아키텍처의 장점과 함께, 분산 시스템이 가져다주는 복잡성, 특히 ‘데이터 일관성’ 문제에 대해 잠깐 언급했습니다. 마이크로서비스 환경에서 서비스간의 통신은 대부분 비동기 이벤트 방식으로 이루어지는데, 이때 고민하는 문제중 하나가 ‘어떻게 하면 비동...
마이크로서비스 아키텍처: 작게 나누어 더 크게 성장하기! 안녕하세요! 요즘 IT 업계에서 가장 뜨거운 키워드 중 하나를 꼽으라면 단연 마이크로서비스 아키텍처(Microservices Architecture)가 아닐까 합니다. 많은 기업들이 마이크로서비스로 전환하고 싶어 하고, 개발자들도 이에 대한 관심이 뜨겁죠. 하지만 이 ‘마이크로서비스’가 정확히...
지연 로딩(Lazy Loading) vs 즉시 로딩(Eager Loading): 성능 최적화의 핵심 전략! 안녕하세요! 데이터베이스와 객체를 매핑해주는 ORM(Object-Relational Mapping) 프레임워크(예: JPA, Hibernate)를 사용하면서, N+1 문제, 성능 저하 같은 고민을 해보신 적 있나요? 이런 문제들의 핵심에는 바로...
자바 전형 백엔드 개발자에서 ORM 프레임워크인 JPA (Java Persistence API) 를 사용한다면, EntityManager라는 이름을 수도 없이 마주치셨을겁니다. 제가 지금 하고 있는 프로젝트는 Mybatis기반으로 JPA 를 사용하지 않지만요 실 프로젝트에서는 사용하지 않지만 JPA에 대한 공부와 사이드프로젝트에서 사용해본 내용을 정...
면접을 보면서 데이터베이스 격리 수준에 대한 질문을 받고 제대로 설명을 하지 못한 경험이 있어 격리 수준에 대해서 정리해보려고 합니다. 여러 사용자가 동시에 데이터베이스에 접근하여 데이터를 읽거나 쓰는 상황이 생길때 동시성 환경에서 데이터의 정확성을 지키는 것은 매우 중요합니다. 이때 핵심적인 역할을 하는게 격리 수준 입니다. 격리 수준은 쉽게 말...
스프링 같은 프레임워크에서 의존성 주입 이라는 용어를 많이 보셨을꺼에요. 의존성 주입 처음들으면 어렵고 복잡해보이지만, 사실 의존성 주입은 코드를 좀 더 유연하고 테스트하기 쉽게, 유지보수 하기 쉽게 만드는 아주 강력한 기법입니다. 의존성에 대해서 공부를 해보고 의존성 주입이 무엇이길래 코드를 유연하고 테스트하기 쉽다는지 한번 같이 확인해 봅시다. ...
개발을 하다 보면 new 키워드 말고도 List.of(), Optional.of(), Integer.valueOf() 같은 익숙한 메서드들을 보신 적 있을 거예요. 뭔가 객체를 생성하는 것 같은데, 왜 굳이 of 같은 형태로 만들어서 사용하는 걸까요? 오늘은 of 형태의 생성자가 왜 유용하고, 언제 써야 하는지 함께 알아보겠습니다! 1. 읽기 ...
신규 Deployment 생성하고 서비스 외부로 노출하는 yaml 을 작성하고 검증하는 내용