[영상후기] [10분 테코톡] 루나의 Gradle

박철현·2023년 3월 24일
0

영상후기

목록 보기
57/160

movie

  • Gradle : Groovy를 기반으로 한 오픈소스 빌드 도구, 빌드 자동화 시스템

  • 빌드 : 소스코드를 컴파일, 테스트, 정적분석 등을 실행하여 실행 가능한 애플리케이션으로 만들어주는 과정
    -> 시대가 변화면서 다양한 라이브러리의 등장으로 인한 문제점 발생
    --> 1) 라이브러리 다운로드 및 추가 번거로움
    --> 2) 개발자들 간의 버전관리 어려움
    --> 3) 다운받은 jar 파일의 보안 위험

  • 빌드 도구 : 계속해서 늘어나는 라이브러리를 자동 추가 및 관리, 프로젝트를 진행하며 라이브러리 버전을 쉽게 동기화 할 수 있도록 도와줌
    --> Gradle은 빌드 도구로 전체적 빌드과정을 편리하게 해주는 도구

  • Groovy : JVM 상에서 실행되는 스크립트 언어, Java와 유사한 문법구조를 가지며 호환성이 아주 좋다.

  • Gradle의 장점
    1) 프로젝트 설정 주입(Configuration Injection) 방식으로 정의
    2) 멀티 프로젝트 빌드
    3) 빌드 속도가 빠름

  • 프로젝트 설정 주입 방식 정의 : 필요한 정보가 있으면 프로젝트에 주입하는 것(Maven의 상속 구조보다 재사용 및 중복제거에 용이, 프로젝트의 조건을 체크할 수 있어 프로젝트별 주입되는 설정을 다르게 할 수 있다)

  • 멀티 프로젝트 빌드 : 하나의 repository내 여러 하위 프로젝트 구성 가능(공통된것 따로, 각각 하나씩 가능)
    --> ex) 관리자, 사용자 서버 분리 진행의 경우 각각 gradle 사용 가능

  • 빌드 속도가 빠름
    1) 점진적 빌드 : 마지막 빌드 호출 이후 task의 입력, 출력, 혹은 구현이 변경을 확인하여 변경되지 않았다면 빌드 실행하지 않음
    (변경되지 않은 부분에 있어 불필요한 중복 빌드가 일어나지 않음)

    2) 빌드 캐시 : 빌드 결과물을 캐싱해두었다가 하나의 빌드에서 사용되는 파일들이 다른 빌드에서 사용된다면 캐시된 파일을 재사용(중복 빌드 줄임)

    3) 데몬 프로세스 : 서비스의 요청에 응답하기 위해 오래 동안 살아있는 프로세스
    --> 메모리 상에 빌드 결과물 보관(한번 빌드된 프로젝트는 다음 빌드에서 매우 적은 시간만 소요)
    --> 점진적 빌드와 차이점은 빌드 사이에 다음 빌드를 유지하고 있다는 의미
    --> 그래들을 빌드할때마다 초기화하는 시간에 영향을 주고 빌드 캐싱을 보다 효과적으로 허용할 수 있다는 점에서 데몬 프로세스는 도움이 됨

  • 다양한 부분에서 빌드 성능 최적화 되어 Maven보다 거의 모든 시나리오에서 2배 이상 거의 100배 빠르다고 기록

  • 실제로 많이 사용되는 것은 Maven이지만, Gradle은 성능상 많은 이점을 가지고 있음

  • Gradle 활용
    --> 플로그인, 의존성 설정
    --> 의존성 : B객체가 A를 사용한다(B->A)
    --> api는 내부 의존성을 컴파일과 런타임 모두에게 보이게 됨, implimentation 내부 의존성을 컴파일 시 보이지 않게(의존성 최소화-빌드속도 증가)
    --> api는 A가 수정되었을 시 B와 C가 A를 알고있기에 B뿐만 아니라 C 모두 재빌드
    --> implimentation은 A가 수정되었을 시 B까지만 재빌드

profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글

관련 채용 정보