[스프링] 스프링 부트와 Cassandra의 연동 방법

이 블로그에서는 스프링 부트 프레임워크를 사용하여 Cassandra 데이터베이스와의 연동 방법에 대해 알아볼 것입니다.

1. Cassandra 설정

먼저, 프로젝트의 pom.xml 파일에 Cassandra 드라이버 의존성을 추가해야 합니다.

<dependency>
    <groupId>com.datastax.oss</groupId>
    <artifactId>java-driver-core</artifactId>
    <version>4.13.0</version>
</dependency>

그런 다음, application.properties 파일에 Cassandra 연결 정보를 설정합니다.

spring.data.cassandra.keyspace-name=mykeyspace
spring.data.cassandra.contact-points=127.0.0.1
spring.data.cassandra.port=9042

2. Entity 및 Repository 생성

다음으로, Cassandra 테이블에 매핑될 엔터티와 해당 엔터티를 조작할 리포지토리를 생성해야 합니다.

import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;

@Table
public class Product {
    @PrimaryKey
    private int id;
    private String name;
    private double price;

    // getter/setter methods
}
import org.springframework.data.cassandra.repository.Query;
import org.springframework.data.repository.CrudRepository;

public interface ProductRepository extends CrudRepository<Product, Integer> {
    @Query("SELECT * FROM product WHERE id=?0")
    Product findById(int id);
}

3. 서비스 및 컨트롤러 생성

마지막으로, 서비스와 컨트롤러를 생성하여 Cassandra 데이터베이스를 조작할 수 있도록 합니다.

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProductService {
    @Autowired
    private ProductRepository productRepository;

    public Product getProductById(int id) {
        return productRepository.findById(id);
    }
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProductController {
    @Autowired
    private ProductService productService;

    @GetMapping("/product/{id}")
    public Product getProductById(@PathVariable int id) {
        return productService.getProductById(id);
    }
}

이제 스프링 부트와 Cassandra가 성공적으로 연동되었습니다. 이제 원하는 기능을 추가하여 Cassandra 데이터베이스를 조작할 수 있게 됩니다.


참고 문헌: