일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인증번호 전송
- 로그아웃 기능 구현
- 쇼핑몰 포트폴리오
- 스프링 쇼핑몰
- 스프링 업로드
- 스프링 파일 삭제
- 스프링 HikariCP
- 쇼핑몰 프로젝트
- 파일 업로드
- spring 쇼핑몰
- 스프링 포트폴리오
- Bcrypt
- BCrypt 적용
- 스프링 게시판 구현
- ResponseEntity
- 스프링 쇼핑몰 프로젝트
- 삭제 구현
- 로그인 기능
- 스프링 프로젝트 기본 설정
- 스프링 게시판
- 정규표현식
- oracle 설치방법
- 스프링 이미지
- 이미지 출력
- spring 프로젝트
- 스프링 메일 전송
- 회원가입 기능
- 스프링 프로젝트
- 스프링 프로젝트 설정
- arraylist
Archives
- Today
- Total
Kim VamPa
컴파일(Compile), 링크(Link), 빌드(Build) 정리 본문
728x90
반응형
개인공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
목표
- 컴파일, 링크, 빌드 전체 과정을 이해한다.
- 컴파일, 컴파일러 개념
- 링크, 링커 개념
- 빌드, 빌드툴 개념
빌드 과정
- 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) 이 있다.
Reference
- https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EB%B9%8C%EB%93%9C
- https://ko.wikipedia.org/wiki/%EB%A7%81%EC%BB%A4_(%EC%BB%B4%ED%93%A8%ED%8C%85)
- https://opentutorials.org/module/1594/9734
- https://freezboi.tistory.com/39
- https://wayhome25.github.io/cs/2017/04/13/cs-14/
- https://jhnyang.tistory.com/40
- https://itholic.github.io/qa-compile-build-deploy/
- https://galid1.tistory.com/194
Date
- 2020.03.18 글 등록
728x90
반응형
'공부 > 자바' 카테고리의 다른 글
[Java]다형성(polymorphism)이란? (0) | 2020.04.24 |
---|---|
[Spring] JDBC란? Connection pool이란? (0) | 2020.04.03 |
JDK(Java Development Kit) 설치방법[자바 개발자버전 설치] (0) | 2020.03.19 |
고급언어, 저급언어란? (0) | 2020.03.17 |
객체지향언어란? (0) | 2020.03.17 |
Comments