// API Gateway 모듈 // 루트 build.gradle의 subprojects 블록에서 공통 설정 적용됨 // API Gateway는 WebFlux를 사용하므로 일부 다른 설정 필요 // Spring Cloud 버전 정의 ext { set('springCloudVersion', '2023.0.0') } dependencies { // Common module dependency (exclude WebMVC, Security, and non-reactive Redis for WebFlux) implementation(project(':common')) { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-web' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-security' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-data-jpa' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-data-redis' } // Spring Cloud Gateway (api-gateway specific) implementation 'org.springframework.cloud:spring-cloud-starter-gateway' // Redis for health checks and caching implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive' // Circuit Breaker (api-gateway specific) implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j' // Monitoring (api-gateway specific) implementation 'io.micrometer:micrometer-registry-prometheus' // Logging (api-gateway specific) implementation 'net.logstash.logback:logstash-logback-encoder:7.4' // Netty macOS DNS resolver (api-gateway specific) implementation 'io.netty:netty-resolver-dns-native-macos:4.1.100.Final:osx-aarch_64' // Test Dependencies (api-gateway specific) testImplementation 'org.springframework.cloud:spring-cloud-contract-wiremock' } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } bootJar { archiveFileName = 'api-gateway.jar' }