본문 바로가기

Back/Server

Project 배포 단계 - compile / build(package) / deploy / WAS

 

* 배포

구현(코딩)이 끝난 후, 사용자가 이용할 수 있도록 실행가능한 파일을 서버에 올리는 작업

 


 

1. Compile

컴파일이란 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말한다. (목적파일이 생성됨) 

즉, 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그램을 가르켜 컴파일러(Compiler)라 한다.

자바의 경우, 자바가상머신(JVM)에서 실행가능한 바이트코드 형태의 클래스파일이 생성이 된다.

 

 

 

2. Build

소스코드를 실행 가능하도록 소프트웨어 결과물로 만드는 과정. (Package라고도 함)

.java, .html, .css, .js, .jsp 등의 파일이 있는 Project(하나의 Web Application을 구현한 소스코드)를 하나의 .war파일로 변환(압축)하는 과정.

 

* Build = Compile + 그 외 작업

  Run = Bulid + 실행

 

* build tool(빌드 툴) : 빌드를 도와주는 프로그램 (Ant, Maven 메이븐, Gradel 그래들 등)

                            전처리, 컴파일, 패키징, 테스팅, 배포, 라이브러리 자동추가 및 관리 등의 기능을 함.

 

* project build 순서 (Maven 이용)

  :  Terminal상에서 Project가 있는 디렉토리에 들어간다.

    -> maven을 설치한다.(mvn install)

    -> Project를 Build한다.(mvn package)

    -> Project 내 target 디렉토리를 지운다.(mvn clean)

 

 

3. Deploy

빌드되어 실행가능한 결과물을 컨테이너에서 인식가능한 곳에 배치하는 것

Build(Package)된 .war파일을 WAS에 올려서 사용자들이 이용할 수 있게 배포하는 것

 

 

4. WAS (Web Application Server)

Web 환경에서 Application을 개발, 운용, 실행할 수 있는 Flatform역할을 하면서, 포괄적인 Java기반의 Web Application 서비스와 관리를 제공. (대부분 자바기반이지만 비자바계열도 존재)

동적 서버 콘텐츠를 수행하는 것으로서, 일반적인 웹 서버와 구별되며, 주로 데이터베이스 서버와 같이 수행 됨.

 

*WAS종류

비상용 오픈SW(Tomcat, JBoss) / 상용SW(Oracle Weblogic IBMWebSphere, Tmax Jeus)

 

*웹서버와 WAS의 차이점

웹서버는 웹브라우저의 요청에 응해 결과물을 돌려주고, WAS는 어플리케이션과 웹서버를 연결하는 역할.

보통 WAS는 웹서버를 포함함.

크기로만 따지면 WAS보다 웹서버가 큼.

WAS는 서버 내부적으로 연산에 필요한 EJB 파일(Bean file)이 들어감(Tomcat은 EJB파일을 돌릴 수 없음)

 

[출처] https://m.blog.naver.com/PostView.nhn?blogId=on21life&logNo=221161029373&proxyReferer=https:%2F%2Fwww.google.com%2F

 

 


 

 

 


*추가 참고

컴파일, 빌드, 배포의 개념 및 차이 (출처 https://itholic.github.io/qa-compile-build-deploy/)

1. 컴파일: 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 일

2. 빌드: 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일

3. 배포: 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일

4. 혹은 컴파일을 포함해 war, jar 등의 실행 가능한 파일을 뽑아내기까지의 과정을 빌드한다고도 함.

 

이클립스에서 JAVA로 코딩을 한다고 생각해보자.

코드를 짜고나서 Run 버튼을 눌러 코드를 실행시킨다 (컴파일 + 실행)

정상적으로 실행되면 이것을 war 파일로 뽑아서(빌드) 웹서버에 올리거나(배포)

JSmooth 등을 사용해 exe, jar 파일로 뽑아(빌드) 사용자에게 주면 된다(배포)

 

참고로, 웹이 아닌 exe 파일로 배포하는 경우는 보통 ‘deploy’보다는 ‘distribution’ 한다고 표현하는 것 같다.

둘다 똑같은 ‘배포’이긴 하지만, deploy는 일반적으로 웹개발 영역에서 주로 사용되는 용어로 보인다.


 

 

출처

https://freezboi.tistory.com/39 [코딩 공작소]
https://ecogeo.tistory.com/78 [아키텍트를 꿈꾸며 - 에코지오]

m.blog.naver.com/sekhyuni/221135183197

'Back > Server' 카테고리의 다른 글

[JPA] @Transient 과 엔티티 접근 방식  (0) 2022.09.01
Web Hosting (웹 호스팅)  (0) 2021.05.02