Skip to content

[Refactor/#12] Excel 서버 RabbitmqConfig, Producer, Consumer 수정

김우용 requested to merge refactor/#12 into dev

📋 구현 내용

RabbitmqProperty 객체를 통해 설정 파일(.yml)의 RabbitMQ 프로퍼티들을 관리하도록 수정 및 Producer, Consumer 인터페이스로 추상화

  • 분리되어 있던 RabbitMQ 관련 프로퍼티 하나의 prefix로 통합
rabbitmq:
  host: ${RABBITMQ_HOST}
  port: ${RABBITMQ_PORT}
  username: ${RABBITMQ_USER}
  password: ${RABBITMQ_PASSWORD}
  exchange:
    file-create-progress-exchange: ${FILE_CREATE_PROGRESS_EXCHANGE}
  queue:
    file-create-request-queue: ${FILE_CREATE_REQUEST_QUEUE}
  listener:
    concurrency: ${LISTENER_CONCURRENCY}
    max-concurrency: ${LISTENER_MAX_CONCURRENCY}
    prefetch: ${LISTENER_PREFETCH}
  • RabbitmqProperty 구현
    • 기존 @Value placeholder, SpEL 방식의 문제점
      • @Value 방식을 통한 외부 설정값 주입은 타입 안정성 보장이 되지 않음
      • 설정값이 추가 및 변경될 때마다, 설정 파일에서 작성한 값들을 사용하는 클래스 내에서 일일히 동일하게 작성해야 한다는 번거로움 발생
  • Producer, Consumer 인터페이스 추가
  • Producer, Consumer 구현 클래스 추가(FileCreateProgressProducer, FileCreateRequestConsumer)
  • Producer, Consumer, DTO 클래스 네이밍 통일

🔍 테스트 케이스

  • 없음

📢 코멘트

  • 설정 파일의 RabbitMQ 프로퍼티들을 RabbitmqProperty에서 inner class로 매핑하였는데 더 좋은 방법이나 의견이 있으시면 코멘트 부탁드립니다.
  • API 서버 설정 파일도 동일하게 변경할 예정입니다.

@Aiden @Endo @Tobi

Edited by 김우용

Merge request reports