JAR/실습

리눅스로 완성하는 깃과 JAR 기반 서버 배포

qoeka 2025. 1. 13. 18:05

리눅스를 사용하는 이유는 서버 환경에서 안정적이고 효율적으로 애플리케이션을 운영할 수 있기 때문이다.

깃(Git)은 버전 관리 도구로, 소스 코드를 효율적으로 관리하고 협업을 원활하게 진행할 수 있게 한다.

JAR(Java Archive) 파일은 자바 애플리케이션을 패키징하여 한 파일로 배포할 수 있게 하며, 독립 실행이 가능하도록 만든다.

리눅스 환경에서 깃과 JAR 파일을 활용하여 서버를 배포하면, 효율적인 버전 관리와 안정적인 애플리케이션 실행이 가능해진다.

 

이제 이것에 관한 실습을 해보겠다.

 

먼저, yum install git 명령어는 리눅스에서 git을 설치하는 명령어이다. 이걸 설정해야하는데

 

그러나 이 명령어는 시스템 전체에 영향을 미치는 소프트웨어를 설치하는 작업이기 때문에 일반 사용자 권한으로는 실행할 수 없다.

따라서, 관리자 권한을 부여하기 위해 sudo를 사용해야 한다. sudo는 '슈퍼 유저로 실행하라'는 의미를 가지며, 다음과 같이 사용한다.

 

sudo yum install git

 

 

이렇게 하면 git을 시스템에 안전하게 설치할 수 있다.

 

 

 

윈도우면 쉬프트 누르고 인설트 누르면 복붙가능함 ec2는 

 

클론해라라는 명령어가 따로 있다

 

git clone 그런데 우리는 이 클론이 없으니깐 만들러 가주겠다(이건 한번만 해주면된다)

 

 

 

 

 

토큰 한번만 보여주니깐 잘 저장해자!!!!

 

 

이제 생성한 키를 사용자 아이디에 등록하고, 토큰을 추가한다.

여기서 놀랄 필요는 없다. 아무것도 입력되지 아보여도 보안상 표시되지 않는 것뿐이다. 걱정하지 말고 엔터를 누르면 된다.

그러면 위의 이미지와 같은 화면이 출력된다.

 

지금은  jar파일 없다 

 

일단 cd 트레블러 해서 들어가서

 

ec2에는 메이븐이 없다 만드는 방법이 다를뿐이지 만들 수 있다. 이제 만들어 보겠다

 

그래서 sudo를 붙이고 yum install maven

 

mvn clean

mvn package

 

jar 생성

 

 

근데에러~

 

과거에는 인텔리제이에서 로컬 컴퓨터에서 직접 애플리케이션을 실행하고 빌드했다. 그래서 pom.xml을 보면 메이븐을 사용해 JAR 파일을 빌드하는 방식이었다.

 

 

당시에는 터널링을 통해 로컬 환경에서 JAR 파일을 생성한 후, 원격 서버로 업로드하는 방식이었다.

하지만 지금은 EC2 인스턴스에서 직접 JAR 파일을 빌드하는 방식이다. 따라서 EC2 인스턴스 자체에서 JAR 파일을 생성하고, 해당 인스턴스가 바로 프로덕션 서버로 동작하게 된다.

이 경우, EC2 인스턴스에서 MySQL과 같은 데이터베이스에 직접 연결해야 한다.

터널링 방식으로 접근을 시도하면 이러한 환경에서는 에러가 발생할 수 있다. 따라서 해당 환경에 맞게 파일을 변환해줘야한다.

 

 

 

어플리케이션 와이엠엘에서 prod를 만들어줘야한다

 

제 깃허브에 다시 커밋되었으므로, 변경 내용을 반영하기 위해 다시 가져와야 한다.

git clone 명령어는 처음 저장소를 복제할 때 한 번만 사용한다. 이미 저장소를 클론한 상태라면, git pull 명령어를 사용하여 최신 변경 사항을 가져와야 한다.

git pull 
 

이렇게 하면 기존에 클론했던 저장소에 새롭게 커밋된 내용을 반영할 수 있다.

 

이시투가서 프로작트 폭더 가서 git pull

 

 

 

 

ll 명령어를 사용하여 target 디렉터리의 내용이 제대로 생성되었는지 확인한다.

target 디렉터리가 정상적으로 생성되었으면 해당 디렉터리로 이동한다.

cd target

 

이동한 후, JAR 파일의 이름을 확인한다.

그런 다음, sudo nohup 명령어를 사용하여 백그라운드에서 JAR 파일을 실행한다.

 

sudo nohup java -jar -Dspring.profiles.active=prod app.jar &

 

명령어를 실행한 후, 애플리케이션이 정상적으로 작동하는지 확인한다. ps -ef | grep app.jar 명령어를 사용하여 프로세스가 실행 중인지 점검할 수 있다.