Spring Batch를 활용해 주간 상품 집계를 구현해보자
Spring Batch를 활용해 상품 집계를 구현기를 기록합니다.
총 25개의 글
Spring Batch를 활용해 상품 집계를 구현기를 기록합니다.
Redis를 활용해 랭킹 시스템을 개발합니다.
신뢰성있는 카프카 애플리케이션을 위해 어떤 것을 고려해야할지 고민해봅니다.
메세지와 이벤트가 어떻게 다른지 알아보고 적절한 사용처를 고민해봅니다.
안정적인 분산 시스템 운영을 위해 어떤 재시도 Backoff 전략과 복원 전략을 가져야할지 알아봅니다.
캐싱 전략에 따라 어떻게 사용하는 것이 좋을지 고민해봅니다.
낙관적락과 비관적락을 알아보고 성능을 비교하며 어떻게 사용하는게 좋을지 알아봅니다.
주문 서비스의 요구사항을 구현, 리팩토링해가며 객체지향적으로 책임을 분리하는 과정을 보입니다.
요구사항명세부터 시퀀스다이어그램까지 작성하면서 마주친 고민.
MockMvc와 TestRestTemplate의 차이점을 알아봅니다.
객체지향 개발자가 설정해 두기 좋은 Claude Code의 CLAUDE.md입니다.
도메인 중심 설계를 통해 인프라 변경에 영향받지 않는 비즈니스 로직을 만드는 방법입니다.
MongoDB의 16MB 문서 크기 제한을 극복하기 위해 GridFS를 활용한 대용량 데이터 저장 구현을 소개합니다.
Kafka Consumer Group의 파티션 할당 방식을 상세히 분석합니다.
GridFS는 MongoDB의 16MB 문서 크기 제한을 초과하는 대용량 파일을 저장하기 위한 메커니즘입니다.
프로필별 트래픽 제어와 우선순위 기반 처리를 위한 Kafka Custom Partitioner 구현 사례. 검색엔진의 부하 분산과 긴급 요청의 빠른 처리를 동시에 해결합니다.
레거시 시스템에서 신규 전처리 시스템으로 대용량 데이터를 마이그레이션한 경험을 공유합니다.
객체지향 설계의 핵심은 객체 사이의 의존성을 최소화하고 결합도를 낮추는 것입니다. 캡슐화를 통해 객체를 자율적인 존재로 만들고, 책임을 적절하게 분배하여 변경에 유연한 코드를 작성하는 방법을 배웁니다.
클래스보다 객체에, 객체보다 협력에 집중해야 합니다. 도메인 구조를 반영한 프로그램을 설계하고, 상속과 다형성을 통해 유연한 설계를 만들며, 합성을 활용하여 변경에 강한 코드를 작성하는 방법을 다룹니다.
역할, 책임, 협력은 객체지향의 핵심입니다. 협력이 객체의 행동과 상태를 결정하며, 정보 전문가에게 책임을 할당하는 책임 주도 설계(RDD) 방법으로 유연한 객체지향 시스템을 구축합니다.
데이터 중심 설계는 변경에 취약합니다. 객체의 상태보다 행동에 초점을 맞추고, 책임 중심으로 설계해야 높은 응집도와 낮은 결합도를 가진 유연한 코드를 작성할 수 있습니다.
GRASP 패턴을 통해 책임을 올바르게 할당하는 방법을 학습합니다. 정보 전문가, 낮은 결합도, 높은 응집도, 다형성, 변경 보호 패턴을 활용하여 유연하고 확장 가능한 설계를 만듭니다.
훌륭한 퍼블릭 인터페이스 설계 원칙을 다룹니다. 디미터 법칙, 묻지 말고 시켜라 원칙, 의도를 드러내는 인터페이스, 명령-쿼리 분리 원칙을 통해 유연하고 이해하기 쉬운 인터페이스를 만듭니다.
역할이 분리된 마이크로서비스에서 End to End 분산 추적을 위해 Datadog Trace Context를 추출 및 복원하는 방법을 소개합니다. RDB에 Trace Context를 저장하고 AOP를 활용한 어노테이션 기반으로 개선하여 비즈니스 로직에 집중할 수 있도록 구현했습니다.
로컬 개발 환경에서 Datadog APM을 설정하는 방법을 단계별로 설명합니다. dd-java-agent.jar 설치부터 Docker 기반 Datadog Agent 구성, 애플리케이션 환경 변수 설정까지 실제 적용 과정을 다룹니다.