Spring발행일 2025. 1. 15.원본 https://blog.naver.com/jword_/223725860934 ↗

Linux에서 Spring 프로젝트 돌리기 (JDK, Docker, mariadb 설치)

Linux에서 Spring 프로젝트 돌리기 (JDK, Docker, mariadb 설치) — #개발자의도구들 #LinuxSpring #리눅스스프링 #리눅스자바 #리눅스자바다운로드 🚨📝 📖 📒✏️...

#Spring#Naver Blog

#개발자의도구들 #LinuxSpring #리눅스스프링 #리눅스자바 #리눅스자바다운로드

🚨📝 📖 📒✏️💡🔍

​

AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다

\* 현재 Spring x 프로젝트를 진행하고 있습니다. 전체 목차를 보시려면 여기를 눌러주세요.

\* 해당 프로젝트 이전에 공부한 내용을 보시려면 여기를 눌러주세요.

​

Java 다운로드

바로 이전글에서 리눅스 서버 셋팅 및 SSH로 원격접속까지 해보았습니다. 오늘은 Spring 프로젝트를 Linux 내부에 돌려보는 것을 목표로 하겠습니다.

​

우선 JVM이 서버내에 있어야 하므로 JDK를 다운받아 봅시다. 기존에 사용하던 버전이 17이기 때문에 버전에 맞춰서 다운 받았습니다.

​

JDK 설치

javascript 코드 예제
                                    sudo apt update
sudo apt search openjdk // 설치 가능한 jdk 버전 확인 명령어
sudo apt install openjdk-17-jdk-y

// 설치 확인
java -version

// 예상 출력
openjdk version "17.0.8"
OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-0ubuntu120.04, mixed mode)

정상적으로 버전이 나온다면 JDK설치는 끝입니다.

Docker

DB설치

현재 Spring에서 MariaDB를 사용하고 있습니다. mariaDB를 바로 설치해도 사용해도 되는데 다음과 같은 오류가 나왔습니다.

javascript 코드 예제
                                    mariadb가 libssl1.1 을 필요로 하는데 우분투 최신버전에서는 존재하지 않음.

해결을 위해 이런저런 시도를 해보다가, 잘 안되어서 그냥 docker 공부도 할 겸 docker를 사용하기로 했습니다.

​

Dokcer

아직 배우지 않은 단계라 명확하게 개념은 잘 모르지만, 제가 사용해본 결과 다음과 같은 결론을 내렸습니다.

javascript 코드 예제
                                    1. 서버내의 서버 같다.
2. 서버인데, 뭔가 필요한 모듈들이 내부에 설치되어 있어서 사용하기 편하다.
3. 여러 서버와 호환이 잘될 것 같다.

아직 정식으로 공부하지 않아서, 그냥 느낌이 이렇구나만 참고해주시고 나중에 공부하면 정식으로 정리해서 올리겠습니다.

​

설치

javascript 코드 예제
                                    sudo apt update
sudo apt install -y docker.io

docker는 컨테이너라는 개념을 포함하고 있으며, docker를 사용하기 위해 전용 container를 만들어야 합니다. container는 docker 호스트의 포트를 매핑시키는 역할을 하여 특정 포트로 호스트 서버에 접근시 docker로 접근하게 합니다.

javascript 코드 예제
                                    // docker container 만들기
sudo docker --name mariadb-container -e MYSQL_ROOT_PASSWORD=<userpw> -P 3306:3306 \
  -d mariadb:latest

// 완료시
4293339931af00449bb416ef54b0b2a7057b806eac71baa35ce883b82fd50789

// container 시작
sudo docker start <conrainer-name: mariadb-container>

mariadb전용 컨테이너를 만들었습니다.

javascript 코드 예제
                                    // 모든 컨테이너 확인 가능
sudo docker ps -a

// 실행중인 것만 확인
sudo docker ps

docker ps를 통해 container id를 알 수 있습니다. 이는 해당 docker에 직접 접근하는데에 사용됩니다.

MySQL Client

혼동이 있을 것 같아. 현재 구조를 간단하게 정리해 봣습니다.

이미지

​

리눅스 서버에서 docker의 maraidb로 접근할 필요가 있습니다. 이를 위해 mysql client를 다운받아봅시다.

javascript 코드 예제
                                    // (리눅스 호스트 서버에서)

// 다운로드
sudo apt update
sudo apt install mysql-client

// check
mysql --version

// 접속
mysql -h 127.0.0.1 -P 3306 -u root -p

기존에 만들어둔 DB를 모두 linux mariadb로 옮기고 데이터도 넣어주면 됩니다.

javascript 코드 예제
                                    💡 DDL 명령어는 다음을 사용하세요.
SHOW CREATE TABLE tablenames;
-- DB에서 기존테이블의 속성을 참고하여 DDL명령어를 만들어줍니다.

git clone

linux에서 git을 다운받아주세요.

javascript 코드 예제
                                    sudo apt update
sudo apt install git -y
git --version

git clone으로 github의 프로젝트 다운받기

javascript 코드 예제
                                    git clone <원격 프로젝트 주소>

Spring 프로젝트 build하기

다운받은 project로 이동 후 아래 명령어 실행

javascript 코드 예제
                                    sudo ./gradlew build
javascript 코드 예제
                                    💡 안된다면 gradlew 파일이 없거나, 실행 권한이 없는 경우입니다.
보통 실행 권한이 없는 경우가 많을 테니 아래 명령어를 입력하세요

sudo chmod +x gradlew

프로젝트 실행

javascript 코드 예제
                                    cd build/libs
java -jar ---SNAPSHOT.jar

이렇게 하면 Spring 프로젝트가 실행되는 것을 볼 수 있습니다.

이미지

​