gradle

    toml 파일을 사용해 Gradle 의존성 관리하기

    toml 파일이란 무엇인가? TOML(Tom's Obvious, Minimal Language)은 GitHub의 공동 창립자인 Tom Preston-Werner가 만든 파일 형식으로, 이름 그대로, 간결하면서도 읽기 쉬운 파일 형식이다. 일반적으로 키-값쌍으로 값들을 관리하며, 하나의 파일로 여러 프로젝트의 버전 관리를 통합하는데 사용될 수 있다. 그동안 안드로이드에서는 주로 buildSrc를 사용해 버전 관리를 해왔는데, 최근 toml이 매우 활성화되기 시작해 이번 글에서 다뤄보고자 한다. *Android Developers 에서도 공식적으로 Version Catalog로 이전 이라는 명칭으로, toml 파일을 사용하는 방법을 설명하고 있으며, Android Gradle Plugin(AGP) 버전 7...

    [MockK] MockK 란 무엇인가? Gradle 사용해 MockK 개발 환경 설정하고 테스트 만들어보기

    MockK란 무엇인가? MockK는 코틀린에서 테스트 시 목(Mock) 객체를 생성하는 것을 돕는 라이브러리이다. 기존에 목 객체를 만들기 위해서는 인터페이스를 목 클래스로 직접 구현을 해야 했는데, MockK를 사용하면 간단하게 목 객체를 생성할 수 있다. Gradle에 MockK 의존성 추가하기 Gradle에 MockK에 대한 의존성은 다음과 같이 추가해주면 된다. dependencies { ... // MockK 라이브러리 testImplementation("io.mockk:mockk:1.13.8") } MockK의 사용 MockK를 사용하는 것은 매우 간단하다. 예를 들어 다음과 같은 UserProfileFetcher이 있다고 해보자. class UserProfileFetcher( private ..

    오류 수정 방법 : BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version

    애러 개요 여러 프로젝트를 다루다 보니, 앱을 빌드할 때 아래와 같은 오류가 나는 경우가 생겼다. BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 64 문제 원인 현재 Gradle 버전과 Java Version이 일치하지 않을 때 오류가 발생한다. 나의 경우 JDK 버전을 20으로 쓰고 Gradle 버전을 8.0으로 써서 문제가 생겼다. JDK 버전 확인 방법 1. 프로젝트에 설정된 JDK 버전을 확인하기 위해 다음 메뉴에 진입한다. Android Studio > Preferences... 2. Build, Execution, Deployment > Bu..

    [Gradle] 프로젝트 수준의 Gradle에서 모듈 수준의 Gradle 제어하기

    Project 수준의 build.gradle에서 모듈 수준의 build.gradle 제어하기 멀티 모듈 프로젝트를 만들다보면, 모든 모듈에 dependencies나 task들이 적용되어야 하는 경우가 있다. 이를 위해 프로젝트 수준의 build.gradle에서 모듈 수준의 build.gradle을 제어해야 할 경우가 생긴다. 이를 위해 Gradle에서는 allprojects, subprojects, project 메서드를 제공하는데 이번 글에서는 이 메서드들을 다루어볼 것이다. allprojects : 프로젝트 수준의 build.gradle 뿐만 아니라 해당 프로젝트에 포함된 모든 모듈의 build.gradle을 제어 subprojects : 해당 프로젝트에 포함된 모든 모듈의 build.gradle을 ..

    [Gradle] Plugin이란 무엇인가? 플러그인 이해하고 Custom Plugin 만들기

    Gradle Plugin이란? Plugin이란 Gradle Task의 집합이다. Gradle Task는 어플리케이션 빌드부터 테스트까지 다양한 작업을 수행하는 작업 단위를 뜻한다. *만약 Task에 대한 이해가 부족하다면 다음글을 참조하길 바란다. Plugin을 우리가 특정 작업(어플리케이션 개발 등)을 하기 위해서 모아놓은 Task 들의 묶음이다. 예를 들어 안드로이드 어플리케이션을 개발하기 위해서는 필요한 라이브러리들을 받아온 후 해당 라이브러리들을 사용해 코틀린이나 자바 코드를 컴파일하고, 컴파일된 바이트코드의 묶음을 패키징 해 apk나 aab 파일로 만들어야 한다. 추가적으로 DB와 통신하는 부분들에 문제가 없는지, 서버와 통신하는 부분들에 문제가 없는지에 대한 테스트를 돌리기도 해야 한다. 이러..