안녕하세요 오늘은 Docker
을 이용해서 설계한 Spring 어플리케이션
을 클라우드 환경에 구축한 서버로 배포해보겠습니다 👨💻
글에 들어가기 앞서 이번 포스팅은 Docker
에 대한 선제적인 이해가 필수적입니다.
Docker
에 대한 이해가 부족하다면 제가 만든 [서버] 도커에 대해 을 꼭 읽어보시길 바랍니다❗️
웹 개발을 한지 얼마되지 않았을 때에는 내가 만든 웹 어플리케이션을 어떻게 배포
해야 할까에 대한 의구심이 많았습니다.
배포
라는 단어가 멀게만 느껴졌었는데, 이는 배포
이 정의와 과정 및 방법에 대해 익숙치 않았기 때문이라고 생각합니다.
배포
에 대해 알아보기 전 컴파일
과 빌드
에 대해 간략히 알아보겠습니다.
컴퓨터가 이해할 수 있는 언어로 바꿔주는 과정을 의미합니다.
즉, 개발자가 작성한 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 변경하는 작업을 의미하는데
바이너리 코드(Java 에서는 바이트 코드) 로 변환됩니다 👨💻
소스코드 분석 및 문법 오류 분석이 이루어지며, 컴파일러와 대조되는 개념이 인터프리터
입니다.
Java
에서는 컴파일러와 인터프리터를 둘 다 활용해 높은 호환성을 가집니다.
바이트 코드라는 중간 단계의 언어로 컴파일을 하며 JVM 상에서 인터프리터를 통해 바이트 코드를 해석하여 실행하게 됩니다❗️
개발자가 작성한 소스 코드를 컴파일 한 후, 바로 실행 가능한(Excutable)
파일이 되는것은 아닙니다.
빌드라는 과정을 거쳐야 하는데, 빌드란 실행 가능한 상태로 변환시켜주는 역할을 합니다.
Java 에서는 JVM
에서 빌드가 이루어지며, War
,Jar
등의 실행 파일을 만드는 과정입니다.
JAR(Java Archive)
: Java 에서 사용되는 압축 양식, 클래스 + 리소스파일로 구성WAR(Web Archive)
: 웹 어플리케이션을 압축하고 배포하는데 사용되는 파일 형태 JAR
에 비해 Servlet,XML, JSP 등 필요한 자원이 더 많다.배포
을 이해하기 위해서는 앞서 살펴본 컴파일
과 빌드
에 대한 선제적인 이해가 필요합니다.
실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치하는 것을 말합니다.
간단하게 이야기 하자면 개발 환경에서 개발되던 소스 코드를 컴파일, 빌드 과정을 거쳐 실행 가능한 압축 파일이 생성된 것을
운영 환경(운영 서버) 에 반영하는 것을 말합니다 ❗️
우리가 만든 Spring boot
어플리케이션을 클라우드 환경에 배포하는 방법에는 여러가지가 있습니다.