Merge origin/develop into feature/distribution

- develop 브랜치의 최신 변경사항 병합
- .gradle 캐시 파일 충돌 해결 (삭제)
- ParticipationServiceApplication.run.xml 충돌 해결 (develop 버전 선택)
- make-run-profile.md 충돌 해결 (develop 버전 선택)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
sunmingLee
2025-10-29 10:09:47 +09:00
414 changed files with 32372 additions and 205 deletions
@@ -3,17 +3,17 @@
<ExternalSystemSettings>
<option name="env">
<map>
<entry key="KAFKA_ENABLED" value="true" />
<entry key="KAFKA_BOOTSTRAP_SERVERS" value="4.230.50.63:9092" />
<entry key="KAFKA_CONSUMER_GROUP" value="distribution-service" />
<entry key="LOG_FILE" value="logs/distribution-service.log" />
<entry key="SERVER_PORT" value="8085" />
<entry key="URIDONGNETV_API_URL" value="http://localhost:9001/api/uridongnetv" />
<entry key="RINGOBIZ_API_URL" value="http://localhost:9002/api/ringobiz" />
<entry key="GINITV_API_URL" value="http://localhost:9003/api/ginitv" />
<entry key="INSTAGRAM_API_URL" value="http://localhost:9004/api/instagram" />
<entry key="NAVER_API_URL" value="http://localhost:9005/api/naver" />
<entry key="KAFKA_BOOTSTRAP_SERVERS" value="20.249.182.13:9095,4.217.131.59:9095" />
<entry key="KAFKA_CONSUMER_GROUP" value="distribution-service" />
<entry key="KAFKA_ENABLED" value="true" />
<entry key="KAKAO_API_URL" value="http://localhost:9006/api/kakao" />
<entry key="LOG_FILE" value="logs/distribution-service.log" />
<entry key="NAVER_API_URL" value="http://localhost:9005/api/naver" />
<entry key="RINGOBIZ_API_URL" value="http://localhost:9002/api/ringobiz" />
<entry key="SERVER_PORT" value="8085" />
<entry key="URIDONGNETV_API_URL" value="http://localhost:9001/api/uridongnetv" />
</map>
</option>
<option name="executionName" />
@@ -48,4 +48,4 @@
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>
</component>
@@ -5,10 +5,13 @@ import org.apache.kafka.common.serialization.StringSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.core.ProducerFactory;
import org.springframework.kafka.support.serializer.JsonSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
@@ -23,24 +26,34 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
* @since 2025-10-23
*/
@Configuration
@ConditionalOnProperty(name = "spring.kafka.enabled", havingValue = "true", matchIfMissing = true)
@ConditionalOnProperty(name = "spring.kafka.enabled", havingValue = "true", matchIfMissing = false)
public class KafkaConfig {
@Value("${spring.kafka.bootstrap-servers}")
private static final Logger log = LoggerFactory.getLogger(KafkaConfig.class);
@Value("${spring.kafka.bootstrap-servers:localhost:9092}")
private String bootstrapServers;
@Bean
@Primary
public ProducerFactory<String, Object> producerFactory() {
log.info("Initializing Kafka ProducerFactory with bootstrap servers: {}", bootstrapServers);
Map<String, Object> configProps = new HashMap<>();
configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
configProps.put(JsonSerializer.ADD_TYPE_INFO_HEADERS, false);
log.debug("Kafka Producer Config: {}", configProps);
return new DefaultKafkaProducerFactory<>(configProps);
}
@Bean
@Primary
public KafkaTemplate<String, Object> kafkaTemplate() {
log.info("Creating KafkaTemplate with custom ProducerFactory");
return new KafkaTemplate<>(producerFactory());
}
}
@@ -40,15 +40,16 @@ spring:
max-idle: 8
min-idle: 2
# Disable security auto-configuration
# Disable security and kafka auto-configuration
autoconfigure:
exclude:
- org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
- org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration
- org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
kafka:
enabled: ${KAFKA_ENABLED:true}
bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:4.230.50.63:9092}
bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:20.249.182.13:9095,4.217.131.59:9095}
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer