개발 공부

Build란? (+Deploy, Compile) 본문

CS 및 필요 지식

Build란? (+Deploy, Compile)

hyecozy 2022. 12. 15. 00:57

서버에 기능을 추가하려면

➡️개발자가 로컬 PC에서 개발 후 테스트 > 문제 없음 > 사용자가 사용할 수 있도록 수정된 코드를 실서버에 반영

 

Deploy(배포) : 서버에 반영하는 것

Build(빌드) : 배포하기 위한 과정

 

➡️컴파일이란

컴퓨터가 이해할 수 있는 언어로 바꾸어주는 과정

- 자바 프로젝트 예시

: java의 경우 JVM이 컴파일을 해서 byte코드 형태의 .class 파일이 생긴다

: 소스코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업

 

➡️빌드란

소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정 + 그 결과

- 자바 프로젝트 예시

: 빌드를 한다면, 소스 코드를 컴파일 해서 .class로 변환하고 resources를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF들을 하나로 압축하는 과정을 의미

: 컴파일은 빌드의 부분집합

: 컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일을 Build라는 개념으로 생각하면 된다.

 

✖️빌드 툴 : 빌드 과정을 도와주는 도구 ex. Ant, Maven, Gradle

주요기능

- 전처리(Preprocessing)

- 컴파일(Compile)

- 패키징(Packaging)

- 테스팅(Testing)

- 배포(Distribution)

 

✖️Run = Build + 실행

✖️Link라는 개념도 있었다... 읽어 보니 아는 것도 같은데 용어 자체는 첨 들어봐서 적어보기

➡️Link

소스 파일이 여러 개 생성됨 > A소스 파일에서 B 소스파일에 존재하는 메소드를 호출하는 경우 有

이때 A와 B를 각각 컴파일하면 A가 B에 존재하는 메소드를 찾을 수 없어 호출할 수 없다

그래서 A와 B를 연결해 주는 작업이 필요한데, 이 작업을 Link라고 한다.

 

여러 개로 분리된 컴파일한 소스 파일들을 최종 실행 가능한 파일로 만들기 위해 필요한 부분을 찾아서 연결해 주는 작업.

 

 

Comments