CodeSOD: 이 하나를 위한 바 찾기 노트

CodeSOD: 이 하나를 위한 바 찾기

이 텍스트는 Foo와 Bar 엔티티 간의 데이터를 동기화하는 데 사용되는 잘못 설계된 "데이터 펌프" 애플리케이션을 비판합니다. 이 애플리케이션은 Quarkus로 작성되어 레거시 시스템과 상호 작용하는 야간 배치 작업을 포함합니다. 배치 작업의 주요 기능은 Foo 엔티티를 기반으로 Bar 엔티티를 식별하고 업데이트하는 것입니다. 코드는 누락된 Bar 엔티티를 필터링하는 대신 모든 Foo 엔티티를 검색하여 비효율적입니다. 핵심 문제는 여러 웹 서비스 호출을 수행하는 트랜잭션 내에서 업데이트 프로세스에 있습니다. 이 설계는 타임아웃, 경합, 데이터베이스 연결 고갈을 포함한 성능 문제를 야기합니다. 오래 지속되는 트랜잭션의 사용, 웹 서비스 호출 수, 적절한 연결 풀 구성의 부족이 모두 이러한 문제에 기여합니다. 저자는 트랜잭션을 수동으로 관리해야 하는 필요성과 웹 서비스의 불안정성을 비판합니다. 근본적인 문제는 참조적으로 불안정한 데이터를 생성하는 배치 작업 접근 방식 자체입니다. 저자는 재설계를 통해 배치 작업을 완전히 제거하여 상황을 개선할 것이라고 밝혔습니다. 텍스트는 패키지 관리 플랫폼 광고로 마무리됩니다.