전체 글 (74) 썸네일형 리스트형 [Unit Test] JUnit5 (2) - Parameterized Test 안녕하세요.Parameterized Test에 대해서 알아보겠습니다.Parameterized TestParameterized Test란 여러 세트의 데이터를 사용하여 동일한 테스트 메서드를 여러 번 실행할 수 있게 하는 기능입니다.반복적인 테스트 코드를 줄일 수 있는 장점이 있습니다.다양한 입력에 대해 테스트를 쉽게 수행할 수 있는 장점이 있습니다. AnnotationParameterized Test를 사용하는 주요 어노테이션으로는 아래와 같습니다.@ParameterizedTest : 파라미터 테스트 메서드를 나타냄@ValueSource : 단일 값 배열을 제공함@CsvSource : 여러 Csv 값을 제공함@MethodSource : 메서드를 통해 테스트 데이터를 제공함@ArgumentsSource :.. [Unit Test] JUnit5 (1) - Use in Android Studio 안녕하세요.Unit Test 프레임워크 중 하나인 JUnit5에 대해 알아보겠습니다.JUnit5JVM 기반 언어에서 단위 테스트를 작성하고 실행하는데 사용되는 프레임워크입니다.그래서 Java, Kotlin 언어로 개발할 때 테스트 프레임워크로 가장 많이 사용됩니다.JUnit5 in Android StudioJUnit5를 안드로이드 스튜디오에서 사용하는 방법에 대해 알아보겠습니다,언어는 Kotlin을 사용할 것입니다.(버전은 다를 수 있으니 체크해주세요) build.gradle (app 수준)android { ... testOptions { unitTests.includeAndroidResources = true } ...}dependencies { // JUnit .. [Kotlin] Coroutine (3) - 예외 처리 안녕하세요. 코루틴 예외 처리에 대해 알아보겠습니다. 사전 지식 코루틴에서 예외 처리는 기존의 예외 처리와는 조금 다른 방식으로 처리합니다. 코루틴은 비동기적으로 동작하고 여러 스레드 간에 분산되어 있을 수 있기 때문에 몇 가지 고려할 사항이 있습니다. 코루틴 구조 코루틴은 계층 구조를 가집니다. 호출한 코루틴은 자식 코루틴이 됩니다. 예외 전파 예외가 발생하면 기본적으로 부모로 전파하게 됩니다. 예외가 발생하면 해당 코루틴은 물론, 자식 코루틴의 작업이 전부 cancel 됩니다. job5에서 예외가 발생하면 job2 -> job1 까지 예외가 전파됩니다. ⇒ 최종적으로 job1을 루트로 하는 subtree 내의 모든 코루틴의 실행이 취소됩니다. 예외 처리 방법 try-catch launch 안의 코드에.. [Kotlin] Coroutine (2) - Use in Kotlin 안녕하세요. 코틀린에서 코루틴을 사용하는 방법에 대해 알아보겠습니다. 스케줄러의 코루틴 관리 스케줄러가 코루틴을 suspend & resume 해서 관리합니다. suspend 현재 코루틴 실행을 일시 중지하고 모든 로컬 변수를 저장합니다. resume 정지되었던 위치부터 정지된 코루틴을 재개합니다. 비동기 작업을 하고 싶으면 suspend 키워드를 함수 앞에 붙여주면 됩니다. suspend fun doSomething() { ... } Dispatcher Dispatcher는 코루틴이 실행되는 스레드 또는 스레드 풀을 관리하는 개념입니다. Kotlin은 코루틴을 어떤 스레드에서 실행할지 정하는데에 사용할 수 있는 3가지 dispatcher를 제공합니다. Dispatchers.Main android 기본 .. [Kotlin] Coroutine (1) - 코루틴이란? 안녕하세요. 오늘은 코루틴에 대해 알아보도록 하겠습니다. 개념 비동기 프로그래밍을 위한 일종의 서브루틴 또는 경량 스레드 입니다. 코드의 일부를 일시 중단하고 나중에 이어서 실행할 수 있는 프로그래밍 요소 입니다. 비동기 프로그래밍은 작업이 완료될 때 까지 기다리지 않고, 다른 작업을 실행하는 프로그래밍 기법입니다. 하지만 서브 루틴과 경량 스레드는 익숙치 않은 개념입니다. 루틴 메인 루틴 프로그램의 시작 지점이자 주 실행 흐름을 담당하는 부분입니다. 메인 루틴은 다른 서브 루틴이나 함수를 호출하고, 프로그램의 주요 로직을 수행합니다. 서브 루틴 메인 루틴에서 호출되어 특정 기능을 수행하는 코드 블록입니다. 함수, 메소드, 프로시저 등으로 불리기도 합니다. 서브 루틴이 실행을 완료하면 호출한 곳으로 돌아.. [Android Library] Retrofit (2) - retrofit in MVVM 안녕하세요. MVVM 디자인 패턴에서 Retrofit이 어떻게 쓰이는지 실제 예시 코드와 함께 살펴보겠습니다. Code https://github.com/shantudas/android-architecture-components-mvvm-retrofit-kotlin GitHub - shantudas/android-architecture-components-mvvm-retrofit-kotlin: This repository contains Android Architecture Component This repository contains Android Architecture Components ( LiveData , View Model and MVVM pattern ) : work in progress -.. [Android Library] Retrofit (1) - 서버와 통신 안녕하세요. 안드로이드 라이브러리 중 하나인 Retrofit에 대해 알아보겠습니다. Retrofit MVVM 디자인 패턴에서 Data Layer에 보면 2가지 라이브러리가 보입니다. Room Retrofit Room은 내부 DB에서 데이터를 가져올 때 사용하는 라이브러리이고, Retrofit은 서버와 HTTP 통신을 통해 데이터를 가져오는 라이브러리 입니다. 비교 안드로이드 앱에서 네트워크 통신을 위한 라이브러리로 구글에서 만든 Volley가 있습니다. 하지만 개발할 때는 Retrofit을 더 많이 사용하는데 아래와 같은 장점이 있기 때문입니다. RESTfull API 통신 Retrofit은 주로 RESTfull API 통신을 위해 설계되었습니다. Volley는 이미지 로딩, 캐시 관리 등 다른 네트워크.. Splay Tree (4) - Lazy Propagation, 구간 뒤집기 안녕하세요. Splay Tree의 활용 중에서 lazy propagation과 구간 뒤집기에 대해 알아보겠습니다. Lazy Propagation 스플레이 트리로 레이지 프로퍼게이션 또한 가능합니다. Node 구조체 lazy 변수를 추가해 줍니다. struct Node { ... long long lazy; ... }; Propagation 함수 작성 struct Node { ... void propagate() { if (lazy) { val += lazy; if (l) { l->lazy += lazy; l->sum += lazy * l->cnt; } if (r) { r->lazy += lazy; r->sum += lazy * r->cnt; } } lazy = 0; } }; propagation은 자식으.. 이전 1 2 3 4 5 6 7 ··· 10 다음