본문 바로가기

기반시스템/빌드/릴리즈

빌드와 컴파일의 차이


kenu님의 블로그에 빌드와 컴파일에 대한 차이를 묻는 글이 올라와서 간단히 설명해보려고 합니다.

컴파일 : 소스코드 파일 등의 원시파일을 실행파일, 라이브러리 등의 Object 파일로 바꾸는 작업

빌드 : 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정

컴파일은 빌드의 부분 집합입니다.
빌드 과정은 제품마다 서로 다르지만 간단한 예를 하나 들어보면 다음과 같습니다.
보통 아래 과정은 Build Script에 의해서 한번에 자동으로 실행됩니다.
실제 예는 아래 나열한 것보다 수십배는 더 복잡합니다. ^^
  1. 소스코드관리시스템에 태그(베이스라인) 작성
  2. 작성된 태그(베이스라인) 체크아웃을 통해 빌드 전용시스템으로 소소코드 가져오기
  3. 새로운 빌드번호 획득 및 반영
  4. 컴파일(빌드) 시작
  5. 컴파일(빌드)시 발생한 에러 처리
  6. Doxygen 또는 JavaDoc 생성
  7. 팩키징 절차를 통해서 마스터 파일 생성
  8. 스모크 테스트 등 자동화 테스트 실시
  9. 테스트 결과 처리
  10. 빌드 결과를 관련자에 이메일로 전송
  11. 마스터 서버로 마스터 파일 복사
  12. 릴리즈 결과 전사 공지
빌드릴리즈는 항상 짝을 이뤄 따라 다니며, 수많은 B/R(Build/Release) 엔지니어들이 이에 대한 자동화와 효율성/생산성 증대를 위해서 연구를 하고 있지요. 
소프트웨어 프로젝트에서 빌드의 중요성에 대해서는 제가 이미 포스팅을 한 글이 있으니 참고하세요.