빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie)
서버에 기능을 추가 하려면 개발자가 로컬 PC에서 개발을 하고 테스트까지 진행한 뒤에 문제가 없을 경우 사용자가 사용할 수 있도록 수정된 코드를 실서버에 반영해야 합니다.
서버에 반영을 하는 것을 "배포"라고 하고 배포(Deploy) 하기 위한 과정을 "빌드"라고 합니다.
● 빌드(Build)란?
소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말합니다.
예를 들어 Java프로젝트를 진행한다면 개발자가 작성한 A.java와 여러가지 정적 파일등에 해당하는 resource가 존재합니다.
빌드를 한다면 소스코드를 컴파일해서 .class로 변환하고 resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF 들을 하나로 압축하는 과정을 의미합니다.
컴파일은 빌드의 부분집합이라고 생각하시면 됩니다.
또한, 빌드 과정을 도와주는 도구를 Build Tool이라고 합니다.
즉, 컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일을 Build 라는 개념으로 생각하시면 됩니다.
● 빌드 툴(Build Tool) 종류
빌드에서는 컴파일, 테스트, 배포 등 과정이 포함될 수 있고, 빌드 과정을 도와주는 도구를 빌드 툴이라 합니다.
일반적으로 빌드 툴이 제공해주는 기능으로는 다음과 같은 기능들이 있습니다.
전처리(preprocessing), 컴파일(Compile), 패키징(packaging), 테스팅(testing), 배포(distribution)
빌드 툴로는 Ant, Maven, Gradle 등이 있습니다.
● 컴파일이란?
컴퓨터가 이해할 수 있는 언어로 바꾸어주는 과정을 말하며, java의 경우 컴파일의 결과로 자바가상머신(JVM)에서 실행가능한 ".class" 파일이 생깁니다.
컴파일과 빌드와 같다고 생각하실 수 있지만, 컴파일은 빌드를 진행하는 과정의 일종의 하나인 Task 입니다.
즉, 소스코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업을 말한다.
★ 결론
Build = Complie + 그 외 작업
Run = Build + 실행
= (Complie + 그외작업) + 실행
Ref: https://velog.io/@leede418/CS-Compile-Link-Build-%EB%9E%80
'Dev. Etc > knowledge' 카테고리의 다른 글
GraphQL의 개념 및 특징 (RESTful API 비교) (0) | 2021.12.09 |
---|---|
[CI/CD] Jenkins 과 GitHub Actions의 개념, 차이점 (2) | 2021.05.25 |
[웹소켓] WebSocket의 개념 및 사용이유, 작동원리, 문제점 (0) | 2021.03.11 |
[Web] 크롤링(Web Scraping)이란? (0) | 2021.03.07 |
[메이븐] Maven은 무엇일까? (0) | 2020.06.21 |
IP 의미 및 주소체계 & 클래스 구별법 (0) | 2019.11.30 |
스냅샷(Snapshot) 개념 (0) | 2019.11.24 |
데이터 백업(Data Backup) 개념 (0) | 2019.11.23 |