티스토리 뷰

● 빌드와 실행

1. 빌드

- 빌드란 단순히 프로그램을 실행하는 것과 다르다.

빌드 : 개발자가 작성한 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립 SW 가공물로 변환시키는 과정
* 독립 SW 가공물 = Artifact(독립적인 하나의 파일)
[Artifact를 만드는 과정(= 빌드 과정)]
1. 소스 코드를 컴파일 한다.

2. 테스트 코드를 컴파일 한다.
3. 테스트 코드를 실행한다.
4. 테스트 코드 리포트를 작성한다.
5. 기타 추가 설정한 작업들을 진행한다.
6. 패키징을 수행한다.
7. 최종 SW 결과물(Artifact)을 만든다.

- 테스트 코드란 개발자가 작성한 코드를 자동으로 테스트 해주는 코드이다.(테스트 코드는 추가로 작성해야한다.)

- 테스트 코드의 여부에 따라 개발 속도, 안정성, 품질 등이 달라질 수 있다.(재직중인 회사는 이게 없어서 아쉽다.)

- 패키징은 (개발자가 직접 작성한 코드)와 (프레임워크 등 외부에서 가져온 소스)를 하나로 묶는 과정이다.


2. 실행

- 작성한 코드(or 테스트 코드)를 컴파일을 거쳐 작동시켜 보는 것

- 빌드는 Artifact가 무조건 나오지만 실행은 Artifact가 나올 수도 있고 아닐수도 있다.

- 참고로 JS, python 같은 인터프리터 언어(한 줄씩 한 줄씩 읽어서 실행)는 컴파일이 필요없다.


● Java build tool

- 위에서 말한 복잡한 build 과정을 매번 수동으로 할 수는 없다. 그렇기에 존재하는 것이 바로 build tool이다.

[build tool을 사용하는 이유]
1. 빌드 과정 자동화 : 소스 코드의 빌드 과정을 자동으로 처리해주는 프로그램
2. 외부 코드(라이브러리) 관리 : 외부 소스 코드(외부 라이브러리) 자동 추가 및 관리(패키징)

- Java build tool의 종류는 아래와 같다.

1. ant

- 설정을 위해 XML 사용

- 간단하고 사용하기 쉽지만 복잡한 빌드 과정을 처리하려면 빌드 스크립트가 길어져 관리가 어렵다.

- 외부 라이브러리를 관리하는 구조가 없다.

https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%95%A4%ED%8A%B8

 

아파치 앤트 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

2. maven

- 설정을 위해 XML 사용

- 외부 라이브러리를 관리할 수 있다.

- 장황한 빌드 스크립트 문제가 해결됐다. 단, 특정한 경우에는 XML이 복잡해진다.(XML 자체의 한계)

 

3. gradle

- 설정을 위해 XML 대신 groovy 언어를 사용한다.

- groovy는 JVM 언어이며 groovy 자체가 하나의 독립적인 프로그래밍 언어이다.

- 외부 라이브러리를 관리할 수 있다.

- 유연한 빌드 스크립트 작성이 가능하며 성능이 좋다.

https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EA%B7%B8%EB%A3%A8%EB%B9%84

 

아파치 그루비 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 그루비(Groovy)는 자바에 파이썬, 루비, 스몰토크 등의 특징을 더한 동적 객체 지향 프로그래밍 언어이다. 자바 가상 머신에서 작동하는 동적 타이핑 프로그래밍

ko.wikipedia.org


cf1) 아래 영상을 보고 정리했다.

https://www.youtube.com/watch?v=L19wXSpv5cs 

 

cf2)

출처 - https://youtu.be/f0cAmTYo4tQ

'Backend > Spring' 카테고리의 다른 글

#5 GET API with DTO  (0) 2023.07.30
#4 HTTP, API, URL  (0) 2023.07.29
#3 @SpringBootApplication / 네트워크  (0) 2023.07.27
#2 API 만들기1 - Spring Project 생성  (0) 2023.07.25
#0 Install - Java, IntelliJ, PostMan, MySQL, git  (0) 2023.07.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함