Simple JDBC Project (kor)
(1) Java, DB 설치 + Docker Compose로 쉽게 해 보기
(2) 프로젝트 생성, Postgresql 컨테이너 게시
(3) Flyway 도입하기
(4) JDBC 연결하기
프로젝트 생성
파일
> New
> Project...
메뉴를 선택하여 프로젝트 생성창을 띄웁니다.
왼쪽 탭에서는 New Project 탭을 선택합니다. 이것이 일반 자바 프로젝트입니다.
다음 이미지를 참고하여 프로젝트 이름, 저장할 경로(워크스페이스 폴더)를 자율적으로 정하고, 언어 및 빌드 시스템 등은 각각 Java, Gradle(Groovy), 우리가 설치한 Amazon Corretto 21 등을 선택해 줍니다. Gradle은 최근 기본 설정 적용 언어를 Kotlin으로 발표하여 권장하고 있습니다만, 아직 자료가 Groovy 기반으로 많이 나오기 때문에 입문자에게 groovy를 권해 드리고 있습니다. (적응 후에는 각자 설정 언어를 바꿔 가며 연습해 보세요.)
Gradle 관련 파일들 설명
결국 우리가 관심을 갖고 봐야 할 것은 build.gradle
파일입니다.
settings.gradle
: 이번 프로젝트에서는 우리가 자주 사용하지 않아도 됩니다.build.gradle
: 어느 프로젝트에서든 gradle 프로젝트의 심장입니다. 본체 같은 역할입니다.gradle.properties
: 처음에 생성되어 있지 않는 편입니다.build.gradle
등에서 사용할 속성 변수를 작성할 수 있는데, 아직 자세히 모르셔도 됩니다.
Docker Compose로 DB 설치
우리가 만든 프로젝트 경로를 '프로젝트 루트 경로'라고 부를 수 있습니다.
프로젝트 루트 경로에 새 파일을 생성하고, docker-compose.yml
이라는 이름을 붙여 줍니다. 파일에는 다음 내용을 입력합니다.
version: "3"
services:
demo_postgres14:
# docker hub에서 "postgresql 공식 이미지의 14 버전"을 설치하겠다는 선언입니다.
image: postgres:14 # 이미지라고 쓰여 있지만, 지금은 설치하려는 프로그램이라 이해하세요.
# postgresql 14버전 공식 이미지에서 취급하는 각종 환경변수들입니다.
environment:
TZ: Asia/Seoul
POSTGRES_DB: demo
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_INITDB_ARGS: '--encoding=UTF-8 --lc-collate=C --lc-ctype=C'
# 왼쪽이 접근할 때 사용할 포트, 오른쪽이 컨테이너 내부 포트입니다.
ports:
- 5442:5432 # (내부 포트는 보통 수정 X)
restart: on-failure
volumes:
# 왼쪽 경로와 오른쪽 경로가 서로 연결됩니다. (첫 번째 콜론을 기준으로 구분)
# 왼쪽에 내 로컬의 경로 대신 볼륨 컨테이너를 사용할 수도 있습니다.
- stick_volume_demo_postgres14:/var/lib/postgresql/data
- ./db/initdb.d:/docker-entrypoint-initdb.d:ro
volumes:
stick_volume_demo_postgres14:
설치 및 실행
터미널을 열고 프로젝트 현재 경로(루트 경로)까지 이동합니다.
폴더의 내부 목록에 docker-compose.yml
파일이 보인다는 전제로 설명합니다. (윈도우는 dir
, 맥은 ls
명령을 통해 확인할 수 있습니다.)
이 명령으로 이미지를 설치하고 컨테이너를 띄웁니다. 이미 설치한 이미지가 있다면 이미지 다운로드는 생략됩니다. (다음부턴 빠르게 띄울 수 있다는 이야기입니다.)
docker-compose up -d
이것으로 DB 설치 및 실행이 완료됩니다. running...
메시지를 꼭 확인하세요. 도커 데스크톱에 DB 컨테이너가 동작하고 있는 모습을 볼 수 있으며, 컨테이너를 잘 선택하면 실행 로그를 볼 수 있습니다.
컨테이너 내리기(삭제)
데이터를 유지한 채로 컨테이너를 내릴 수 있습니다. 데이터는 볼륨 컨테이너라는 곳에 보존됩니다.
docker-compose down
만약 데이터를 유지하지 않고 컨테이너를 삭제한다면, 볼륨 컨테이너까지 삭제하면 됩니다. -v
옵션이 볼륨 컨테이너까지 삭제하겠다는 옵션입니다.
docker-compose down -v
DB 접속 정보
위 docker-compose.yml
에 작성한 내용대로 컨테이너를 게시한 경우, 데이터베이스 접속 정보는 다음 표와 같습니다.
DB URL | DB USERNAME | DB PASSWORD |
jdbc:postgresql://localhost:5442/demo | root | root |
참고로 Postgresql의 기본 접속 포트는 5432
입니다. 그러나 도커 컴포즈 파일을 공유받은 구성원 중 일부는 이미 PostgreSQL을 설치한 적이 있을 수 있습니다. 해당 구성원들에 대한 배려로 외부 포트를 변경하여 사용하였습니다.
DB 접속 확인
DBeaver, HeidiSQL, Datagrip 등 DB에 접속해 볼 수 있는 툴을 사용하여 접속해서 확인해 봅니다.
< Prev
(1) Java, DB 설치 + Docker Compose로 쉽게 해 보기
Next >