728x90
1. 배경 설명
소프트웨어 개발은 단순한 코딩에 그치지 않고, 작성된 소스코드를 실제 실행 가능한 형태로 변환하는 일련의 과정을 포함합니다. 이 과정에서 필수적으로 수행되는 작업 중 하나가 바로 **"빌드(Build)"**입니다. 개발자는 사람이 읽을 수 있는 고급 언어(예: Java, C++)로 프로그램을 작성하지만, 실제 컴퓨터가 실행하기 위해선 기계어 수준의 실행 파일이 필요합니다. 이 변환 과정을 "빌딩(Building)"이라 합니다.
2. 개념 또는 정의
**빌딩(Building)**은 소스코드와 리소스 파일들을 컴파일, 링크, 패키징하여 실행 가능한 애플리케이션 또는 배포 가능한 산출물로 만드는 과정을 말합니다.
3. 어떤 기술인지 구체적으로 설명
빌딩은 다음과 같은 세부 기술 및 작업 단계를 포함합니다:
- 컴파일(Compile): 소스코드를 목적코드(Object Code)로 변환.
- 링크(Link): 여러 목적코드를 하나의 실행파일로 연결.
- 패키징(Packaging): 실행파일 외에 필요한 설정 파일, 라이브러리 등을 하나의 배포 파일로 묶는 과정.
- 리소스 처리: 이미지, XML, JSON 등의 파일을 필요한 형식으로 전처리 또는 포함.
Java 프로젝트의 경우 javac로 컴파일하고, .class 파일을 jar로 패키징합니다. C++ 프로젝트는 gcc 또는 clang을 사용하며, .exe 또는 .out 실행파일을 생성합니다.
4. 주요 기술
- Make / CMake / Gradle / Maven / Ant: 빌드 자동화를 위한 도구
- CI/CD 파이프라인: 빌드 과정을 자동화하고 테스트/배포까지 연계
- 빌드 스크립트(build.gradle, pom.xml 등): 빌드 명세를 선언적으로 기술
- IDE 통합 빌드 기능: IntelliJ, Eclipse, Visual Studio 등의 빌트인 기능
5. 활용방법 및 전망
- 자동화: 빌드는 Jenkins, GitHub Actions 등과 연계되어 자동으로 실행되어 개발 효율성을 극대화합니다.
- DevOps 핵심 프로세스: 빌드는 지속적 통합(CI)과 배포(CD)의 핵심 고리로 활용됩니다.
- 모노레포/마이크로서비스 환경에서 병렬 빌드 및 캐시 빌드 기술이 주목받고 있습니다.
- 클라우드 기반 원격 빌드 플랫폼(예: Bazel, GitLab CI runners) 도입도 증가하고 있습니다.
6. 유사 기술과 비교
| 항목 | 빌딩(Building) | 디플로이(Deploying) |
| 정의 | 실행 파일로 컴파일하고 패키징하는 과정 | 사용자 환경에 설치/배포하는 과정 |
| 목적 | 실행 가능한 산출물 생성 | 산출물을 실제 환경에 반영 |
| 도구 | Gradle, Make, Maven 등 | Docker, Kubernetes, Ansible 등 |
정보기술연구모임
https://cafe.naver.com/itpewiki
728x90
'IT 자료 > Software engineering' 카테고리의 다른 글
| GitHub(깃허브) (0) | 2025.05.13 |
|---|---|
| 롤링 업데이트(Rolling Update) (0) | 2025.05.11 |
| UML과 SysML의 차이점 (1) | 2025.05.10 |
| 블랙박스 테스트(Black-box Testing) (1) | 2025.05.10 |
| 화이트박스 테스트(White-box Testing) (0) | 2025.05.10 |