목표
- 컴파일, 링크, 빌드 전체 과정을 이해한다.
- 컴파일, 컴파일러 개념
- 링크, 링커 개념
- 빌드, 빌드툴 개념
빌드 과정
1-1 빌드과정
- 1-1그림 1번은 컴파일(compile)에 해당한다.
- 1-1그림 2번은 링크(Link)에 해당한다.
- 1번과 2번 두과정을 합쳐서 빌드(Build)라고 한다.
* 소스코드(원시코드) : 컴퓨터 프로그램을 (사람이 읽을 수 있는) 프로그래밍 언어로 기술한 글을 말한다.
* 목적코드(목적파일) : 컴파일러나 어셈블러가 소스코드 파일을 컴파일 또는 어셈블해서 생성하는 파일이다.
컴파일, 컴파일러란?
- 컴파일(Complile) : 원시 코드에서 목적 코드로 옮기는 과정을 말한다.
- 그림 1-1 1번을 뜻한다.
- 다시말해서 고급 언어(java, c언어, python 등)에서 저급 언어(기계어, 어셈블리어)로 번역하는 과정이다.
- 더 큰 의미의 컴파일 뜻 으로는 그림1-1 전체를 말하기도 한다.
- 컴파일러(Compiler) : 컴파일을 실행하는 프로그램을 말한다.
링크(Link), 링커(Linker)란?
- 링크(Link) : 컴파일러의 결과물인 목적코드(Object code)들을 최종 실행 가능한 실행파일(.exe) 만들기 위해 연결 ,병합 해주는 작업입니다.
- 링커(Linker) : 링크를 실행해주는 프로그램입니다.
- 정적 링크(static link)와 동적 링크(dynamic link)로 나뉜다.
- 정적 링크 : 컴파일된 소스파일을 연결해서 실행가능한 파일을 만드는 것입니다.
- 동적 링크 : 프로그램 실행 도중 프로그램 외부에 존재하는 코드를 찾아서 연결하는 작업을 말합니다.(동적 링크는 링커가 필요가 없다.)
빌드(Build),빌드 툴(Build tool)란?
- 빌드(Build) : 소스 코드 파일을 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다.
- 다시말해, 컴파일과 링크 두개의 과정을 합친것을 뜻한다.
- 빌더 툴(Build tool) : 빌드를 수행하는 도구를 말한다.
- 종류 : Ant, Maven, Gradle
- 빌드 툴이 제공하는 기능은 전처리(preprocessing), 컴파일(Compile), 패키징(packaging), 테스팅(testing), 배포(distribution) 이 있다.
cf)
- 프리컴파일이란?
고급언어를 기계어로 번역하는 컴파일(Complie) 전에 수행하는 작업으로,
필요한 라이브러리를 불러오거나 코드에 삽입된 SQL문을 DB와 연결하는 작업을 수행한다.
ex) Pro*C
728x90
'CS' 카테고리의 다른 글
데이터 웨어하우스 [CS] (0) | 2023.06.11 |
---|---|
Batch and Stream Processing [CS] (0) | 2022.12.22 |
Data Governance [CS] (0) | 2022.12.19 |
Index & B-Tree [CS] (0) | 2022.12.14 |
Process & Thread[CS] (0) | 2022.12.14 |