데이터베이스
이번 강좌에서는 개발 및 서비스 운영에 꼭 필요한 데이터베이스
소프트웨어를 설치하고 개발에 사용하기 위해 설정하는 법을 배우게 됩니다.
이 강의를 통해 개발목적
에 따라 어떤 데이터베이스가 필요한지 이해하고 자신에게 필요한 데이터베이스
를 설치하고 설정
하는 방법을 배우게 됩니다.
01: MySQL
MySQL
은 세계에서 가장 많이 쓰이는 오픈 소스
의 관계형 데이터베이스 관리 시스템(RDBMS)
입니다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 MySQL AB가 관리 및 지원하고 있으며, Qt처럼 이중 라이선스가 적용됩니다. 하나의 옵션은 GPL이며, GPL 이외의 라이선스로 적용시키려는 경우 전통적인 지적재산권 라이선스의 적용을 받습니다.
MySQL 설치
- 다운로드 사이트: https://dev.mysql.com/downloads/mysql/
- 버전: MySQL Community Edition 8.X
- 설치: MySQL Installer for Windows -> 커스텀 옵션 설치 권장.
설치 요약
02: H2
H2
데이터베이스는 보통 임베디드 DB
로 알려져 있으며 MySQL과 같은 관계형 데이터베이스 관리 시스템(RDBMS)
입니다. MySQL 과 달리 복잡한 프로그램의 설치가 필요 없고 데이터베이스 파일만 있으면 언제든 DB의 실행이 가능하므로 프로그램에 포함해서 배포하는것도 가능합니다.
보통 개발의 경우 효율을 위해 MySQL이나 Oracle 등을 설치하지 않고 H2와 같은 경량 데이터베이스를 이용해 개발하기도 합니다. 물론 특정 데이터베이스에 특화된 기능을 사용하려면 개발과정에서도 해당 DB가 필요 합니다.
H2 데이터베이스는 다음과 같이 3가지 모드로 운영할 수 있습니다.
임베디드 모드
프로그램에서 JDBC url을 이용해 접속 하거나 console 웹을 통해 관리
- 데이터 파일만 있으면 동작.
- 가장 간단하고 지정된 데이터파일이 없다면 자동생성 하므로 언제든 실행 가능.
- 단점으로는 파일을 사용하기 때문에 동시 다중 접속이 불가 하므로 개발이나 테스트에 불편함이 있을수 있음. 즉, 톰캣이 실행된 상태에서는 별도의 도구를 통해 데이터베이스 관리가 불가능.
인-메모리 모드
프로그램에서 JDBC url을 이용해 접속 하거나 console 웹을 통해 관리
- 데이터베이스를 메모리상에서만 운영하는 모드로 처리속도가 빠르다.
- 단점으로는 프로그램 종료시 데이터가 소멸되기 때문에 일반적인 애플리케이션에는 부적합.
네트워크 서버 모드
H2 데이터베이스를 다운로드 해서 설치한 다음 실행하고 JDBC를 이용해 접속 하거나 console 웹을 통해 관리
- 일반적인 데이터베이스와 같이 네트워크 서버로 동작하는 방식.
- 동시 다중 접속도 가능.
- 단점으로는 서버를 동작시키기 위해 별도의 프로그램 실행과 관리가 필요. 즉, 톰캣 이외 데이터베이스 서버를 별도로 실행해야 함.
짧굵배 강좌에서는 콘솔 사용을 위해 H2 데이터베이스를 컴퓨터에 설치한 다음 운영은 임베디드 모드로 운영합니다. 초기 데이터베이스, 사용자 생성 이외에는 H2 데이터베이스를 별도로 실행하거나 할 필요는 없습니다.
H2 설치
- 다운로드 사이트: http://www.h2database.com
- 버전: 1.4 X
- 설치: 다운로드후 설치프로그램 실행
https://www.h2database.com/ 에서 최신 버전의 H2 데이터베이스를 다운로드 하고 운영체제에 맞게 설치 한다. 여기서는 윈도우를 기준으로 한다.
다운받은 설치 프로그램을 실행하면 C:\Program Files (x86)\H2
에 설치가 됩니다.
설치가 완료되면 윈도우 시작이나 검색을 이용해 h2 console 앱
을 실행합니다. 실행하면 자동으로 웹 기반의 관리 콘솔 화면이 나타납니다. 이때 윈도우 트레이의 h2 아이콘을 오른쪽 마우스로 클릭해서 create a new database
를 선택하도록 합니다.
데이터베이스 생성 화면에서 다음 예시를 참조해 원하는 이름으로 데이터베이스를 생성합니다. Create 버튼을 눌러 DB를 생성하면 됩니다.
Database path: ~/jwprjdb
Username: sa
Password: 1234
- Database path 는 실제 데이터파일이 생성되는 경로와 파일명이므로 신중히 작성한다.
- ~/jwprjdb 는 사용자의 홈디렉토리(예: c:\Users\사용자명) 아래 jwprjdb로 시작하는 데이터 파일을 생성.
정상적으로 데이터베이스가 생성되었으면 다시 콘솔 화면으로 돌아와 연결 시험을 수행합니다.
경로와 아이디, 비밀번호를 잘확인하고 연결 시험 버튼을 눌렀을때 시험 성공이 나오면 된것이다. 연결을 눌러 데이터베이스에 접속 하도록 한다.
다음은 연결 모드에 따른 jdbc url 예시 입니다.
- 임베디드모드(파일 직접접속)
jdbc:h2:~/test // 윈도우 사용자 홈디렉토리에 test.mv.db 파일 생성됨. jdbc:h2:e:/Dev/test // e드라이브의 Dev 폴더에 test.mv.db 파일 생성됨.
- 네트워크 서버 모드
jdbc:h2:tcp://localhost/~/test
- 메모리 DB 모드(종료시 데이터소멸됨)
jdbc:h2:mem:test_mem