목록2024/10 (3)
안드로이드 개발자 노트
12.1. 단위 테스트 기초 12.1.1. 단위 테스트란 무엇인가? 단위(Unit): 명확히 정의된 역할의 범위를 갖는 코드의 집합으로, 정의된 동작을 실행하는 개별 함수나 클래스 또는 모듈이다.단위 테스트(Unit Test): 단위에 대한 자동화된 테스트를 작성하고 실행하는 프로세스를 말한다.객체 지향 프로그래밍에서 테스트 대상이 되는 단위는 주로 객체이며, 테스트 대상이 된 객체의 함수를 호출하고 함수가 호출되면 객체가 예상대로 동작하는지 확인하는 과정을 통해 테스트를 진행할 수 있다. 12.1.2. 테스트 환경 설정하기 dependencies { ... // JUnit5 테스트 프레임웍 testImplementation("org.junit.jupiter:junit-jupiter-ap..
11.2. CoroutineStart의 다양한 옵션들 살펴보기 코루틴 빌더 함수의 start 인자로 받는 CoroutineStart에 대해 다뤄본다.public fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit): Job CoroutineStart.DEFAULTCoroutineStart.ATOMICCoroutineStart.UNDISPATCHED 11.2.1. CoroutineStart.DEFAULT CoroutineStart.DEFAULT는 ..
11.1. 공유 상태를 사용하는 코루틴의 문제와 데이터 동기화 11.1.1. 가변 변수를 사용할 때의 문제점 멀티 스레드 환경에서 가변 변수에 동시에 접근해 값을 변경하면 데이터 동기화 문제가 발생할 수 있다.var count = 0fun main() = runBlocking { withContext(Dispatchers.Default) { repeat(10_000) { launch { count += 1 } } } println("count = ${count}")}/*// 결과1:count = 9062 // 매번 다른 값이 나온다.// 결과2:count = 9019 // 매번 다른 값이 나온다.// 결과3:count = 8644 // 매번 다른 값이 나온다..