자격증/정보처리기사 📌 제품 소프트웨어 패키징 - 빌드 자동화 도구
  • 728x90
    반응형

     

     

    목차

       

      빌드 자동화 도구의 개녕

      📌 빌드란 소스 코드 파일들을 컴파일 한 후 여러개의 모듈을 묶어 실행 파일로 만드는 과정이며, 이러한 빌드를 포함하여 테스트 및 배포를 자동화하는 도구를 빌드 자동화 도구라고 한다.

       

      • 애자일 환경에서는 하나의 작업이 마무리될 때마다 모듈 단위로 나눠서 개발된 코드들이 지속적으로 통합되는데, 이러한 지속적인 통합(Continuous Integration)개발 환경에서 빌드 자동화 도구는 유용하게 활용된다.
      • 빌드 자동화 도구에는 Ant, Make, Maven, Gradle, Jenkins 등이 있으며, 이중 Jenkins와 Gradle이 가장 대표적이다.

       

      💡 Ant : 자바 프로그래밍 언어에서 사용하는 자동화된 소프트웨어 빌드 도구
      💡 make : 유닉스 계열 운영 체제에서 사용되는 프로그램 빌드 도구이다.
      💡 Maven : Apache Ant와 Maven의 차이점은 Apache Ant는 소프트웨어 빌드 프로세스를 자동화하는 소프트웨어 도구이고 Mavern은 소프트웨어 프로젝트 관리 도구라는 것이다. Maven은 소프트웨어 빌드 프로세스를 자동화하는 도구 그 이상이다. 전반적으로 Maven은 Ant보다 더 유연하다.
      💡 Gradle : 그루비(Groovy) ? 자바에 파이썬, 루비, 스몰토크 등의 특징을 더한 동적 객체 지향 프로그래밍 언어이며, Gradle은 그루비를 이용한 빌드 자동화 시스템이다.
      💡 Jenkins : JAVA 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구이다.

       

       

      Jenkins

      📌 Jenkins는 JAVA 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구이다.

       

      • 서블릿 컨테이너에서 실행되는 서버 기반 도구이다.
      • SVN, Git 등 대부분의 형상 관리 도구와 연동이 가능하다.
      • 친숙한 Web GUI 제공으로 사용이 쉽다.
      • 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트가 가능하다.

       

      💡 서블릿 컨테이너 ? 서블릿 컨테이너는 클라이언트의 요청을 처리해 주기 위해 서버 측에서 실행되는 작은 프로그램(Server Side Applet)인 서블릿을 실행하고 서블릿의 생명주기를 관리하는 역할을 한다.
      💡 서블릿 ? 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술

       

       

      Gradle

      📌 Gradle은 Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용된다.

       

      • 안드로이드 뿐만 아니라 플러그 인을 설정하면, JAVA, C/C++, Python 등의 언어도 빌드가 가능하다.
      • Groovy를 사용해서 만든 DSL(Domain Specific Language)을 스크립트 언어로 사용한다.
      • Gradle은 실행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행한다.
      • 이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능을 지원하므로 빌드의 속도를 향상시킬 수 있다.

       

      💡 DSL(Domain Sepecific Language) : DSL이란 웹 페이지 영역에 특화되어 사용되는 HTML과 같이 특정한 도메인, 즉 영역이나 용도에 맞게 기능을 구성한 언어를 말한다.
      💡 스크립트 언어(Script Language) : 스크립트 언어는 HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 사용하는 것으로 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어이다.

       

       

       

      728x90
      반응형
    상단으로