Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

우당탕탕 개발일지

빌드(Build)란? 본문

기타/개발 지식

빌드(Build)란?

YUDENG 2024. 1. 4. 17:44

빌드(Build)

작성된 코드를 실제 기기에서 실행 될 수 있는 소프트웨어로 변환하기 위한 과정

보통 컴파일을 포함하여 배포하기 직전까지의 모든 과정을 '빌드'라고 표현한다.

 

빌드 도구

프로젝트가 커지면 커질수록 라이브러리를 직접 추가하여 빌드하기에는 매우 비효율적이다. 

빌드 도구는 빌드 자동화를 시켜주는 도구이다.

 

Back-end

 

1. 라이브러리 다운로드

2. 소스코드를 바이너리코드로 컴파일

3. 바이너리 코드를 패키징

    -  jar

       Java 애플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일

       JRE만 있어도 실행이 가능

 

    -  war

       Servlet / JSP 컨테이너에 배치할 수 있는 웹 애플리케이션을 압축한 파일

       별도의 웹 서버 필요 (WAS)

4. 테스트 실행

5. 프로덕션 시스템에 배포

    - package (archive)

       아카이브 파일(.war, .ear)로 배포

       아카이브 파일은 WAS에 의해 압축이 풀린다.

       원격 서버에 배포시 한 개의 파일만 전송하면 된다.

        WAS (Tomcat)에서 제공되는 업로드를 통한 배포 기능을 활용할 수 있다.

    -  exploded

       아카이브 파일을 압축 해제한 형태의 디렉터리로 배포

       별도의 디렉터리에 원본 소스를 복사하여 만든다.

       압축 및 해제 과정이 불필요하다.

    -  in-place

       소스 디렉터리를 그대로 배포

       로컬 서버에 배포하는 경우 적합하다.

 

(1) ANT

빌드만 진행해주는 도구이다.

웹 프로젝트에 필요한 라이브러리를 직접 다운받아서 사용해야 한다.

 

(2) Maven

 

Apache Maven은 소프트웨어 프로젝트 관리 도구이다.

clean - validate - compile - test - package - verify - install - site - deploy 의 라이프 사이클을 가진다.

Maven은 필요한 라이브러리를 pom.xml에 정의한다.

 

Maven에서 기본적으로 지원하지 않는 빌드 과정을 추가해야 하는 경우 그 과정이 복잡하고, 특정 플러그인 설정이 약간만 달라도 유지보수성을 떨어뜨린다는 단점으로 인해 Maven에서 Gradle로 넘어가는 추세라고 한다.

 

(3) Gradle

Groovy를 기반으로 한 빌드 도구이다.

Java, C/C++, 파이썬 등과 같은 여러 가지 언어를 지원하며, build.gradle에 빌드에 대한 모든 기능을 정의한다.

 

Front-end

 

1. 프로젝트를 build 하면 build 파일이 생성된다.

→ build 파일 내에는 HTML, CSS, JS 정적 파일이 생성된다.

2. build 폴더의 정적 파일을 실행시키기 위해서는 웹서버가 필요하다.

 

프론트엔드의 대표적인 빌드 도구로는 Webpack, Vite가 있다.

 

[참고]

 

Node.js

브라우저 밖에서도 자바스크립트를 실행할 수 있는 환경

구글이 구글 크롬에 사용하려고 제작한 오픈소스 자바스크립트 엔진을 기반으로 제작된 자바스크립트 런타임이다.

보통 배포시 파일 압축 → 코드 난독화 → 폴리필 추가 등 개발 이외의 작업을 거친 후 배포하지만, Node.js는 이러한 과정을 자동화 할 수 있게 지원해준다.

 

NPM(Node Package Manager)

자바스크립트 라이브러리를 설치하고 관리할 수 있는 패키지 매니저로, Node.js에서 사용할 수 있는 다양한 모듈을 관리해주는 프로그램이다. npm을 사용해서 package.json 파일에서 라이브러리를 관리할 수 있다.

 npm install을 하면 package.json의 의존 파일들을 설치한다.

 npm start를 하면 package.json의 script start 구문을 실행하여 서버를 로드한다.

 

 

728x90

'기타 > 개발 지식' 카테고리의 다른 글

[Git] Issue, Branch 활용  (0) 2024.08.21
공공데이터포털 오픈 API  (0) 2024.05.12