Table of Contents
컴파일(Compile)
컴파일 : 사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꾸는 과정입니다.
즉 개발자가 짜는 소스 코드(원시 코드)를 컴퓨터 프로세서가 읽을 수 있는 목적 파일(코드)로 바꾸어 주는 작업입니다.
* Java의 경우 .java 파일 -> java 컴파일러(javac)를 거쳐 생성된 .class가 컴파일 결과물입니다.
* C의 경우 .c 파일 -> 전처리 과정, 컴파일러와 어셈블러를 거쳐 생성된 Object 파일이 컴파일 결과물입니다.
컴파일과 링크(Link), 빌드(Build)
1. 링크 : 컴파일 된 목적 파일을 실행 가능한 파일로 만들게끔 연결하는 작업입니다.
컴파일 후 소스 파일 A에서 소스 파일 B와 라이브러리 C를 불러오기 위해 이들을 '링커'가 연결해주는 작업을 합니다.
* 일부는 컴파일 + 링크 작업까지를 넓은 범위의 컴파일이라고 이해하기도 합니다.
1-1. 링크의 종류 :
* 정적 링크(Static Link) : 컴파일 된 목적 파일들을 찾아 연결하여 실행 가능한 파일을 만드는 것
* 동적 링크(Dynamic Link) : 프로그램 실행 중 외부에 존재하는 필요하는 코드들을 찾아 연결하는 것
2. 빌드 : 소스 코드를 컴퓨터에서 실행할 수 있는 독립적인 소프트웨어 등의 형태로 가공하는 것
즉, 빌드 = 컴파일 + 링크 입니다.
* Java의 경우는 실행 가능한 .jar, .war 파일이 그 결과물입니다.
* C의 경우 앞의 과정을 거쳐 만들어진 실행 가능한 .exe 파일이 그 결과물입니다.
2-1. 빌드 툴 : 빌드 과정을 도와주는 툴입니다.
전처리(preprocessing), 컴파일(Compile), 패키징(packaging), 테스팅(testing), 배포(distribution) 기능을 제공합니다.
종류로는 Ant, Maven, Gradle 등이 있습니다.
디버그(Debug)
디버그 : 말 그대로 버그를 잡아내기 위한 작업으로, 실행에 있어서 오류의 원인을 찾아내는 것이 목적입니다.
디버그는 일반적으로 소스 코드를 작성할 수 있는 IDE 툴에서 제공하는 *중단점 설정 기능을 활용할 수 있습니다.
* 디버그 버튼을 누를 시 처음부터 ~ 설정한 중단점까지 설정한 구역에 대한 코드만 실행이 되며 그 결과를 확인 가능
실행(Run)
실행 : 소스 코드의 전체를 실행하는 것을 목적으로 하는 작업입니다.
디버그의 중단점 설정을 안할 시 실행과 디버그에서 기능적인 차이점은 없습니다.
'DEV > CS' 카테고리의 다른 글
[CS] 정적 웹과 동적 웹, WEB, WAS의 이해 (0) | 2023.10.18 |
---|