본문 바로가기

정보처리산업기사 필기 공부/애플리케이션배포

애플리케이션 배포환경 구성(애플리케이션배포)

 

소스코드 필드 과정의 이해

빌드는 소스코드를 실행할 수 있는 상태로 변환하는 과정을 말하며, 프로그래밍 언어의 유형에 따라 빌드 과정이 상이하다.

 

1. 컴파일 언어(C, C++ 등)

 컴파일 언어는 기계어로 바로 변환되어 실행되기 때문에 가장 속도가 빠르고 보안에 유리하다. 하지만 소스 변경 시마다 컴파일 과정을 통해서 빌드 작업을 수행하기 때문에 빌드 과정이 오래걸린다.

 

 

빌드 과정은 

출처 : http://jaynewho.com/post/14

 

 

2. Byte Code 언어(Java, C# 등)

 Byte Code 언어는 컴파일의 결과물이 실행파일이 아닌 'class'라는 바이트 코드 파일로 생성되고 가상 실행환경인 JRE(Java Runtime Environment), CLI(Common Language Infrastructure)에서 한 줄씩 실행하는 방식으로 빌드된다. JRE, CLI 환경에서 실행될 때 기계어로 변환되며, 컴파일 언어에 비해 빌드 과정이 빠르다.

 

 

3. 인터프리터 언어(Javascript, Python, Ruby 등)

 인터프리터 언어는 컴파일 언어와 다르게 한 줄씩 번역되어 실행된다. 인터프리터 언어는 컴파일하는 과정에서 메모리가 훨씬 적게 소모되고 빠른 시간에 컴파일을 진행할 수 있다.

 

 

 

 

애플리케이션 배포(Release) 환경

 

애플리케이션 배포는 개발자 또는 사용자가 애플리케이션을 실행, 테스트할 수 있도록 컴파일된 프로그램, 실행에 필요한 리소스(이미지, 환경 설정 파일 등)를 서버상의 적합한 위치로 이동하는 작업을 말한다. 그러므로 애플리케이션 배포는 해당 애플리케이션의 동작 환경의 영향을 받는다. 웹 애플리케이션의 경우 웹 서버, WAS(Web Application Server)를 동작 환경으로 사용한다.

 

1. 웹 서버 (Web Server)

 사용자의 http 요청을 받아 웹 컨테이터에 요청을 전달하고 결괏값을 받아와 사용자에게 전송하는 역할을 수행한다. 애플리케이션 배포 시 이미지, 단순 HTML과 같은 정적인 리소스를 배포하며, 정적 리소스를 빠르고 안정적으로 처리한다.

 

2. WAS (Web Application Server)

 사용자의 요청을 받아 동적인 처리를 수행하는 프로그램 실행 부분을 배포한다. WAS 구성 및 운용을 위한 국제 표준 규격을 정하고 있으며, 제품마다 배포 방식과 설정이 일부 다르다. 웹 애플리케이션의 경우 UI 배포 영역(JSP, Servlet 등)과 Biz. 배포 영역(EJB, POJO 서비스 등)으로 구분되어 있다.

 

 

 

 

애플리케이션 배포 단위

 

 애플리케이션은 배포 시 단순히 컴파일된 실행 파일 또는 Byte Code를 복사하는 방식 이외에 다양한 단위로 묶음, 패키징을 통해서 배포할 수 있다. Java의 경우 jar, war, eqr 등의 방식으로 패키징하여 배포할 수 있다.

 

1. jar(Java Archive)

 Java 라이브러리, 리소스, Property 파일들을 포함한다. 프로그램에서 참조하는 라이브러리, 구현된 비즈니스 서비스를 배포할 때 jar 단위로 패키징하여 배포한다.

 

2. war(Web Archive)

 웹 컨테이너에 배포되는 배포 형식으로 Servlet, jar 파일과 WEB-INF 폴더에 있는 web.xml 파일로 구성된다. 웹 컨테이너상에 배포되어 독립적인 UI단 웹 애플리케이션 서비스를 제공할 수 있다.

 

3. ear(Enterprise Archive)

 jar와 war을 묶어서 하나의 완성된 웹 애플리케이션 서비스를 제공할 수 있다.

 

 

 

 

형상관리(Configuration Management) 시스템

 

 형상관리 시스템은 서비스 제공 대상 형상항목을 식별하여 기준선을 설정하고, 형상 항목 변경 과정에서 점검, 검증 등의 체계적인 통제를 통해 형 상항목 간의 일관성과 추적성을 확보하기 위한 시스템이다. 형상관리 시스템은 소프트웨어의 개발 및 운영/유지보수에 필요한 문서 관리, 변경 관리, 버전관리, 배포관리 및 작업 산출물에 대한 형상관리를 포함한다.

 

1. 형상관리의 범위

 형상관리 범위는 신규 프로젝트 및 보완 개발, 업무시스템의 운영/유지보수, 전산 설비 및 시스템 소프트웨어 등과 관련된 작업, 사용자(EUC: End User Computing) 파일 관리 등을 포함한다.

 

2. 형상관리 시스템에서 사용하는 용어

 

1) 형상관리(Configuration Management)

 소프트웨어의 전체 생명 주기, 즉 계획부터 개발, 운영, 유지보수, 폐기까지 발생하는 모든 활동을 지속적으로 관리하는 것을 의미한다. 이를 위해서는 형상항목들에 대해 식별 표시를 붙여 추적이 가능하게 만들고, 형상항목들에 대한 변경을 제어하고 관리하는 프로세스가 필요하다.

 

2) 형상항목(Configuration Item)

 형상관리 대상이 되는 항목을 의미하며, 유일한 식별자가 부여되어 개별적으로 관리되는 소스 파일, 문서, 기타 사항 등이 포함된다.

 

3) 기준선(Baseline)

 공식적으로 검토되고 협의되어 향후 기준이 되는 형상항목의 집합체를 의미한다.

 

4) 마이그레이션(Migration)

 개발 완료된 시스템이 운영 단계로 전환될 때 관련 소스 파일을 저장 공간(리포지터리)으로 이관시키는 작업을 의미한다.

 

5) 리포지터리(Repository)

 관리 대상을 형상관리 시스템으로 일괄 전송하여 압추그 암호화한 후에 저장, 관리하는 저장 공간을 의미한다. 일반적으로 업무 또는 디렉터리 단위로 구성된다.

 

6) 워크플로(Workflow)

 형상관리 활동을 수행하기 위해 미리 정해진 절차가 형상관리시스템 안에 구현되어 있는 것을 의미한다.

 

7) 반출(Check Out)

 형상항목을 변경하기 위해 형상 리포지터리로부터 전송받는 것을 의미한다. 반출된 형상항목에 대해서는 잠금 상태가 유지된다.

 

8) 반입(Check In)

 반출된 형상항목을 변경 후 다시 형상 리포지터리로 전송하는 것을 의미한다. 반입 시 버전관리는 자동적으로 이루어진다.