전체 글 35

[Kotlin] copyOf, toArray, contentToString (배열 복사)

- copyOf : arrayOf 배열을 복사할 때 사용 - toArray : ArrayList 배열을 복사할 때 사용 - contentToStrung :배열에 저장된 데이터 출력할 때 사용 //arrayOf 변수 선언 실시 var arr_one = arrayOf(1,2,3,4,5) println("arrayOf 원본 : "+arr_one.contentToString()) //arrayOf 원본 : [1, 2, 3, 4, 5] //arrayOf 전체 데이터 복사 실시 var arr_full_copy = arr_one.copyOf() println("arrayOf 전체 복사 : "+arr_full_copy.contentToString()) //arrayOf 전체 복사 : [1, 2, 3, 4, 5] //a..

Kotlin 2021.09.10

[Kotlin] Property / Backing Field

- 코틀린의 프로퍼티는 자동으로 게터와 세터를 구현 - 필드(field) : 클래스 내의 맴버변수 (코틀린에서는 뒷받침하는 필드, Backing Fields라고 부름) - 프로퍼티(property) : 필드와 게터 세터를 한데 묶어서 부르는 단어 - 프로퍼티의 선언 키워드에 따라 생성되는 접근자 메서드(getter/setter)가 다름 * val : 불변 값이므로 getter가 자동으로 구현 * var : 가변 값이므로 getter와 setter가 자동으로 구현 - 코틀린에서는 getter와 setter를 통하지 않고 직접 프로퍼티에 접근 * 자바 : SampleClass sample = new SamlpeClass(); sample.getName(); * 코틀린 : val sample = SamlpeC..

Kotlin 2021.09.10

[Android] Handler

긴 시간이 걸리는 작업을 메인스레드에서 작업한다면 애플리케이션의 성능이 저하됨은 물론이고, 지나치게 많은 시간이 걸리는 경우 ANR(Application Not Responding)상태로 전환이 될 수 있음. 따라서 시간이 걸리는 작업을 수행해야 할 때에는 여분의 스레드를 활용하여 메인스레드와 분리해서 작업해야하고 자연스럽게 메인스레드와 다른 스레드가 통신하는 방법이 필요함. 메인스레드 안드로이드 주요 컴퍼넌트를 실행하는 곳이자 UI를 그리거나 갱신하는 일을 담당할 수 있는 유일한 스레드(UI스레드) Handler handler는 스레드의 Message Queue와 연계하여 Message나 Runnable객체를 받거나 처리하여 스레드 간의 통신을 할 수 있도록 함. Handler는 혼자서는 아무 동작을 ..

Android 2021.09.02

[Android] CallBack

콜백 이벤트가 발생하면 특정 메소드를 호출해 알려줌 (1개) 옵저버 데이터나 속성의 변경을 감지하여 변경사항을 전달 리스너 이벤트가 발생하면 연결된 리스너(핸들러)에게 이벤트를 전달 (n개) > 안드로이드 프레임워트에서는 리스너를 1개밖에 등록하지 못해 콜백이랑 비슷 인터페이스 자바프로그래밍의 인터페이스는 클래스가 반드시 구현해야할 행동(메서드)을 지정하는 데 사용되는 추상타입이다. 인터페이스는 interface 키워드를 통해 선언할 수 있으며 implements 키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다. >구현1 인터페이스 정의 public interface CustomListener { void callBack(Object object); } >구현2 동작 커스텀 클래스 정의 pub..

Android 2021.06.08

[JAVA] 싱글톤(Singleton) 패턴

싱글톤 패턴의 정의? 싱글턴 패턴(Singleton pattern)을 따르는 클래스는 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴. 즉 하나의 해당 클레스에서 단 하나의 인스턴스만 만들도록 보장하는 방법으로 하나의 인스턴스만을 재사용하여 불필요한 자원 낭비나 오버헤드 등을 막을 수 있음. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용. 싱글톤 만드는 방법? > 외부에서 생성자를 호출할 수 없도록 제한해야 한다. (생성자의 접근제어자 : private 사용) 이유: 외부에서 생성자를 호출할 때마다 인스턴스가 생성되기 때문. > 자신의 클래..

Android 2021.04.11

[Android] 리니어 레이아웃 (Doit! 레이아웃익히기)

뷰 정렬하기 layout_gravity 부모 컨테이너의 여유 공간에 뷰가 모두 채워지지 않아 여유 공간이 생겼을 때 여유 공간 안에서 뷰를 정렬함 gravity 뷰 안에 표시하는 내용물을 정렬함 (ex. 텍스트뷰의 내용물은 글자, 이미지뷰의 내용물은 이미지) gravity 속성 top 대상 객체를 위쪽 끝에 배치하기 bottom 대상객체를 아래쪽 끝에 배치하기 left 대상 객체를 왼쪽 끝에 배치하기 right 대상 객체를 오른쪽 끝에 배치하기 center_vertical 대상 객체를 수직 방향의 중앙에 배치하기 center_horizonral 대상 객체를 수평 방향의 중앙에 배치하기 fill_vertical 대상 객체를 수직 방향으로 여유 공간만큼 확대하여 채우기 fill_horizontal 대상 객체..

Android 2021.03.21