Skip to content

[ 휴면 고객 전환 배치 프로그램 ] > 배치 개선 #6

@IMWoo94

Description

@IMWoo94

#2

휴면 고객 전환 배치 프로그램

문제점

  • 코드
    스크린샷 2024-02-28 오후 4 45 58
    • 코드를 바라보면 JobExecution[ 작업 결과 ], BatchExecute[ 배치 실행 ] 2 가지의 역할을 하는 것을 볼 수 있다.
    • BatchExecute 자세히 들어가면 Read, Processe, Write 3 가지의 역할이 있습니다.
    • 하나의 작업에서 여러 관심사를 가지는 것을 알 수 있습니다.
    • 작업이 하나가 아닌 여러 작업이 존재한다면 모든 배치 작업 마다 동일 로직이 들어가고 관리 포인트가 늘어나게 됩니다.
  • 결론적으로 하나의 작업에서 여러 관심사를 가지고 있으며, 확장성이 좋지 않다는 것을 알 수 있다.

결론

  • 여러 관심사
    • 이해하기 어렵고, 수정하기 어렵다
  • 확장하기 어려운 구조
    • 불필요 중복 코드 발생, 유지보수 악영향

개선 방안

  • 구조
    Untitled

  • Job

  • Business [ Tasklet ]

    • Reader
    • Processor
    • Writer
  • 전/후 처리기

객체 지향 개발 5대 원리로 바라보기.

  • 단일 책임 원칙 ( SRP ) - 클래스나 모듈을 변경할 이유는 단 하나, 하나뿐이여야 한다.

    • 기존의 설계는 여러 관심사에 의해서 여러 이유로 변경이 되었습니다.
      리팩토링을 거치면서 하나의 관심사를 가지게 되고 하나의 관심에 의해서 변경이 가능하게 됩니다.
  • 개방 폐쇄 원칙 ( OCP ) - 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
    Untitled

    • 각각의 구현체는 사용자의 입맛대로 확장이 가능합니다.
      아이템 3 개의 인터페이스가 확장 된다고 해서 Tasklet 에는 영향이 없습니다.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions