1 분 소요

📌 빌드 도구가 없는 경우

✔ 빌드 (Build)

✅ 빌드란?

소스 코드 파일을 여러 단계의 과정을 거쳐 컴퓨터에서 실행할 수 있는
독립 SW 가공물로 변환시키는 과정.

  • 쉽게 말해 개발자가 타이핑한 수천 줄의 코드를 하나의 파일로 만드는 것.

✅ 빌드 과정을 세분화

  1. 소스 코드 컴파일
  2. 테스트 코드 컴파일
  3. 테스트 코드 실행
  4. 테스트 코드 리포트 작성
  5. 기타 추가 설정 작업 진행
  6. 패키징 수행
  7. 최종 SW 결과물를 생성

✅ 테스트 코드

  • 내가 작성한 코드를 자동 테스트해주는 코드를 추가로 작성한 것.
  • TDD, JUnit5
  • 테스트 코드 작성 역시 빌드 과정에 포함이 된다.

✅ 패키징

  • 현업에서 다른 사람들이 만들어 놓은 오픈 소스를 사용하는 경우.
    • Spring Boot 프레임워크를 사용한다.
    • 엑셀 다운로드 POI 오픈 소스를 사용한다.
    • 우리가 사용한 코드와 해당 오픈 소스를 하나로 패키징한다.

✅ 실행 (Run)

  • 개발자가 작성한 코드 (혹은 테스트 코드)를 컴파일을 거쳐, 작동시켜 보는 것.
  • 독립 SW 가공물이 나올 수도 있고, 나오지 않을 수도 있다.
  • 빌드와, 실행을 구분하여 이해해야 한다.
  • 인터프리터 언어(python, ruby, javascript)
  • 컴파일 언어(Java, C#..)

✔ 빌드를 수동으로 한다면?

스크린샷 2021-08-10 20 02 48

  • 여러 복잡한 단계를 한번에 하는 것은 쉽지가 않다.
  • 모든 과정을 수동으로 해야하기 때문에 리소스 낭비를 가져온다

✅ 빌드 툴 (Build tool)

  • 소스코드의 빌드 과정을 자동으로 처리 해주는 프로그램이다.
  • 외부 소스 코드(외부 라이브러리) 자동 추가 및 관리한다.
  • JAVA에서는 Maven, Gradle, Apache Ant가 존재한다.

✅ Maven

  • 설정을 위해 xml을 사용한다.
  • 외부 라이브러리를 관리할 수 있다.
    • pom.xml
  • 장황한 빌드 스크립트 문제 해결 할수있다.
  • 특정 경우 xml이 복잡해진다.
  • xml 자체의 한계가 있었다.

✅ Gradle

  • 설정을 위해 groovy 언어를 사용한다.
  • 외부 라이브러리를 관리할 수 있다.
  • 유연하게 빌드 스크립트를 작성할 수 있다.
  • 캐싱이 잘되어 성능이 뛰어나다.

✅ 정리

  • 빌드란 단순히 실행하는 것과 다르다.
  • 빌드 과정 자동화와 외부 라이브러리 관리를 위해 빌드 툴이 사용된다.
  • 대표적으로 Maven, Gradle이 존재한다.

참고 자료

댓글남기기