데이터 정합성 검사를 위한 Spark 잡 설계, 컴포넌트 분리 및 디자인 패턴 적용 사례
by DD
10개월 전
조회수 10
Spark 잡을 활용하여 CDC 파이프라인의 데이터 정합성 검사 시스템을 구축함
Reader, Translator, Comparator, Reporter 컴포넌트 분리를 통해 유연한 아키텍처를 설계함
JSON 기반 설정 및 템플릿 메서드 패턴 적용으로 확장성과 유지보수성을 확보함
유연한 아키텍처 설계를 위한 컴포넌트 분리
정합성 검사 시스템은 Reader, Translator, Comparator, Reporter로 구성된다. Reader는 데이터 소스별 읽기 방식을 추상화하고, Translator는 데이터 타입 변환을 담당한다. Comparator는 데이터셋 비교를 수행하며, Reporter는 결과를 보고한다. 따라서 각 컴포넌트의 역할 분담을 통해 확장성과 유지보수성을 확보했다.
JSON 기반 설정과 디자인 패턴 적용
JSON 설정을 통해 잡(Job)의 동작 방식을 유연하게 제어한다. DatasourceConfig를 추상 클래스로 정의하고, Jackson의 다형성 직렬화를 활용하여 데이터 소스별 설정을 관리한다. 템플릿 메서드 패턴을 적용하여 공통 로직과 세부 구현을 분리하고, 전략 패턴을 통해 Translator의 확장성을 높였다.
코드 스타일 자동화 및 협업 효율 증대
scalafmt와 scalafix를 사용하여 코드 스타일을 자동화하고, Pre-commit hook을 통해 커밋 시 자동 적용되도록 설정했다. 따라서 코드 스타일 일관성을 유지하고, 협업 과정에서 발생하는 코드 리뷰 시간을 단축했다. 결과적으로 코드 가독성과 유지보수성을 향상시켰다.
댓글 0
첫 번째 댓글을 남겨보세요!