본문 바로가기
프로그래밍/IT지식

[개발용어] 컴파일, 디버깅, 빌드, 배포

by 준보틱스 2024. 6. 23.

컴파일

컴파일 언어는 코드가 실행되기 전 컴파일러를 거쳐 기계어로 모두 변환되어 실행되는 프로그래밍 언어이다.
출처 : 위키백과

 

쉽게 말해서 컴파일(compile)이란 개발자들이 특정한 프로그래밍 언어(C, C++, Java, Python 등)을 사용해서 컴퓨터가 이해할 수 있는 기계어 코드로 변환하는 작업을 일컫는다. 즉, 컴퓨터와 그 컴퓨터에 설치된 운영체제가 이해할 수 있는 기계어 코드로 변환하는 과정 또는 일이다.

링크

컴파일이 끝나면 나눠져 있는 Object 파일들이나 다른 파일들을 엮어주는 작업이 필요한데, 이 작업을 링킹이라고 한다.

사실 우리가 일반적으로 프로그래밍을 하면서 모든 작업들을 프로그래밍하지는 않는다. 예를 들어 키보드 입력에 대한 Scanner를 쓰지만 어떻게 키보드가 입력되고 그것을 읽는지에 대한 프로그래밍을 따로 하지는 않는다. 그 이유는 키보드 입력에 대한 이벤트나 작업에 대해 표준 라이브러리가 제공되기 때문이다.

이렇게 링크는 프로그래머가 직접 만든 소스코드들을 연결시키는 작업을 하기도 하지만 이런 제공되는 라이브러리들을 연결시켜주는 역할도 한다.

디버깅

디버깅은 컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산을 찾아내고 수정하는 작업 과정을 말한다.
출처 : 위키백과

디버깅은 소프트웨어에 발생하는 문제의 원인을 찾는 것이다. 어떤 새로운 기능을 만들어서 넣거나 기존 기능을 수정하는 작업도 많은 디버깅 과정을 거치게 된다. visual studio 같은 여러 프로그램은 이러한 디버깅을 도와주는 기능이 탑재되어있다. 예를 들어, 코드 중간중간에 검문소를 설치해 그곳을 통과하는 값들이 무엇이 있는 지 확인할 수 있게 해준다.

빌드와 배포

서버에 기능을 추가하기 위해 개발자는 로컬에서 개발 + 테스트를 진행하고, 문제가 없을 경우 코드를 실제 서버에 반영하는 것이 일반적인 프로세스이다.

  • 빌드 : 배포하기 위한 과정
  • 배포 : 서버에 반영하는 것

작업하는 프로젝트에는 직접 작성한 코드 파일, 라이브러리 파일, 이미지 파일 등이 포함된다. 프로젝트가 출시될 때 이것들은 다른 형태로 변형되거나 압축되어 보내지는데 이러한 과정을 빌드라고 한다.

단순히 만들어진 실행파일을 위와 같은 복잡한 절차를 다시 거치지 않고 실행하는 것을 Run 혹은 excute라고 한다.

빌드를 하는 이유는 사용자가 바로 실행할 수 있는 파일 하나로 제공하기 위함이기도 하고 전체 크기를 줄이거나 다른 사람들이 가능한 코드를 못 알아보도록 난독화하기 위해서도 있다.

따라서 작업하는 프로젝트를 출시하기 적합한 형태로 파일 하나로 만들거나, 압축하여 파일 수를 줄이거나 파일 수는 그대로 유지하고 형태만 변환하는 등 여러가지 빌드가 이뤄진다.

배포는 코딩해서 빌드한 결과물을 사용자에게 전달하는 과정이다. 웹 개발 업계에서 배포란 사람들이 보는 웹사이트에 작업한 바를 반영한다는 의미이다.