이번 주는 웹 애플리케이션이 어떻게 동작하는지, 어떻게 배포하고 관리하는지 알아보겠습니다. 더 나아가 이러한 배포 프로세스를 자동화하는 CI/CD에 대해 알아보겠습니다. 우리가 개발한 서비스 코드가 웹 애플리케이션의 전체 프로세스에서 어느 지점에 속하는지, 서비스 코드가 동작하기 위해 어떤 자원이 필요한지 파악해보시면 좋겠습니다🤗
마지막 실습에서는 우리가 그동안 열심히 작성한 웹 서버 애플리케이션을 배포하는 작업을 했습니다. 스크립트 코드를 읽어보면, jar 파일을 생성하고 nohup 명령어로 실행하는 것을 보셨을거에요. 이제 jar 파일이 무엇인지, 자바 웹 프로젝트는 어떻게 배포하는 것인지 알아보겠습니다.
jar는 자바 프로젝트의 압축 파일 포맷입니다. 자바 클래스 파일과 리소스 및 메타 데이터를 모아서 배포하기 위해 사용됩니다. 설명이 다소 추상적인데요, 이후 빌드를 설명할 때 자세히 얘기하겠지만 그냥 실행 파일이라고 생각하시면 쉽습니다.
실습에서는 자바 프로젝트를 인스턴스로 클론해서 ./gradlew build 명령어로 직접 jar 파일을 만들었는데요. 스프링 부트 프로젝트의 배포는 jar 파일만 있으면 가능하기 때문에, intellij에 있는 로컬 프로젝트로 jar 파일을 생성해 인스턴스에 직접 업로드하여 실행해도 배포가 가능합니다. (배포 자동화를 사용하지 않은 원시적인 방법) 특히 스프링 부트는 내장 서버를 가지고 있으므로, 바로 실행 가능한 jar 파일을 만들 수 있습니다. intellij에서 gradle 도구를 사용하면 클릭 몇번으로 간단하게 jar 파일을 만들 수 있습니다. 방법은 아래 링크를 참고하세요.
[Spring Boot] Gradle jar 빌드 및 배포하기
자바 프로젝트를 서버에 반영하려면, 컴파일 -> 빌드 -> 배포 과정을 수행해야 합니다. 하나씩 알아볼까요?