Programming/Spring Boot

Spring Boot, MySQL, JPA 그리고 docker-compose 예제 ... 1/2

Cloud Applicaiton Architect 2021. 9. 29. 08:27
반응형

이 포스팅은 2019년 10월 네이버 블로그에 포스팅 했던 글을 리 포스팅 한 글입니다.

 

이번 포스팅은 WAS(Spring Boot)와 DB(MySQL)를 하나의 Dockerfile로 묶어서(이를 docker-compose라 한다) 서비스하는 예제이다. Spring Boot에서 MySQL 사용은 JPA를 이용할 예정이다.

 

이번 포스팅에 사용되는 관련 기술은 다음과 같다.

 

Spring Boot 2.1.9 , Java 8, IntelliJ, gradle, git, JPA, Swagger

 

Spring Initializr를 이용한 Spring Boot 템플릿 생성

http://start.spring.io를 방문해 Spring Boot 템플릿을 아래와 같이 선택 후 zip 파일을 다운로드 받도록 한다.

Project Gradle Project
Language Java
Spring Boot 2.1.9
Project Metadata
 
 
 





 

 
 
Group com.example
Artifact board
Options


 
 
 
Name board
Description Demo project for Spring Boot
Package Name com.example.demo
Packaging Jar
Java 8
Dependencies


Spring Web
Spring Data JPA
MySQL Driver

Spring Initializr 를 통해 다운로드 받은 board.zip 파일을 로컬 PC 디스크의 workspace로 옮기어 압축을 풀도록 한다.

예에서는 C:\java-msa\workspace 아래에 board라는 이름으로 디렉토리를 생성했다.

 

IntelliJ 설치

이 포스팅의 예제는 IntelliJ를 기반으로 설명하기 때문에 가급적 IntelliJ 사용을 권장한다. 로컬 PC에 IntelliJ가 설치되어 있지 않다면 JetBrains 홈페이지에 가서 IntelliJ 커뮤니티 에디션을 다운로드 받아 설치하면 된다.

 

 

Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains

Download the latest version of IntelliJ IDEA for Windows, macOS or Linux.

www.jetbrains.com

IntelliJ를 통한 board 프로젝트 초기화

커맨드 프롬프트를 열어 위에서 생성한 board 디렉토리로 이동 후 "idea64.exe ." 명령어를 실행해 board 디렉토리에서 intellij 프로젝트가 실행 될 수 있도록 한다.(IntelliJ 실행화일 위치가 윈도우 Path에 잡혀 있어야 한다.)

IntelliJ가 실행되면서 gradle 관련 라이브러리 다운로드 및 프로젝트를 초기화 한다.

board 프로젝트가 생성된 후 src/build.gradle 파일을 열어 SpringInitializr 에서 선택한 라이브러리들이 dependency에 추가되어 있는지 확인 한다.

build.gradle

 

윈도우용 Git 설치

윈도우에 git for windows가 설치되어 있지 않다면 아래의 링크를 클릭해 git bash for windows를 다운로드 받아 설치하시기 바랍니다.

 

Git for Windows

Git for Windows focuses on offering a lightweight, native set of tools that bring the full feature set of the Git SCM to Windows while providing appropriate user interfaces for experienced Git users and novices alike. Git BASH Git for Windows provides a BA

gitforwindows.org

 

Local Git 레파지토리(Repository) 생성, 커밋 그리고 Tag

IntelliJ의 board 프로젝트에서 'Terminal'을 클릭해 코맨드 프롬프트(Terminal)를 하나 열도록 한다.

열려진 코맨드프롬프트에서 git init 명령어를 통해 레파지토리 초기화한다.

git status 명령어로 현재의 WorkTree와 git 레파지토리(Repository)와의 상태를 확인해 본다.

git add . 명령어를 통해 WorkTree에 있는 파일을 Staging 상태로 만든다.

git add .

git commit -m "커밋메시지" 를 통해 커밋 하도록 합니다.

git commit -m "The first file commit"

 

최초의 커밋에 대해 git tag를 설정하도록 하겠습니다.

git tag -a v1.0.0 -m "Spring Boot Simple Board 1.0.0"

git tag - a [annotation] -m "[tag message]"

 

Github 레파지토리 생성 및 push

로컬 레파지토리 동기화가 완료되었다면 git hub의 계정에 git 레파지토리를 만들도록 한다.

Github에 계정이 있으면 본인의 계정으로 로그인을 하십시오. 계정이 없다면 무료로 계정을 만들도록 한다.

로그인 후 Repository 탭을 클릭해 'New'를 클릭

레파지토리 명은 simple-board로 명명하고 나머지 값은 기본값으로 설정해 새로운 레파지토리를 만들도록 한다.

레파지토리가 완성되면 아래와 같은 안내 페이지를 볼 수 있다.

 

지금 생성된 원격(GitHub)의 레파지토리와 조금전에 생성한 로컬의 레파지토리를 연동하도록 하자.

이를 위해 git remote add 명령어가 필요한데 사용법은 아래의 이미지에서 빨간 사각형의 코맨드 라인을 복사해 IntelliJ의 터미널(커맨드 창에 복사해 실행합니다.)

git remote add 명령어와 git push -u 를 통해 레파지토리 동기화 및 파일 업로드

Github의 레파지토리에 파일이 정상적으로 업로드 되었는지 확인해 본다.

e.g.: http://github.com/sharplee7/simple-board

 

마지막으로 git push --tag 명령어를 통해 생성된 tag도 github에 push 하도록 합니다.

그리고 git hub에서 push된 tag 정보를 확인한다.

우리 프로젝트는 현재 git의 기본 브랜치인 master 브랜치(Branch)와 v1.0.0이라는 1개의 tag를 가지고 있다.

Windows용 Docker 설치

Windows 10에서 Docker for windows 설치는 복잡한 설정 과정이 필요 없다. 아래의 조건에서 순서대로 설치 하면 된다.

 

1. Windows 10 Pro 혹은 Enterprise Edition(64bit) 준비

2. Virtual Box, VMWare등 기능 Disable

3. Windows Hyper-V Enable (단, 최신의 windows 10 WSL2의 경우 다른 방식의 설치 과정이 필요하다.)

(제어판→프로그램 및 기능→Windows 기능 켜기/끄기]→[Hyper-V]체크)

4. https://www.docker.com/products/docker-desktop 에서 윈도우용 docker 다운로드 및 설치

5. Docker daemon 실행

(윈도우 작업줄에서 Docker Desktop을 선택)

 

찾기 매뉴로 'Docker Desktop'를 찾아 실행

윈도우 작업줄에서 Docker Desktop 실행 확인

여기까지 해서 우리가 만들려고 하는 Docker 기반 간단 게시판 어플리케이션 개발을 위한 모든 환경 준비를 완료했다.

다음 포스팅에서는 실제 개발을 통해 게시판을 완성해 보도록 하겠다.

반응형

'Programming > Spring Boot' 카테고리의 다른 글

Spring Boot tomcat access log 출력  (0) 2022.01.06
Spring Boot, MySQL, JPA 그리고 docker-compose 예제 ... 2/2  (2) 2021.09.29
Spring Boot AutoConfiguration  (0) 2021.07.07
Spring Initializr  (0) 2021.07.07
Spring Boot 란?  (0) 2021.07.07