나는 이번 프로젝트를 진행하면서 아직도 디버깅과 컴파일, 그리고 빌드에 대한 개념이 잘 잡혀있지 않았음을 알게되었다.
팀원들간 소통하는 과정에서 내 스스로가 어 이게 이렇게 불리는게 맞나? 라는 생각이 들어서, 스스로 부끄러움을 느꼈다.
하지만 모르면 알면 되는 법이기에 내 스스로 정리를 해보고자 한다.
먼저 사전적 정의에 대해서 알아보면, 위키 피디아에서는 각각의 개념을 아래와 같이 정의 하였다.
디버깅 또는 디버그는 컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산(버그)을 찾아내고 그 원인을 밝히고 수정하는 작업 과정을 뜻한다.
고급 프로그래밍 언어를 실행 프로그램으로 만들기 위해 저급 프로그래밍 언어(예, 어셈블리 언어, object 코드, machine code)로 바꾸는 데 사용된다.
소스 코드 파일을 컴퓨터나 휴대폰에서 실행할 수 있는 독립(standalone) 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다. 소프트웨어 빌드에 있어 가장 중요한 단계들 가운데 하나는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정이다.
그러면 여기서 궁금한 점은 내가 주로 사용하는 자바의 컴파일 과정은 어떻게 진행되는걸까?
자바는 위의 빌드 단계를 거친다. 좀 더 각 단계에 대해서 자세하게 이야기 해보자.
자바에서 컴파일은 아래와 같은 단계를 거친다.
.class는 JVM은 이해할 수 있지만, 아직 컴퓨터가 이해할 수는 없다.
이 과정에 의해서 인텔리제이에서 빌드(망치 모양)를 눌렀을 때 .class 파일로 변환된다.
여기서 생기는 부수적인 궁금증이 있었다. 컴파일과 빌드는 어떤 차이를 가지고 있을까?
개념들은 위에서 충분히 살펴보았고, 간단하게 설명을 하면 컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일이 빌드이다. 즉 컴파일은 빌드의 단계 중 하나라는 것이다.
Build = Complie + 그 외 작업
Run = Build + 실행 = (Complie + 그외작업) + 실행
https://junroot.github.io/programming/Java의-빌드와-배포/
잘 읽었습니다!!