데이터베이스는 애플리케이션의 실행에 필요하고, 실행 중에 발생하는 필요한 모든 데이터를 기록한다. 이 과정에서 반드시 필요한 것이 프로그램을 통해 데이터베이스를 조작하는 것이다.
데이터를 보관하기 위해 파일 시스템을 사용할 수도 있지만, 데이터베이스를 이용하는 것이 가장 보편적인 방식이다.
데이터베이스는 말 그대로 데이터를 보관하고 관리하는 기능을 한다. 여러 종류가 있지만 가장 일반적으로는 '관계형 데이터베이스(RDBMS)'를 가장 많이 사용한다. 여기에도 MySQL, 오라클 등등 많이 있지만, MySQL과 비슷한 기능을 가지지만 무료로 사용할 수 있는 MariaDB를 본인은 사용 할 것이다.
MariaDB 설치
※ 굳이 캡쳐는 안 하고 그냥 다운받으면 된다. 조심해야 될 부분 몇 가지를 짚어보겠다.
데이터베이스 생성과 사용자 계정 추가
실제 서비스를 운영할 경우 데이터베이스는 원격지에서 떨어져 있는 경우가 대부분이다. 따라서 별도의 프로그램으로 데이터베이스에 연결하는데, 흔히 SQL에디터라고도 불린다. 윈도우의 경우 HeidiSQL 프로그램이 자동으로 같이 설치가 된다.
HeidiSQL을 실행해서 세션 관리자로 데이터베이스와 연결을 시도한다.
화면 아래 [신규] 버튼을 누르고 root 계정으로 연결을 한다. 이 때 설치할 때 정했던 패스워드를 추가해준다. 그러면 정상적으로 연결될 것이다.
정상적으로 연결된 후에는 화면 오른쪽에 '쿼리'라는 탭을 클릭하면 SQL을 작성해서 실행해볼 수 있다.
왼쪽 창에서 마우스 오른쪽 버튼을 눌러 데이터베이스를 생성한다.
데이터베이스를 이용하는 별도의 계정을 추가하려면, 프로그램 상단의 [도구] - [사용자 관리자] 메뉴를 이용한다. [추가] 버튼을 눌러 계정을 생성한다. 연습을 할 때는 계정과 패스워드 동일하게 하는 것이 연습하기 좋다.
연습할 때는 사용자의 호스트 설정을 어디서든 연결이 가능하도록 '호스트'에서 폴딩 메뉴를 눌러 '%(모든 곳에서 접근 가능)'으로 지정한다.
마지막 단계로 객체 추가 버튼을 눌러 방금 만든 데이터베이스를 클릭하여 지정한다. 접근 허용 권한으로 모두를 선택한다.
[파일] - [세션 관리자] 메뉴를 통해 점검을 한다. 설정 탭에서 앞에서 설정한 사용자와 암호를 입력하고 데이터베이스를 만들어놓은 데이터베이스로 지정한다.
프로젝트 생성과 DB 준비
Web Application과 Gradle을 클릭하여 인텔리제이의 새로운 프로젝트를 만든다.
인텔리제이 얼티메이트의 화면 오른쪽 상단 자세히 보면 있는 [Database] 탭에서 [+]를 클릭하여 MariaDB를 선택한다.
데이터베이스 관련 정보(User, Password, Database)를 입력한다.
처음인 경우엔 'Download missing driver files'가 뜨며 데이터베이스 연결에 필요한 관련 파일을 내려받는다.
'Test Connection'을 이용해 데이터베이스와의 연결을 확인하고 [OK]를 클릭한다.
데이터베이스 연동 설정이 완료되면 SQL문을 실행할 수 있는 화면이 하나 만들어진다.
테스트를 해보기 위해 'select now()'를 작성해본다.
현재 시간이 나오는 것을 확인한다.
프로젝트 내의 MariaDB 설정
프로젝트에서 데이터베이스를 이용하기 위해서 자바와 데이터베이스 연동을 위한 설정이 필요하다.
'JDBC 드라이버'라는 라이브러리가 필요한데, 'https://mvnrepository.com/'에 접속해서 'MariaDB Java Client'를 검색해 클릭하고, 화면 중앙의 'Gradle' 이나 'Gradle(Short)' 탭의 내용을 복사한다.
build.gradle 파일의 dependencies 항목에 붙여넣기를 한다.
dependencies {
compileOnly('javax.servlet:javax.ervlet-api:4.0.1')
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
implementation 'org.mariadb.jdbc:mariadb-java-client:3.0.4'
}
오른쪽 상단의 아이콘을 선택해 반드시 gradle을 업데이트 해줘야 한다.
* JDBC 구조
JDBC 프로그램은 자바 프로그램과 데이터베이스를 네트워크 상에 연결해 데이터를 교환하는 프로그램으로, 관련 API는 java.sql 패키지나 javax.sql을 사용한다.
JDBC 프로그램을 사용하려면 데이터베이스와 자바 프로그램 사이에 네트워크 데이터를 처리하는 코드가 필요한데, JDBC 드라이버가 이런 역할을 수행한다.
JDBC 작성 순서
간단하게 말하면, JDBC 프로그램은 네트워크를 통해 데이터베이스와 연결을 맺고, SQL을 전달해 데이터베이스가 이를 실행하는 흐름이다.