Software Quality Engineering/ⓣⓔⓢⓣ

[개발 환경] 빌드 스크립트

뚱땡이 우주인 2017. 11. 22. 15:42

'빌드란 실행 환경에 맞춰서 소스 코드를 실행 가능한 형태의 바이너리로 변경하고 패키징하는 일련의 과정을 말한다.'


  • c/c++ : make 기반
  • java : 아파치 앤트(ant) 혹은 메이븐(Maven)
  • 기타 오픈소스 프로젝트 중심으로 gradle 사용

ANT VS MAVEN

https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/



유연성 관리

Ant : 자유도가 높음, 파일 복사, Shell 명령 실행 가능함, 스크립트 내에서 빌드, 패키징은 물론이고 배포, 테스트, 미들웨어에 대한 기동 저지까지 모든것이 가능 하나 반대로 표준화가 어렵다.


Maven : Ant의 단점을 보완, 템플릿 기반의 빌드 스크립트를 구성, 표준화된 환경에서 빌드 가능, 반대로 템플릿 이외의 기능에 대해서는 유연성이 떨어진다. (예를들어 파일을 특정 클라우드에 복사), 플러그인을 통해서 템플릿 기능을 확장 가능



◎ 의존성 관리

Ant : 소스 코드와 라이브러리 그리고 기타 의존된 리소스 파일등이 디렉토리에 있는 것을 가정하고 빌드 진행


Maven : 컴파일 하는데 필요한 라이브러리에 대한 의존성을 정의하고, 정확한 버전을 정의하면, 컴파일 타임에 원격에 있는 저장소로부터 명시된 버전의 라이브러리를 내려받아서 컴파일과 패키징을 진행하기 때문에 라이브러리의 버전 불일치가 발생할 염려가 없다.