이 포스팅은 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 커뮤니티 에디션을 다운로드 받아 설치하면 된다.
IntelliJ를 통한 board 프로젝트 초기화
커맨드 프롬프트를 열어 위에서 생성한 board 디렉토리로 이동 후 "idea64.exe ." 명령어를 실행해 board 디렉토리에서 intellij 프로젝트가 실행 될 수 있도록 한다.(IntelliJ 실행화일 위치가 윈도우 Path에 잡혀 있어야 한다.)
IntelliJ가 실행되면서 gradle 관련 라이브러리 다운로드 및 프로젝트를 초기화 한다.
board 프로젝트가 생성된 후 src/build.gradle 파일을 열어 SpringInitializr 에서 선택한 라이브러리들이 dependency에 추가되어 있는지 확인 한다.
윈도우용 Git 설치
윈도우에 git for windows가 설치되어 있지 않다면 아래의 링크를 클릭해 git bash for windows를 다운로드 받아 설치하시기 바랍니다.
Local Git 레파지토리(Repository) 생성, 커밋 그리고 Tag
IntelliJ의 board 프로젝트에서 'Terminal'을 클릭해 코맨드 프롬프트(Terminal)를 하나 열도록 한다.
열려진 코맨드프롬프트에서 git init 명령어를 통해 레파지토리 초기화한다.
git status 명령어로 현재의 WorkTree와 git 레파지토리(Repository)와의 상태를 확인해 본다.
git add . 명령어를 통해 WorkTree에 있는 파일을 Staging 상태로 만든다.
git commit -m "커밋메시지" 를 통해 커밋 하도록 합니다.
최초의 커밋에 대해 git tag를 설정하도록 하겠습니다.
git tag -a v1.0.0 -m "Spring Boot Simple Board 1.0.0"
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 |