본문 바로가기
Java/JSP & Servlet

[JSP&Servlet] 7. DB 설치 및 Java 연동 환경 구성

by Rosmary 2022. 11. 18.
728x90
반응형

 

 

 

DB는 Database의 약자로, 방대한 양의 데이터를 저장, 조회, 변경하는 등의 작업에 사용하는 프로그램의 일종이다. 유사하나 조금 더 전문적인 DBMS(Database Management System)라는 용어를 사용하기도 한다. 

 

웹으로 제공하는 서비스들은 필연적으로 DB를 사용할 수 밖에 없다. 가장 쉬운 예시로 포털(Portal) 사이트를 들 수 있는데, 대부분의 국민들이 사용하는 Na**r의 경우, 계정 정보만 해도 수 천 만 건에 다를 정도다. 엑셀이나 Access를 사용하면 되지 않느냐는 말을 하시는 분들도 있을텐데, 엑셀과 Access는 개인이 보유하는 소규모 데이터에 적합하도록 만들어진 프로그램들이기 때문에 웹 서비스로 인해 발생하는 데이터를 다루기에는 무리가 많다. 

 

DB 프로그램 역시 MySQL, MariaDB PostgreSQL, NoSQL 등등 여러가지가 존재한다. MySQL의 경우 제작사인 Oracle이라는 회사에서 저작권 관련 분쟁을 일으킨 적이 있어, 과거에 상당히 높았던 DB 점유율을 MariaDB나 PostgreSQL에 조금 빼앗겼지만, 그럼에도 불구하고 설치형 블로그나 개인 웹 페이지 제작 업체에서 활발히 지원하는 DB임과 동시에 관계형 데이터베이스(Relational Database)의 대표주자 격이라 웹 서버를 막 접하기 시작하는 분들이 여전히 많이 사용하고 있다. 

 

이번 포스팅에서 JSP, Servlet을 활용한 윈도우 웹 서버 구축 시 반드시 활용할 수 밖에 없는 DB의 설치와 연동을 위한 환경 구성까지 진행해보려 한다. 사실 실제 웹 서버는 OS로 Linux를 많이 사용하지만, 테스트나 이제 웹 서버를 막 접하신 분들이라면 윈도우를 많이 사용할 것이기 때문에 이번 포스팅은 윈도우에서의 DB 설치와 웹 서버 연동만 다루려한다.

 

 

 

1. MySQL 설치 파일 다운로드 및 설치

 

https://dev.mysql.com/downloads/installer/

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.31 5.5M (mysql-installer-web-community-8.0.31.0.msi) MD5: 7a83203e24f873b49fa2df2f1a58eca6 | Signatu

dev.mysql.com

 

 

위의 페이지에 접속하면 다운로드 링크 두 개가 보이는데, 아래에 위치한 430 Mb 짜리 항목의 다운로드 링크를 클릭하여 파일 다운로드를 진행하자. 링크를 클릭하면 로그인이 어쩌구 저쩌구라는 문구가 뜨는데, 아래에 "No Thanks..."로 시작하는 링크를 클릭하면 무료 다운로드가 진행된다. 

 

 

 

 

다운로드 된 파일을 열어 설치를 진행하자. 설치 중간에 mysql 접속을 위한 통신 포트 지정 및 계정 생성 과정을 제외하면 크게 어려운 내용은 없다. 

 

설치 파일이 열리면, 아래와 같은 화면이 나타나는데, 필자와 달리 여러분들의 화면에는 설치 내역이 아무것도 나오지 않을 것이다. 따라서 오른쪽의 Add 버튼을 클릭하여 새로 설치할 프로그램을 선택해주어야 한다.

 

 

Add 버튼을 누르면 설치할 프로그램들을 선택하는 화면이 나타난다. 가장 기본적으로 서버에서 사용할 MySQL은 반드시 선택해주자. 필자는 최신 버전인 8.0.31을 선택했다. 여기에 추가로 Documentation 참고를 위해 Documentation 항목 최하단에 위치한 MySQL Documentation 8.0.31도 함께 설치 리스트에 추가해주었다. 

 

 

 

Next를 클릭하면 선택한 항목에 대한 설치를 위해 파일 다운로드가 진행된다. Execute 버튼을 눌러 다운로드를 진행한다. 다운로드가 완료되면 Execute 버튼이 Next 버튼으로 변경되며, Next 버튼을 클릭하면 다운받은 파일의 설치 과정으로 넘어간다.

 

 

 

설치과정 역시 Execute 버튼을 눌러 진행해주자. 마찬가지로 설치가 완료되면 Execute 버튼이 Next 버튼으로 변경된다.

 

 

 

다음으로는 MySQL 사용을 위한 환경 구성을 진행하는 화면이 나타난다. 우선 환경 구성을 진행할 MySQL 프로그램을 선택해야하는데, MySQL 8.0.31 하나밖에 설치하지 않았기 때문에 선택할 것이 없다. 바로 Next 를 눌러 넘어가자.

 

 

 

뭔가 모를 이상한 설정값을 넣으라는 화면이 나온다. 하나씩 위에서부터 차근히 보자. 먼저 Config Type을 선택하는 란이 나타나는데, "MySQL 설치하는 PC는 무슨 용도로 사용하는 것이니?" 라고 묻는 것이다. 필자는 테스트를 위해 PC를 웹 서버로 사용할 예정이므로 "Server Computer"로 선택했다. 

 

바로 아래에 Port라는 항목은 통신 시 사용할 포트를 지정하기 위해 존재하는 것인데, MySQL의 경우 3306 포트를 기본 통신 포트로 사용하기 때문에 변경없이 기본값을 유지한다.

 

 

 

Next를 클릭하고 넘어가면, "비밀번호는 어떻게 암호화할래?(Authentication Method)"라고 물어보는 화면이 나오는데 추천(Recommended)하는 대로 선택하고 넘어가자. SHA라고 불리는 아주 강력한 암호화 기법이다.

 

 

 

다음은 MySQL에 접속하기 위한 기본 계정을 생성하는 단계다. Root 계정에 대한 패스워드만 추가하고, 다른 계정은 별도로 추가하지 않고 넘어간다. 여기서 설정한 패스워드는 MySQL 접속 시 필요하기 때문에 잊지 않도록 주의하자.

 

 

 

다음은 설치한 MySQL 프로그램을 사용하기 위해 윈도우에 MySQL 서비스를 등록하는 화면이다. MySQL 버전인 8.0.31에 맞춰 서비스 명이 MySQL80으로 되어 있다. 변경없이 기본값을 그대로 사용한다.

 

필자는 일부러 윈도우 시작 시 자동으로 MySQL 서비스가 동작하지 않도록 체크박스를 해재했다.

 

다음으로 MySQL 사용으로 생성되는 파일에 대한 접근 권한을 설정한다. MySQL의 경우 데이터가 저장되어 있는, 매우 민감한 장소기 때문에 설치 Dialogue에서 기본값으로 지정한 설정을 선택하고 Next 버튼을 누르자.

 

 

 

마지막으로 지금까지 설정한 내용에 대해 전체적으로 확인하는 부분이다. 목록에 나타난 내용을 확인하고 이상이 없으면 Execute 버튼을 눌러 설정 내용을 적용해주자. 환경 구성이 끝나면 우측 하단에 Finish 버튼만 덩그러니 남게 되는데 클릭하여 다음으로 넘어가자.

 

 

 

남은 두 단계는 이미 설치가 완료되었기 때문에 크게 할 것이 없는 깡통화면이다. Next와 Finish를 눌러 설치를 마무리하자.

 

 

 

자... 이제 MySQL 설치가 완료되었다. 

 

 

 

2. MySQL 서비스 시작 및 접속 테스트

 

윈도우 검색창에서 "서비스"라는 단어를 치면 촌스러운 아이콘과 함께 "서비스"라는 항목이 하나 나타난다. 클릭하고 들어가보자.

 

 

 

서비스 창을 열면 바로 직전에 MySQL 서비스명으로 등록한 MySQL80이 목록에 나타날 것이다. 상태가 "실행 중"으로 나타나있는 분들이 있을텐데, 그렇지 않다면 해당 항목을 우클릭하고, "시작"을 클릭하자

 

 

 

상태가 "실행 중"으로 변경되었다면 MySQL 접속이 가능한지 테스트해보자. MySQL의 경우 Linux와 마찬가지로 검은 바탕에 명령어를 쳐서 동작하도록 만든 물건이라 Window CMD(커맨드) 창으로 접속을 확인해야한다. 

 

CMD에 접속하면 아래의 명령어를 입력하여 MySQL 통신 포트가 개방되어 있는지 확인하자.

 

curl -v telnet://127.0.0.1:3306

 

 

 

포트가 정상적으로 개방되어 있고, MySQL 서비스도 구동되고 있는 상태라면 Connected to... 로 시작하는 결과가 화면에 나타날 것이다. 정상적으로 MySQL 에 접속할 수 있는 환경이라는 뜻이다.

 

여기까지 완료되었다면 MySQL이 설치된 폴더로 이동해보자. C:\\Program Files\\MySQL 경로로 들어가면 bin 폴더가 보이는데, 여기에는 cmd에서 mysql을 실행할 수 있는 mysql.exe 폴더가 존재한다.

 

 

 

CMD에서 이 명령어 파일을 사용하기 위해서는 환경 변수 등록을 진행해주어야 한다. 윈도우 검색창에서 "시스템 환경 변수 편집"을 치면 나오는 아이콘을 클릭하고, 우측 하단의 "환경 변수" 버튼을 클릭한다.

 

 

 

환경 변수 항목을 보면 상단 사용자 변수 목록 중 Path 변수가 존재하는데, 여기에 mysql.exe 파일이 존재하는 경로를 추가 등록해주어야 한다. 아래와 같이 추가 경로를 등록하고 확인 버튼을 눌러 환경 변수 등록을 마친다.

 

 

 

다시 cmd 창에서 mysql을 입력해보자. 여전히 실행할 수 없다고 뭐라뭐라 글자가 뜨는데, 적용한 환경변수가 적용되지 않았기 때문이다. 이를 적용하기 위해 윈도우 탐색기(explorer.exe)를 재시작해야한다. 재기동 방법은 크게 두 가지가 있는데 컴퓨터를 다시 시작하는 것이 첫 번 째 방법이고, 두 번 째는 CMD 창에서 명령어로 윈도우 탐색기를 다시 재시작하는 것이다. 두 번 째 방법을 사용하고 싶으신 분들은 CMD 창에서 아래의 명령어를 순차적으로 입력하자. 참고로 첫 명령어를 치면 윈도우 관련 아이콘, 작업 표시줄이 모두 사라진다. 두 번째 명령어를 입력하면 복구되니 당황하지 말자.

 

taskkill /f /im explorer.exe
explorer.exe

 

 

이제 mysql 명령어를 입력하면 아까와 다르게 Error로 시작하는 문구가 뜨게 되는데, 이렇게 되면 MySQL 명령어를 CMD에서도 사용할 수 있는 환경 구성까지 마무리가 된 것이다. mysql 은 명령어 옵션으로 -u {계정명} -p 를 주어야만 접속이 가능하다. 이 옵션은 계정명과 패스워드로 MySQL을 접속하겠다는 의미다.

 

 

 

설치 시 설정한 root 패스워드를 정확히 입력했다면 다음과 같은 화면이 나타난다. 정상적으로 접속된 것이 확인되었다면 exit 명령어를 입력하여 mysql 접속을 종료하자.

 

 

 

 

 

 

3. Java DBDriver 설치

 

Java는 DB 사용을 위한 java.sql 패키지가 존재한다. 이 패키지에는 DB와의 연결, 명령어 전송 및 결과 반환 등을 수행하는 클래스가 정의되어 있다. 대부분의 DB는 명령어를 입력하여 결과를 확인하는 과정은 동일하지만, Java에서 각기 다른 DB 프로그램과 연결하기 위해서는 DB Connector라는 것이 별도로 설치되어야 한다. 

 

이미지 출처: https://www.javatpoint.com/steps-to-connect-to-the-database-in-java

 

 

위의 그림을 보면 Driver를 등록하는 부분이 있는데, 이 Driver가 DB와 Java를 연결하는 가장 중요한 역할을 담당한다고 보면 된다. 그리고 DB 프로그램 종류는 서두에 언급했듯이 매우 다양하기 때문에 연동할 DB에 사용이 가능한 Driver가 반드시 존재해야 Java에서 DB의 조회 결과를 받거나 데이터를 수정, 삭제하는 등의 작업을 진행할 수 있게 된다. 

 

이 포스팅에서는 MySQL을 설치했기 때문에 MySQL에 적합한 드라이버를 다운받아야한다. 

 

mysql-connector-java-8.0.30.jar
2.40MB

 

위의 파일이 MySQL과 Java를 연결하는 Connector Driver다. 이 파일을 다운받아 Tomcat 설치 폴더의 lib 파일에 위치시키자. MySQL과 패치 버전이 아주 약간 차이나기는 하지만 동작에는 문제가 없다. MySQL이 본 포스팅과 다른 버전이 설치된 분들은 아래의 사이트에서 적정 버전을 찾아 다운로드 하면 된다. 사실 Oracle의 공식 다운로드 사이트에서도 Driver가 포함된 Connector jar 파일을 제공하기는 하는데, 필자는 이 사이트에서 제공하는 파일들이 조금 더 이해하기 수월해서 이곳에서 파일을 다운받는다.

 

 

https://jar-download.com/artifacts/mysql/mysql-connector-java

 

Download mysql JAR files with all dependencies

mysql mysql-connector-java 8.0.25 compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.25' //Thanks for using https://jar-download.com libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.25" //Thanks for using https://jar-download

jar-download.com

 

 

다운받은 압축 파일을 열어보면 mysql로 시작하는 .jar 파일이 나타나는데, 이 jar 파일이 본 포스팅에서 필요한 파일이다. 별도로 추출한다.

 

 

 

 

추출한 파일은 이클립스를 사용하느냐, 혹은 일반 텍스트 편집기에서 Java 코드를 작성하느냐에 따라 등록 방식이 달라진다. 먼저 일반 텍스트 편집기에서 Java 작업을 할 때 추출한 jar 파일을 등록하는 방법에 대해 알아보자.

 

 

 

(1) 텍스트 편집기를 사용하여 Java 코드 작성 시, DB Connector 환경 설정 방법

 

추출한 jar 파일을 열어보자. 열면 몇 개의 폴더가 계층 구조로 이루어져있고, 각 폴더 내부에 컴파일 된 클래스 파일이 존재하는 것을 확인할 수 있다. 이는 직접 작성한 Java 클래스 파일을 계층 구조 형태로 사용할 수 있도록 jar 파일로 묶어놓은 것이라 보면 된다. 압축 파일로 묶은 이유는 이 압축 파일 내부의 클래스 파일을 참조하는 다른 Java 클래스 파일이, 위치에 상관없이 jar 내부의 클래스 파일을 사용할 수 있도록 하기 위함이다. 

 

 

 

위 그림과 같이 압축이 해제된 상태라면, com.mysql.cj.jdbc.Driver 파일을 사용하기 위해 작성하는 java 파일은 반드시 mysql-connector-java-8.0.30 폴더에 존재해야한다. 그래야 import 문을 사용하여 com.mysql.cj.jdbc 패키지 내 Driver 클래스를 사용할 수 있기 때문이다.

 

화면이 잘 안보이는데, 클릭해서 보자. DB 연결 테스트 코드는 다음 포스팅에서 제공할 예정이다.

 

그러나 압축이 해제된 상태에서 패키지 파일을 사용하는 것이 문제가 되는 이유는, 프로그램을 생성하면서 발생하는 수많은 클래스 파일들 중, jar 파일 내부의 클래스 파일을 참조해야하는 것들이 모두 mysql-connector-java-8.0.30 폴더에 존재해야하기 때문이다. 즉, DB Connector 클래스 파일을 사용하기 위해 자신이 만든 파일은 폴더로 구조화하지 못하는 일이 발생하게 되며, mysql-connector-java-8.0.30 폴더 내에 위치하지 못한 클래스 파일은 DB Connector의 Class 파일을 참조할 수 없게 되는 것이다.

 

 

따라서 java는, 이미 작성된 클래스 파일과 패키지를 다른 곳에서도 사용해야하는 경우, 패키지 구조 자체를 jar라는 압축파일로 생성하고, 이 압축 파일을 classpath라는 환경 변수에 등록하도록 함으로써, jar 파일 내부의 클래스 파일들을 어느 위치에서라도 접근할 수 있도록 만들어놓았다. 

 

* JAR 파일의 생성과 압축 파일 내 클래스 접근은 이 포스팅을 참고하자.

 

추출한 mysql-connector-java-8.0.30.jar 파일은 Java가 설치된 폴더의 lib 폴더로 이동시키자. 필자의 경우 폴더 경로가 아래와 같다.

 

C:\Program Files\Java\jdk-18.0.2.1\lib

 

이제 java에서 import 문을 사용하는 경우, JDK가 이 jar 파일을 인식할 수 있도록 classpath 환경 변수를 추가해주어야 한다. classpath는 이러한 jar 파일을 참조하기 위해 지정된 시스템 변수로, import 문 사용 시 Java가 jar 파일을 참조할 수 있도록 경로를 등록하는 것이라 보면 된다. jar 파일을 바로 참조할 수 있도록 필자는 아래의 경로를 classpath에 추가했다.

 

C:\Program Files\Java\jdk-18.0.2.1\lib\mysql-connector-java-8.0.30.jar

 

 

 

환경 변수 등록 후 mysql.exe 명령어를 등록했을 때와 마찬가지로 explorer.exe 프로세스를 재시작하자.

 

taskkill /f /im explorer.exe
explorer.exe

 

 

explorer.exe 재시작 후 환경 변수가 적용되었는지는 cmd에서 아래의 명령어로 확인한다. 

 

echo %classpath%

 

만약 추가한 경로가 보이지 않는다면 속 편하게 재부팅을 진행하자.

 

 

추출한 mysql-connector jar 파일이 classpath에 등록되면 다른 위치에서 에러를 발생시켰던 클래스 파일 또한 정상적으로 드라이버를 인식하고 있음을 확인할 수 있다.

 

Java 설치 경로의 LIb 폴더가 아닌 다른 경로 내에 jar 파일을 위치시키고 싶다면, 위의 절차에서 jar 파일 저장 및 환경 변수 등록 부분만 수정해주면 된다.

 

 

 

(2) Eclipse 사용 시, DB Connector 환경 설정 방법

 

Eclipse에서의 mysql-connector 등록은 매우 쉽다. 단순히 현재 진행중인 JSP, Servlet 프로젝트의 WEB-INF 폴더 내에 lib 폴더를 만들고 추출한 jar 파일을 위치시키면 된다.

 

 

 

각 프로젝트의 WEB-INF\lib 폴더에 존재하는 jar 파일은 Eclipse의 프로젝트에서 자동으로 BuildPath에 적용된다. jar 파일이 저장된 프로젝트 파일을 우클릭 한 뒤, 속성(Property)을 클릭해보자.

 

 

속성에서 Java Build Path 메뉴를 누르면, classpath 항목이 메인 창에 보일텐데, 이 classpath를 열어보면 Web App Library에  mysql Connector jar 파일이 존재하는 것이 보인다. 만약 보이지 않는다면, classpath 선택 후 우측의 add JARS를 클릭하여 추출한 jar 파일을 등록하면 된다. 

 

 

 


 

다음 포스팅에서는 오늘의 환경 구성을 활용하여 Servlet에서의 DB 접속과 데이터 조회, 수정, 삭제 절차를 다루려 한다.

 

 

Fin.

반응형

댓글