빌드
- 컴파일을 포함한 프로세스 전체를 뜻함
- 소스 코드 파일을 실행 가능한 소프트웨어 산출물로 변환하는 과정
- 링크를 통해서 실행파일이나 라이브러리 파일을 말하기 때문에 컴파일 이후 링크 작업까지 포함함
컴파일
- 소스 코드를 바이너리 파일로 변환하는 과정
실제 빌드 툴 예시
Wepack
scripts/build.js

- 웹팩의 빌드 스크립트를 까보면 컴파일러라는 용어를 확인할 수 있다.
- 기본적으로 npm run build 시 리액트를 번들링하고 최적화하여 빌드한다
- 이 역할을 Webpack을 통해 수행한다
- 모듈 번들링 은 의존성 그래프를 분석하여 번들링하는 작업 또한 포함된다
NestJs

- nestjs 또한 내부적으로 웹팩을 통한 빌드를 수행하고 있다
Maven
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>mavenProject</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
- 빌드 정보를 담고 있는 파일이며 의존성 및 컴파일 관련 정보 등의 메타정보를 담고 있다.
Maven 패키징 빌드 시

Gradle
plugins {
id("java")
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
testImplementation(platform("org.junit:junit-bom:5.10.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
}
tasks.test {
useJUnitPlatform()
}
- 그레이들도 마찬가지로 build.gradle 파일에서 설정 정보를 확인할 수 있다

- 그레이들 Jar build 명령어 수행 시 컴파일 테스크를 수행함을 알 수 있다
출처 :
'CS' 카테고리의 다른 글
| [Network] IP주소 (0) | 2024.10.12 |
|---|---|
| [용어정리] CPU의 속도(프로세서의 속도) (0) | 2024.10.06 |
| [용어정리] 버퍼 (0) | 2024.10.06 |
| [Network] 유니캐스트, 멀티캐스트, 브로드캐스트, 애니캐스트 / MAC 주소 (0) | 2024.10.05 |
| [Network] 네트워크 연결과 구성요소 (0) | 2024.10.05 |