[250410] Notification 리팩토링 & 실행 구조 정리

트라이캐치·2025년 4월 10일

출퇴근미니스터디

목록 보기
4/23
post-thumbnail

✅ 설계 방향 요약

  • Noticefication실행 책임만 담당 (action(factory))
  • NotiHandlerFactoryPre / Transmit / Post 핸들러 조립 책임
  • NotiHandler는 내부에 파이프 구조 (NotiWorkPipe) 주입
  • 각 파이프는 NotificationPreprocessor 전략 목록으로 구성됨

🏗️ 실행 흐름 요약

App.main()NotiHandlerFactory 생성  
    → PreNotiHandler (JsonParsingWorker)TransmitHandler (MailFilter)PostHandler (SaveFileWorker)Noticefication 생성  
  → noticefication.action(factory)

💡 핵심 설계 패턴 활용

패턴적용 위치
팩토리 패턴핸들러 조립 (NotiHandlerFactory)
전략 패턴각 단계별 파이프 처리기 (NotificationPreprocessor)
템플릿 메서드 느낌추상 NotiHandler.handle() 구조
파이프라인NotiWorkPipe.execute() 처리 흐름

📦 주요 클래스 구성

클래스책임
Noticefication전체 실행 제어 (action)
NotiHandlerFactoryHandler 조립 팩토리
NotiHandler<T, U>단일 처리 단계 (Pre/Transmit/Post)
NotiWorkPipe<T, U>순차 실행 흐름 조립기
NotificationPreprocessor<T, U>실질 처리 전략
App실행 진입점 + 예시 구성

🔄 기존 소스 vs 리팩토링 후 구조 비교

항목기존 구조리팩토링 후 구조개선 효과
핸들러 조립Noticefication 내부에서 직접 생성NotiHandlerFactory에서 조립 후 주입단일 책임 원칙(SRP) 실현, 유지보수 향상
핸들러 계층NotiHandler 인터페이스 수준 정의NotiHandler 추상 클래스 → Pre/Transmit/Post 상속책임 분리 명확, 흐름 확장 유리
워크플로우 표현List<Worker> 흐름 불명확NotiWorkPipe + NotificationPreprocessor 파이프 구조 명시실행 흐름 시각화 및 유연화
실행 오케스트레이터Noticefication이 생성+실행 모두 담당실행만 담당 (action(factory))단일 역할 집중으로 테스트 및 확장 용이
출력 전략없음 또는 핸들러 내부 처리PostNotiHandler에서 전략화 가능성 열림분리 가능한 처리 전략 구성 기반 마련

0개의 댓글