인프런 커뮤니티 질문&답변

최정식님의 프로필 이미지
최정식

작성한 질문수

[개념은 호옹~, 실습 빡] 스프링 부트, 입문!

09 DB 테이블과 SQL(DB에 저장된 거 진짜 맞아요?)

9강 질문 있습니다

작성

·

179

0

9강에서 h2데이터 베이스에 자연스럽게 저장이 되는것으로 연결이 되는데 CrudRepository를 사용할 경우 h2데이터 베이스로 자옫적으로 연결이 되는건가요?

아니면 h2데이터베이스의 경우는 콘솔의 역할만 하고

기본적으로 jdbc서버에 생성된 데이터베이스에 접근하는 방식인건가요?

답변 1

0

홍팍님의 프로필 이미지
홍팍
지식공유자

CrudRepository는 Spring Data JPA가 제공하는 인터페이스 중 하나로, 기본적인 CRUD(Create, Read, Update, Delete) 작업을 추상화합니다. 이를 사용하면 개발자는 간단한 인터페이스 정의만으로 데이터베이스에 대한 기본적인 작업을 수행할 수 있습니다.

H2 데이터베이스와 CrudRepository를 함께 사용할 때의 동작 방식은 다음과 같습니다:

  1. H2 데이터베이스 연결: Spring Boot 애플리케이션에서 H2 데이터베이스를 설정하면, 애플리케이션이 시작될 때 H2 데이터베이스 인스턴스가 메모리에 생성됩니다.

  2. 데이터 소스 설정: application.properties 또는 application.yml 파일에서 H2 데이터베이스에 대한 설정을 합니다. 이 설정에는 데이터베이스 URL, 사용자 이름 및 비밀번호 등이 포함될 수 있습니다.

  3. JPA 구성: JPA 엔티티 클래스를 정의하고, CrudRepository 인터페이스를 확장한 리포지토리 인터페이스를 만듭니다.

  4. 데이터베이스 작업: 애플리케이션에서 CrudRepository를 사용하여 엔티티를 저장, 조회, 수정, 삭제합니다. 이 때, Spring Data JPA는 H2 데이터베이스와 연동하여 자동으로 필요한 SQL 쿼리를 생성하고 실행합니다.

결론적으로, CrudRepository를 사용할 경우, H2 데이터베이스는 자동으로 연결되며, 애플리케이션에 내장된 H2 인메모리 데이터베이스를 직접 사용하게 됩니다. 물론, 개발 환경에서는 H2를 사용하고, 실제 운영 환경에서는 다른 데이터베이스(예: MySQL, PostgreSQL)를 사용하는 것이 일반적입니다.

최정식님의 프로필 이미지
최정식
질문자

그렇다면 제가 MySQL이나 오라클로 바꾸려면 애플리케이션 properties와 gradle파일에 있는 의존성을 수정하면 되는건가요?

 

추가로 서버를 종료해도 데이터 베이스에 계속 저장해 두고 싶을땐 어떻게 하면 될까요?

 

홍팍님의 프로필 이미지
홍팍
지식공유자

네 맞습니다

gredle 및 properties를 변경하여
MySQL, Postgres, Oracle 등등에 연결 가능합니다

해당 내용은
28강에서 다루어봅니다 🙇‍♂

최정식님의 프로필 이미지
최정식

작성한 질문수

질문하기