프로그래밍/Kotlin52 [kotlin] Singletone #0 static 자바의 static처럼 코틀린에서도 인스턴스가 단 하나임을 보장하는 클래스를 만들 수 있습니다. 싱글턴 인스턴스는 전역적으로 사용될 수 있으며, 메모리를 효율적으로 이용할 수 있습니다. #1 Object 코틀린에서는 클래스 이름앞에 object 키워드를 붙이면 곧바로 싱글톤 클래스가 됩니다. 하지만 이경우에는 생성자를 호출하지 않는 클래스에서만 사용할 수 있습니다. import android.util.Log // 싱글톤 클래스를 만들려면 앞에 object 를 붙이면 된다. object MyObjectSingleton { fun printMsg(msg: String) { Log.d("MyObjectSingleton", "msg: $msg") } } #2 companion object 생성.. 2022. 7. 26. [kotlin] Object 사용법 코틀린에서는 "object" 키워드를 다양한 상황에서 사용하지만 그 상황마다의 공통점이, 클래스를 정의하면서 동시에 인스턴스(객체)를 생성한다는 점입니다. 이러한 object 키워드를 사용하는 여러 상황을 살펴보도록 하겠습니다. 객체 선언 : 싱글톤 쉽게 만들기 (object) 객체지향 프로그래밍을 설계하다 보면, 인스턴스가 하나만 필요한 클래스의 유용한 경우가 많습니다. 자바에서는 다음과 같이, 보통 클래스의 생성자를 private으로 선언하고, static 변수에 클래스 객체를 저장하는 패턴으로 구현합니다. /** 자바에서의 일반적인 싱글톤 패턴 */ public class DataRepository { private static DataRepository INSTANCE; private DataRe.. 2022. 7. 25. [Kotlin] Naver API를 이용해 책 검색 코드 fun bookSearch(searchWord : String) : JSONObject{ // 클라이언트 ID와 Secret은 네이버 API를 등록할때 생성된 값을 넣는다. val clientId = "클라이언트 ID" val clientSecret = "클라이언트 Secret" var bookJsonObject : JSONObject = JSONObject() try { CoroutineScope(Dispatchers.IO).launch { val text: String = URLEncoder.encode(searchWord, "UTF-8") val apiURL = "https://openapi.naver.com/v1/search/book.json" + "?query=" + text + "&displa.. 2022. 7. 20. [Kotlin] 코루틴 디스패처 코루틴을 사용할때는 아래와 같이 CoroutineScope(디스패처).launch와 같은 형식으로 사용하는데 각 디스패처별 설명은 하단과 같다. CoroutineScope(Dispatchers.Default).launch { // TODO() } Dispatchers.Default : CPU 사용량이 많은 작업에 사용합니다. 주 스레드에서 작업하기에는 너무 긴 작업 들에게 알맞음 Dispatchers.IO : 네트워크, 디스크 사용 할때 사용합니다. 파일 읽고, 쓰고, 소켓을 읽고, 쓰고 작업을 멈추는것에 최적화 Dispatchers.Main : 안드로이드의 경우 UI 스레드를 사용 * Dispatcher.Default - launch, async와 같은 기본적인 builder들의 default disp.. 2022. 7. 5. 이전 1 2 3 4 5 6 7 ··· 13 다음