I'm sorry about that, it seems like there was an issue with the formatting. Here is the complete code for the microservice using R2DBC:
```kotlin
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.r2dbc.spi.ConnectionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.annotation.Id;
import org.springframework.data.r2dbc.core.DatabaseClient;
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
import org.springframework.data.r2dbc.core.StatementMapper;
import org.springframework.data.r2dbc.dialect.PostgresDialect;
import org.springframework.data.r2dbc.mapping.OutboundRow;
import org.springframework.data.r2dbc.mapping.R2dbcMappingContext;
import org.springframework.data.r2dbc.query.Criteria;
import org.springframework.data.r2dbc.query.Update;
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import javax.annotation.PostConstruct;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.UUID;

@SpringBootApplication
@EnableR2dbcRepositories
@EntityScan
@EnableKafka
@EnableScheduling
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

@Component
class Data {
    @Id
    private UUID id;
    private String name;
    private String description;
    private LocalDateTime timestamp;

    public Data() {}

    public Data(String name, String description, LocalDateTime timestamp) {
        this.id = UUID.randomUUID();
        this.name = name;
        this.description = description;
        this.timestamp = timestamp;
    }

    public UUID getId() {
        return id;
    }

    public void setId(UUID id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public LocalDateTime getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(LocalDateTime timestamp) {
        this.timestamp = timestamp;
    }

    public OutboundRow toRow() {
        OutboundRow row = new OutboundRow();
        row.put("id", this.getId());
        row.put("name", this.getName());
        row.put("description", this.getDescription());
        row.put("timestamp", this.getTimestamp());
        return row;
    }

    public static Data fromRow(InboundRow row) {
        Data data = new Data();
        data.setId(row.get("id", UUID.class));
        data.setName(row.get("name", String.class));
        data.setDescription(row.get("description", String.class));
        data.setTimestamp(row.get("timestamp", LocalDateTime.class));
        return data;
    }

    public String toJson() {
        ObjectMapper mapper = new ObjectMapper();
        try {
            return mapper.writeValueAsString(this);
        } catch (JsonProcessingException e) {
            throw new RuntimeException("Error converting Data object to JSON: " + e.getMessage());
        }
    }

    @Override
    public String toString() {
        return "Data{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                ", timestamp=" + timestamp +
```
죄송합니다. 형식에 문제가 있었던 것 같습니다. 다음은 R2DBC를 사용하는 마이크로서비스의 전체 코드입니다:```kotlincom.fasterxml.jackson.core.JsonProcessingException을 가져옵니다;import com.fasterxml.jackson.databind.ObjectMapper;io.r2dbc.spi.ConnectionFactory를 가져옵니다;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.SpringApplication;org.springframework.boot.autoconfigure.SpringBootApplication을 가져옵니다;import org.springframework.boot.autoconfigure.domain.EntityScan;org.springframework.data.annotation.Id를 가져옵니다;org.springframework.data.r2dbc.core.DatabaseClient를 가져옵니다;org.springframework.data.r2dbc.core.R2dbcEntityTemplate를 가져옵니다;org.springframework.data.r2dbc.core.StatementMapper를 가져옵니다;org.springframework.data.r2dbc.dialect.PostgresDialect를 임포트합니다;org.springframework.data.r2dbc.mapping.OutboundRow를 가져옵니다;org.springframework.data.r2dbc.mapping.R2dbcMappingContext를 임포트합니다;org.springframework.data.r2dbc.query.Criteria를 가져옵니다;org.springframework.data.r2dbc.query.Update를 가져옵니다;org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories를 가져옵니다;org.springframework.kafka.annotation.EnableKafka를 가져옵니다;import org.springframework.kafka.core.KafkaTemplate;org.springframework.scheduling.annotation.EnableScheduling을 가져옵니다;org.springframework.scheduling.annotation.Scheduled를 가져옵니다;import org.springframework.stereotype.Component;reactor.core.publisher.Flux를 가져옵니다;import reactor.core.publisher.Mono;import javax.annotation.PostConstruct;java.time.Duration;java.time.LocalDateTime을 임포트한다;java.time.ZoneOffset을 임포트합니다;java.time.format.DateTimeFormatter를 임포트합니다;java.util.UUID를 임포트합니다;스프링 부팅 애플리케이션@EnableR2dbcRepositories엔티티 스캔EnableKafkaEnableSchedulingpublic class Application {    공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용 공용        SpringApplication.run(Application.class, args);    }}컴포넌트Data 클래스 {    @Id    비공개 UUID id;    private String name;    private String description;    private LocalDateTime 타임스탬프;    public Data() {}    public Data(String name, String description, LocalDateTime timestamp) {}        this.id = UUID.randomUUID();        this.name = name;        this.description = 설명;        this.timestamp = 타임스탬프;    }    public UUID getId() {        반환 id;    }    public void setId(UUID id) {        this.id = id;    }    public String getName() {        이름을 반환합니다;    }    public void setName(String name) {        this.name = name;    }    public String getDescription() {        설명을 반환합니다;    }    public void setDescription(String description) {        this.description = description;    }    public LocalDateTime getTimestamp() {        타임스탬프를 반환합니다;    }    public void setTimestamp(LocalDateTime timestamp) {        이 타임스탬프 = 타임스탬프;    }    public OutboundRow toRow() {        OutboundRow row = new OutboundRow();        row.put("id", this.getId());        row.put("name", this.getName());        row.put("description", this.getDescription());        row.put("timestamp", this.getTimestamp());        행을 반환합니다;    }                    데이터 데이터 = 새로운 데이터();        data.setId(row.get("id", UUID.class));        data.setName(row.get("name", String.class));        data.setDescription(row.get("description", String.class));        data.setTimestamp(row.get("timestamp", LocalDateTime.class));        데이터를 반환합니다;    }    public String toJson() {        ObjectMapper mapper = 새로운 ObjectMapper();        try {            return mapper.writeValueAsString(this);        } catch (JsonProcessingException e) {            throw new RuntimeException("데이터 객체를 JSON으로 변환하는 중 오류가 발생했습니다: " + e.getMessage());        }    }    @Override    public String toString() {        return "Data{" +                "id=" + id +                ", name='" + 이름 + '\'' +                ", description='" + 설명 + '\'' +                ", timestamp=" + timestamp +```