일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 연결요소
- DynamicProgramming
- 인오더
- n진법게임
- BFS
- 이분그래프
- 프로그래머스
- Bottom Up
- 포화이진트리
- 도커
- 피보나치
- 웹개발
- 백준
- 이진트리
- 포스트오더
- dfs
- Java
- 순회
- 자바
- 링킹
- 그래프
- 바인딩
- 전공자따라잡기
- 알고리즘
- 1707
- JAVA_HOME
- 동적계획법
- 11724
- 완전이진트리
- 9093
- Today
- Total
물음표 살인마
컴파일, 링크, 빌드, 배포에 대한 개념 정리 본문
지금까지는 로컬에서만 개발을 하다 첫 프로젝트를 하며 처음 배포를 해봤다.
이참에 컴파일, 빌드, 배포의 개념에 대해 다시금 정리해보고자 한다.
컴파일은 내가 작성한 소스 코드를 기계어(컴퓨터 언어)로 번역해주는 것이다.
자바의 경우, 코드가 JVM에서 돌아갈 수 있게 바이트코드로 컴파일되어 실행된다.
자바 파일을 컴파일하면 CLASS파일이 생성되는 걸 볼 수 있다.
* 바이트코드: 특정 하드웨어가 아닌 가상 컴퓨터에서 돌아가는 실행 프로그램을 위한 이진 표현법.
컴파일을 해 목적 파일(Object File)을 생성했으면, 이 목적 파일들을 연결해줘 실행파일로 만들어야 한다.
여기서 목적파일을 연결해 실행파일을 만드는 과정을 링크라고 한다.
링커는 목적 파일을 하나로 합치고 거기에 라이브러리를 더해 실행 파일을 만든다.
링크에는 정적 링크와 동적 링크가 있는데 간단하게 설명하자면,
정적 링크는 프로그램이 필요로 하는 부분을 실행파일에 바로 복사하는 것
동적 링크는 windows 시스템 디렉토리 안에 있는 DLL(Dynamic-Link Library)에 라이브러리를 저장해놓고 다양한 프로그램에서 공유해서 쓰는 것이다.
이렇게 컴파일하고, 링크해 실행파일을 만드는 과정을 빌드라고한다.
그리고 만들어진 war, exe 등의 파일을 실행시키기 위해 run, execute 를 사용한다.
런과 빌드의 차이점을 모르는 사람이 많던데, 빌드로 실행파일을 만들고, 그 실행 파일을 런 하는 것이다.
대표적인 빌드 도구로는 Ant, Maven, Gradle이 있는데 이들의 장단점은 아래의 포스팅을 참고하면 된다.
==> (준비중...)
마지막으로 배포는 빌드함으로써 완성된 실행 파일(jar, war, exe 등)을 사용자가 접근할 수 있는 환경에 배치하는 것이다.
추가적으로 공부할 키워드 → jenkins, CI/CD
아, 마지막으로 내가 정말 헷갈렸던 것은 컴파일과 빌드의 차이점이었는데, 이에 대한 해답은 두 가지가 있다.
1. 빌드의 넓은 의미에 컴파일에서부터 링크, 배포가 포함되기도 한다.
2. 컴파일은 소스 파일 하나 하나를 컴파일 하는 것, 빌드는 모든 소스파일을 컴파일, 링크해 하나의 실행파일로 만드는 것이다.
'개발지식' 카테고리의 다른 글
웹개발 회원 인증 방법 정리 (0) | 2023.04.23 |
---|