I can do it(Feat. DEV)

컴파일, 빌드 대체 무엇?(feat. 링크, 배포) 본문

개발자 모드/개념

컴파일, 빌드 대체 무엇?(feat. 링크, 배포)

까짓거 해보자 개발자 2023. 2. 3. 11:45
728x90

메이븐 프로젝트를 진행하면서 매일 같이 빌드를 진행하는데 

문득 든 생각이 빌드가 뭐냐고 물어보면 대답을 어떻게 하지??

그래서 갓글에 검색 후 내용 정리함

🔶 컴파일 (Compile) 이란?
- 사용자(개발자)가 작성한 소스 코드를 바이너리 코드(이진 코드)로 알아들을 수 있는 컴퓨터를 위해 기계어로 번역하는 작업
- java의 경우 자바가상머신(jvm)이 실행 가능하도록 .java 파일이 .class로 변환됨
- 이러한 작업을 해주는 프로그램을 컴파일러라고 함
- 쉽게 말해 컴퓨터가 알아먹을 수 있도록 번역해 주는 것

🔶 링크 (Link) 란?
- 여러 개로 분리된 소스파일들을 컴파일한 결과물들에서 최종 실행가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해 주는 작업
- 정적링크 : 컴파일된 소스파일을 연결해서 실행가능한 파일을 만드는 것
- 동적링크 : 프로그램 실행 도중 프로그램 외부에 존재하는 코드를 찾아서 연결하는 작업

🔶 빌드 (Build) 란?
-  소스코드 파일을 실행가능한 소프트웨어 산출물(jar, war 등)로 만드는 일련의 과정을 말함
-  앞서 컴파일된 코드를 웹 애플리케이션이 실행할 수 있는 상태(정적 파일을 .class 파일에서 참조할 수 있는 위치로 변경하는 작업 등)로 변환하는 과정-
- 직군마다 말하는 빌드의 범위가 다르다고 함
- 따라서 컴파일은 빌드의 부분집합에 속한다고 볼 수 있음

🔶 빌드 툴 (Build Tool) 이란?
- 위에서 말한 빌드 과정을 도와주는 도구
- 빌드 툴이 제공해 주는 기능은 전처리, 컴파일, 패키징, 테스팅, 배포가 있음
- 많이 쓰는 빌드 툴은 ant, gradle, maven 등이 있다.

🔶 배포 (Deploy) 란?
- 빌드를 통해 만들어진 소프트웨어 산출물을 실제로 운영하는 서버(사용자가 접근할 수 있는 환경)에 배치시키는 것

 

📢참고 사이트

https://velog.io/@matcha_/%EC%BB%B4%ED%8C%8C%EC%9D%BCCompile-%EB%B9%8C%EB%93%9CBuild-%EB%B0%B0%ED%8F%ACDeploy-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

컴파일(Compile), 빌드(Build), 배포(Deploy) 의 차이점

빌드, 컴파일, 배포라는 말을 들어본 적이 있다. 정확한 뜻은 몰랐다. 그래서 또 정리하러 왔다. 👻우리는 실서버에 어떠한 기능을 추가하거나 수정할 때사용자가 로컬PC에서 개발 후 테스트를

velog.io

https://freezboi.tistory.com/39

 

컴파일과 빌드 차이점

평소 이클립스와 같은 IDE를 사용하기 때문에 컴파일과 빌드의 개념에 대해 잘 알지 못했다. 단지 소스코드를 작성하고 이클립스에서 run을 실행하면 알아서 모든 과정이 자동으로 실행되기 때문

freezboi.tistory.com

 

728x90