빌드, 런타임, 컴파일

강연주·2025년 2월 3일

📚 TIL

목록 보기
133/186

컴파일(Compile)

개발자가 작성한 소스 코드를 기계어(machine code) 또는 중간 코드(intermediate code)로 변환하는 과정이다.

예를 들어, C++ 소스코드(.cpp)를 컴파일하면 목적 파일(.obj)이 생성된다

컴파일러는 코드의 문법적 오류를 검사하고, 최적화를 수행한다.
Java의 경우 소스코드(.java)를 바이트코드(.class)로 변환한다.


빌드(Build)

컴파일을 포함한 더 큰 개념으로, 실행 가능한 소프트웨어를 만드는 전체 과정이다.
소스 코드 컴파일, 리소스 파일 복사, 라이브러리 연결, 실행 파일 생성 등을 포함한다.

예를 들어 Java 프로젝트 빌드 시

  • 소스 코드 컴파일
  • 리소스 파일 복사
  • 외부 라이브러리 연결
  • JAR/WAR 파일 생성

런타임(Runtime)

프로그램이 실제로 실행되는 시점과 환경을 의미한다.
프로그램 실행 중에 발생하는 모든 동작과 상황을 포함한다.

예시

  • Java Runtime Environment (JRE)는 자바 프로그램 실행에 필요한 환경을 제공
  • 메모리 할당/해제, 예외 처리 등이 런타임에 발생

차이점

발생 시점

  • 컴파일 : 프로그램 실행 전
  • 빌드 : 프로그램 실행 전 (컴파일 포함)
  • 런타임 : 프로그램 실행 중

목적

  • 컴파일 : 소스 코드를 기계어로 변환
  • 빌드 : 실행 가능한 소프트웨어 패키지 생성
  • 런타임 : 프로그램 실행 환경 제공 및 관리

오류 유형

  • 컴파일 : 문법 오류(Syntax Error)
  • 빌드 : 종속성 오류(Dependency Error), 설정 오류
  • 런타임 : 실행 중 발생하는 오류(예: NullPointerException)
profile
아무튼, 개발자

0개의 댓글