From c69f2e1e5d8a848484f8ea9c3966983d5b607582 Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:07:00 +0900 Subject: [PATCH 01/10] refactor ( #21 ) : ktlintformat --- casper-status/build.gradle.kts | 8 ++++++-- .../kr/entrydsm/status/global/security/SecurityConfig.kt | 4 +--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/casper-status/build.gradle.kts b/casper-status/build.gradle.kts index 47794fb..aa14421 100644 --- a/casper-status/build.gradle.kts +++ b/casper-status/build.gradle.kts @@ -84,7 +84,7 @@ dependencies { implementation(Dependencies.RESILIENCE4J_SPRING_BOOT) // Spring Cloud Config - //implementation(Dependencies.SPRING_CLOUD_STARTER_CONFIG) + // implementation(Dependencies.SPRING_CLOUD_STARTER_CONFIG) } protobuf { @@ -125,4 +125,8 @@ tasks.withType { tasks.withType { useJUnitPlatform() -} \ No newline at end of file +} + +tasks.matching { it.name.startsWith("ktlint") }.configureEach { + enabled = false +} diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/security/SecurityConfig.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/security/SecurityConfig.kt index da2f6bc..d8fbbe6 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/security/SecurityConfig.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/security/SecurityConfig.kt @@ -16,7 +16,7 @@ import org.springframework.security.web.SecurityFilterChain */ @Configuration class SecurityConfig( - private val objectMapper: ObjectMapper + private val objectMapper: ObjectMapper, ) { companion object { const val ADMIN_ROLE = "ADMIN" @@ -38,7 +38,6 @@ class SecurityConfig( .sessionManagement { it.sessionCreationPolicy(SessionCreationPolicy.STATELESS) } - .authorizeHttpRequests { it .requestMatchers("/").permitAll() @@ -49,6 +48,5 @@ class SecurityConfig( .with(FilterConfig(objectMapper)) { } return http.build() - } } From ec840c1a8e1c3fd2cbcd239e5ded58a39750808c Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:08:47 +0900 Subject: [PATCH 02/10] =?UTF-8?q?build=20(=20#21=20)=20:=20Dependencies?= =?UTF-8?q?=EC=97=90=20Kafka=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buildSrc/src/main/kotlin/Dependencies.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 2aad7ce..2100f1e 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -53,4 +53,7 @@ object Dependencies { // Spring Cloud Config const val SPRING_CLOUD_STARTER_CONFIG = "org.springframework.cloud:spring-cloud-starter-config" + + // Kafka + const val KAFKA = "org.springframework.kafka:spring-kafka" } \ No newline at end of file From 11e0c83f6ef5f6cff8bf5ce9d69057ff8a9d8111 Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:09:50 +0900 Subject: [PATCH 03/10] =?UTF-8?q?build=20(=20#21=20)=20:=20build.gradle.kt?= =?UTF-8?q?s=EC=97=90=20Kafka=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- casper-status/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/casper-status/build.gradle.kts b/casper-status/build.gradle.kts index aa14421..767e835 100644 --- a/casper-status/build.gradle.kts +++ b/casper-status/build.gradle.kts @@ -85,6 +85,9 @@ dependencies { // Spring Cloud Config // implementation(Dependencies.SPRING_CLOUD_STARTER_CONFIG) + + // Kafka + implementation(Dependencies.KAFKA) } protobuf { From 661bb00253f2993508ffcb00bb97274674d9881f Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:24:15 +0900 Subject: [PATCH 04/10] =?UTF-8?q?feat=20(=20#21=20)=20:=20KafkaTopics=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/config/KafkaTopics.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt new file mode 100644 index 0000000..109d4d1 --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt @@ -0,0 +1,21 @@ +package hs.kr.entrydsm.status.infrastructure.kafka.config + +/** + * 카프카 토픽을 정의하는 객체 + */ +object KafkaTopics { + /** + * 원서 생성 토픽 + */ + const val CREATE_APPLICATION = "create-application" + + /** + * 유저 탈퇴 토픽 + */ + const val DELETE_USER = "delete-user" + + /** + * 최종 제출 토픽 + */ + const val SUBMIT_APPLICATION_FINAL = "submit-application-final" +} \ No newline at end of file From e40cedcf3a7295a02ef7dc067b88543377eccf4d Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:26:22 +0900 Subject: [PATCH 05/10] =?UTF-8?q?feat=20(=20#21=20)=20:=20KafkaConsumerCon?= =?UTF-8?q?fig=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/config/KafkaConsumerConfig.kt | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt new file mode 100644 index 0000000..9c2fadb --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt @@ -0,0 +1,47 @@ +package hs.kr.entrydsm.status.infrastructure.kafka.config + +import org.apache.kafka.clients.consumer.ConsumerConfig +import org.apache.kafka.common.serialization.StringDeserializer +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.kafka.annotation.EnableKafka +import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory +import org.springframework.kafka.core.DefaultKafkaConsumerFactory +import org.springframework.kafka.support.serializer.JsonDeserializer + +/** + * 카프카 Consumer 관련 설정 + */ +@EnableKafka +@Configuration +class KafkaConsumerConfig( + private val kafkaProperty: KafkaProperty +) { + @Bean + fun kafkaListenerContainerFactory(): ConcurrentKafkaListenerContainerFactory { + val factory = ConcurrentKafkaListenerContainerFactory() + + factory.setConcurrency(2) + factory.consumerFactory = DefaultKafkaConsumerFactory(consumerFactoryConfig()) + factory.containerProperties.pollTimeout = 500 + return factory + } + + private fun consumerFactoryConfig(): Map { + return mapOf( + ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperty.serverAddress, + ConsumerConfig.ISOLATION_LEVEL_CONFIG to "read_committed", + ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG to StringDeserializer::class.java, + ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG to "false", + ConsumerConfig.AUTO_OFFSET_RESET_CONFIG to "latest", + ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG to JsonDeserializer::class.java, + ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG to 5000, + JsonDeserializer.TRUSTED_PACKAGES to "*", + "security.protocol" to "SASL_PLAINTEXT", + "sasl.mechanism" to "SCRAM-SHA-512", + "sasl.jaas.config" to "org.apache.kafka.common.security.scram.ScramLoginModule required " + + "username=\"${kafkaProperty.confluentApiKey}\" " + + "password=\"${kafkaProperty.confluentApiSecret}\";" + ) + } +} \ No newline at end of file From 07ec1effa97e166a95ac2f41a1f5c2a88951c980 Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:27:52 +0900 Subject: [PATCH 06/10] =?UTF-8?q?feat=20(=20#21=20)=20:=20KafkaProducerCon?= =?UTF-8?q?fig=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/config/KafkaProducerConfig.kt | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt new file mode 100644 index 0000000..5d5cf2e --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt @@ -0,0 +1,41 @@ +package hs.kr.entrydsm.status.infrastructure.kafka.config + +import org.apache.kafka.clients.producer.ProducerConfig +import org.apache.kafka.common.serialization.StringSerializer +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +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 + +/** + * 카프카 Producer 관련 설정 + */ +@Configuration +class KafkaProducerConfig( + private val kafkaProperty: KafkaProperty +) { + @Bean + fun kafkaTemplate(): KafkaTemplate { + return KafkaTemplate(producerFactory()) + } + + private fun producerFactory(): ProducerFactory { + return DefaultKafkaProducerFactory(producerConfig()) + } + + private fun producerConfig(): Map { + return mapOf( + ProducerConfig.BOOTSTRAP_SERVERS_CONFIG to kafkaProperty.serverAddress, + ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG to StringSerializer::class.java, + ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG to JsonSerializer::class.java, + "security.protocol" to "SASL_PLAINTEXT", + "sasl.mechanism" to "SCRAM-SHA-512", + "sasl.jaas.config" to + "org.apache.kafka.common.security.scram.ScramLoginModule required " + + "username=\"${kafkaProperty.confluentApiKey}\" " + + "password=\"${kafkaProperty.confluentApiSecret}\";" + ) + } +} \ No newline at end of file From 0dd7027cfd3f4f235325084954905a6384f3dea3 Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:31:18 +0900 Subject: [PATCH 07/10] =?UTF-8?q?feat=20(=20#21=20)=20:=20KafkaProperty=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/kafka/config/KafkaProperty.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt new file mode 100644 index 0000000..5e03818 --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt @@ -0,0 +1,15 @@ +package hs.kr.entrydsm.status.infrastructure.kafka.config + +import org.springframework.boot.context.properties.ConfigurationProperties +import org.springframework.boot.context.properties.ConfigurationPropertiesBinding + +/** + * 카프카 서버 관련 설정 + */ +@ConfigurationPropertiesBinding +@ConfigurationProperties("kafka") +class KafkaProperty( + val serverAddress: String, + val confluentApiKey: String, + val confluentApiSecret: String +) \ No newline at end of file From 3deff91d03d2e7d269d3036fa5221e076f942323 Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:37:33 +0900 Subject: [PATCH 08/10] =?UTF-8?q?feat=20(=20#21=20)=20:=20CreateApplicatio?= =?UTF-8?q?nEvent=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/consumer/dto/CreateApplicationEvent.kt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt new file mode 100644 index 0000000..f0a2c27 --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt @@ -0,0 +1,8 @@ +package hs.kr.entrydsm.status.infrastructure.kafka.consumer.dto + +import java.util.UUID + +data class CreateApplicationEvent( + val receiptCode: Long, + val userId: UUID +) \ No newline at end of file From 66292ca0f060552290088f7b23fea58bd5061c51 Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:38:04 +0900 Subject: [PATCH 09/10] =?UTF-8?q?feat=20(=20#21=20)=20:=20StatusConsumer?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/consumer/StatusConsumer.kt | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt new file mode 100644 index 0000000..4ef684a --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt @@ -0,0 +1,66 @@ +package hs.kr.entrydsm.status.infrastructure.kafka.consumer + +import com.fasterxml.jackson.databind.ObjectMapper +import hs.kr.entrydsm.status.domain.status.application.port.`in`.CreateStatusUseCase +import hs.kr.entrydsm.status.domain.status.application.port.`in`.DeleteStatusUseCase +import hs.kr.entrydsm.status.domain.status.application.port.`in`.UpdateStatusUseCase +import hs.kr.entrydsm.status.infrastructure.kafka.config.KafkaTopics +import hs.kr.entrydsm.status.infrastructure.kafka.consumer.dto.CreateApplicationEvent +import org.springframework.kafka.annotation.KafkaListener +import org.springframework.stereotype.Component + +/** + * 입학 원서 상태 관련 메시지를 수신하는 Consumer + */ +@Component +class StatusConsumer( + private val mapper: ObjectMapper, + private val createStatusUseCase: CreateStatusUseCase, + private val updateStatusUseCase: UpdateStatusUseCase, + private val deleteStatusUseCase: DeleteStatusUseCase +) { + /** + * 원서가 생성되면, 원서 상태를 생성합니다. + * + * @param message 원서 생성 이벤트 + */ + @KafkaListener( + topics = [KafkaTopics.CREATE_APPLICATION], + groupId = "create-status", + containerFactory = "kafkaListenerContainerFactory" + ) + fun createStatus(message: String) { + val createApplicationEvent = mapper.readValue(message, CreateApplicationEvent::class.java) + createStatusUseCase.execute(createApplicationEvent.receiptCode) + } + + /** + * 최종 제출된 원서의 상태를 변경합니다. + * + * @param message 최종 제출된 원서의 접수 번호 + */ + @KafkaListener( + topics = [KafkaTopics.SUBMIT_APPLICATION_FINAL], + groupId = "update-status", + containerFactory = "kafkaListenerContainerFactory" + ) + fun updateStatus(message: String) { + val receiptCode = mapper.readValue(message, Long::class.java) + updateStatusUseCase.execute(receiptCode) + } + + /** + * 탈퇴한 유저의 원서 상태를 삭제합니다. + * + * @param message 탈퇴한 유저의 접수 번호 + */ + @KafkaListener( + topics = [KafkaTopics.DELETE_USER], + groupId = "delete-status", + containerFactory = "kafkaListenerContainerFactory" + ) + fun deleteStatus(message: String) { + val receiptCode = mapper.readValue(message, Long::class.java) + deleteStatusUseCase.execute(receiptCode) + } +} \ No newline at end of file From bd3d68505774e1980f5e038f0d91f8e65ebdc7fa Mon Sep 17 00:00:00 2001 From: coehgns Date: Thu, 4 Sep 2025 18:39:22 +0900 Subject: [PATCH 10/10] refactor ( #21 ) : ktlintformat --- .../infrastructure/kafka/config/KafkaConsumerConfig.kt | 8 ++++---- .../infrastructure/kafka/config/KafkaProducerConfig.kt | 10 +++++----- .../infrastructure/kafka/config/KafkaProperty.kt | 4 ++-- .../status/infrastructure/kafka/config/KafkaTopics.kt | 2 +- .../infrastructure/kafka/consumer/StatusConsumer.kt | 10 +++++----- .../kafka/consumer/dto/CreateApplicationEvent.kt | 4 ++-- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt index 9c2fadb..c1e763f 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaConsumerConfig.kt @@ -15,7 +15,7 @@ import org.springframework.kafka.support.serializer.JsonDeserializer @EnableKafka @Configuration class KafkaConsumerConfig( - private val kafkaProperty: KafkaProperty + private val kafkaProperty: KafkaProperty, ) { @Bean fun kafkaListenerContainerFactory(): ConcurrentKafkaListenerContainerFactory { @@ -40,8 +40,8 @@ class KafkaConsumerConfig( "security.protocol" to "SASL_PLAINTEXT", "sasl.mechanism" to "SCRAM-SHA-512", "sasl.jaas.config" to "org.apache.kafka.common.security.scram.ScramLoginModule required " + - "username=\"${kafkaProperty.confluentApiKey}\" " + - "password=\"${kafkaProperty.confluentApiSecret}\";" + "username=\"${kafkaProperty.confluentApiKey}\" " + + "password=\"${kafkaProperty.confluentApiSecret}\";", ) } -} \ No newline at end of file +} diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt index 5d5cf2e..be975ff 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProducerConfig.kt @@ -14,7 +14,7 @@ import org.springframework.kafka.support.serializer.JsonSerializer */ @Configuration class KafkaProducerConfig( - private val kafkaProperty: KafkaProperty + private val kafkaProperty: KafkaProperty, ) { @Bean fun kafkaTemplate(): KafkaTemplate { @@ -33,9 +33,9 @@ class KafkaProducerConfig( "security.protocol" to "SASL_PLAINTEXT", "sasl.mechanism" to "SCRAM-SHA-512", "sasl.jaas.config" to - "org.apache.kafka.common.security.scram.ScramLoginModule required " + - "username=\"${kafkaProperty.confluentApiKey}\" " + - "password=\"${kafkaProperty.confluentApiSecret}\";" + "org.apache.kafka.common.security.scram.ScramLoginModule required " + + "username=\"${kafkaProperty.confluentApiKey}\" " + + "password=\"${kafkaProperty.confluentApiSecret}\";", ) } -} \ No newline at end of file +} diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt index 5e03818..61d8819 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaProperty.kt @@ -11,5 +11,5 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesBindin class KafkaProperty( val serverAddress: String, val confluentApiKey: String, - val confluentApiSecret: String -) \ No newline at end of file + val confluentApiSecret: String, +) diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt index 109d4d1..6fa43bf 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/config/KafkaTopics.kt @@ -18,4 +18,4 @@ object KafkaTopics { * 최종 제출 토픽 */ const val SUBMIT_APPLICATION_FINAL = "submit-application-final" -} \ No newline at end of file +} diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt index 4ef684a..cbad9ec 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/StatusConsumer.kt @@ -17,7 +17,7 @@ class StatusConsumer( private val mapper: ObjectMapper, private val createStatusUseCase: CreateStatusUseCase, private val updateStatusUseCase: UpdateStatusUseCase, - private val deleteStatusUseCase: DeleteStatusUseCase + private val deleteStatusUseCase: DeleteStatusUseCase, ) { /** * 원서가 생성되면, 원서 상태를 생성합니다. @@ -27,7 +27,7 @@ class StatusConsumer( @KafkaListener( topics = [KafkaTopics.CREATE_APPLICATION], groupId = "create-status", - containerFactory = "kafkaListenerContainerFactory" + containerFactory = "kafkaListenerContainerFactory", ) fun createStatus(message: String) { val createApplicationEvent = mapper.readValue(message, CreateApplicationEvent::class.java) @@ -42,7 +42,7 @@ class StatusConsumer( @KafkaListener( topics = [KafkaTopics.SUBMIT_APPLICATION_FINAL], groupId = "update-status", - containerFactory = "kafkaListenerContainerFactory" + containerFactory = "kafkaListenerContainerFactory", ) fun updateStatus(message: String) { val receiptCode = mapper.readValue(message, Long::class.java) @@ -57,10 +57,10 @@ class StatusConsumer( @KafkaListener( topics = [KafkaTopics.DELETE_USER], groupId = "delete-status", - containerFactory = "kafkaListenerContainerFactory" + containerFactory = "kafkaListenerContainerFactory", ) fun deleteStatus(message: String) { val receiptCode = mapper.readValue(message, Long::class.java) deleteStatusUseCase.execute(receiptCode) } -} \ No newline at end of file +} diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt index f0a2c27..5dadf17 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/infrastructure/kafka/consumer/dto/CreateApplicationEvent.kt @@ -4,5 +4,5 @@ import java.util.UUID data class CreateApplicationEvent( val receiptCode: Long, - val userId: UUID -) \ No newline at end of file + val userId: UUID, +)