Supabase 무료DB Spring에서 연동하기

Supabase가 뭔데? 왜 Spring Boot와 잘 맞을까?

Supabase를 처음 들어보시는 분들을 위해 간단히 소개드릴게요. Supabase는 PostgreSQL을 기반으로 한 클라우드 플랫폼인데요, Firebase 같은 기능을 오픈소스로 제공한다고 생각하시면 됩니다. 인증 시스템, 실시간 데이터 처리, 파일 스토리지까지 갖췄고, 무엇보다 무료 플랜으로도 충분히 쓸 수 있다는 점이 큰 매력이죠. Spring Boot와 결합하면 백엔드 개발이 훨씬 간편해져요. 예를 들어, 댓글 시스템이나 사용자 데이터를 관리하는 API를 빠르게 만들 수 있답니다. 저도 최근 프로젝트에서 써보니 설정이 매우 쉬웠습니다.

 

Supabase 가입 및 데이터베이스 만들기

Supabase를 시작하려면 먼저 공식 웹사이트로 이동해 계정을 만들 수 있습니다. 회원가입은 GitHub 계정으로 간편하게 가입할 수 있습니다.

 

가입 후 새로운 프로젝트를 생성할 수 있습니다. 프로젝트 이름을 입력하고, 무료 티어를 선택한 뒤 Create organization을 클릭합니다.

 

이어서 데이터베이스 비밀번호를 설정하면 됩니다. 이 비밀번호는 나중에 Spring과 DBeaver 연결에서 필요하니 꼭 메모해 두세요. 서버 위치는 제공하는 서비스 형태에 따라서 다르지만 일반적으로 국내 서비스의 경우 Northeast Asia를 선택합니다.

 

처음에 새롭게 프로젝트를 생성하는 과정에서 약간의 대기 시간이 소요됩니다.

 

초기 프로젝트가 준비되면 우측 상단에 Project Status가 초록색으로 바뀌게되는걸 확인할 수 있습니다.

 

Spring에서 Supabase 연동하기

이제 Spring 애플리케이션에서 Supabase를 활용해볼 차례입니다. Supabase는 Postgres 기반이니까 Spring Boot에서 JDBC나 JPA를 통해 자연스럽게 연결할 수 있습니다.

 

의존성 추가

Gradle

dependencies {
    implementation 'org.postgresql:postgresql:42.6.0'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}

 


Maven

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.6.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

 

properties 설정

의존성 설정이 끝났다면 application.properties나 application.yml 파일에 Supabase 연결 정보를 입력해야합니다. 

 

Supabase 대시보드에서 상단에 Connect를 클릭합니다.

 

Type을 JDBC로 변환후 Transction poller에 있는 데이터베이스 연결정보를 전체 복사합니다.

 

spring.datasource.url=jdbc:postgresql://[Host]:[Port]/[Database]
spring.datasource.username=postgres
spring.datasource.password=[비밀번호]
spring.jpa.hibernate.ddl-auto=update

---
예시:
spring.datasource.url=jdbc:postgresql://jdb주소/데이터베이스이름
spring.datasource.username=postgres.뒤에랜덤아이디값
spring.datasource.password=비밀번호1234
spring.datasource.driver-class-name=org.postgresql.Driver

application.properties에(gradle기준)데이터베이스 연결정보를 입력합니다.

 

설정이 끝났다면 간단한 엔티티와 리포지토리를 만들어 테스트해 보세요. 예를 들어, 사용자 정보를 저장하는 엔티티를 만들었다고 가정하면 Spring Boot가 자동으로 Supabase에 테이블을 생성하고 데이터를 관리합니다. 코드가 잘 돌아가는지 확인하려면 간단한 API 엔드포인트를 만들어 데이터 삽입과 조회를 시도해 보는 것도 좋은 방법입니다.

 

DBeaver로 Supabase 데이터베이스 관리하기

Spring 연동까지 마무리했다면, 이제 데이터베이스를 시각적으로 관리할 도구가 필요하죠. DBeaver는 무료면서도 강력한 데이터베이스 관리 툴로, Supabase와의 궁합도 훌륭합니다. 먼저 DBeaver를 공식 사이트에서 다운로드할 수 있습니다.

 

Supabase에서 이번엔 Type을 URL로 변경하고 Transaction poller 섹션에 View parameters를 클릭하여 DB연결 정보를 확인합니다.

 

DBeaver에서 PostgreSQL을 선택한뒤 다음을 클릭합니다.

 

Supabase에 있던 데이터베이스 연결 정보의 HOST, Port, Database, Username, Password를 입력한뒤완료를 클릭합니다.

 

연결에 성공하면 좌측 Database Navigator 패널에서 데이터베이스를 확인하고 조작할 수 있습니다.

Top