개발을 하다보면 객체에 대한 하나의 인스턴스만 필요할 때, 하나의 인스턴스를 재사용하기 위해 싱글톤 패턴을 구현해야 할 일이 생긴다. *싱글톤 패턴 : 객체의 인스턴스를 1개만 생성하여 계속 재사용 하는 패턴 Java에서의 싱글톤 기존 자바에서는 싱글톤 패턴을 구현하기 위해 많은 코드를 작성해야 했다. 보통은 다음과 같은 방식으로 싱글톤 패턴을 구현하였다. public class SingletonClass { // 1. static으로 선언된 객체를 담는 변수(instance) private static SingletonClass instance; public String sampleString = "Sample String"; // 싱글톤에 집중하기 위해 public으로 설정 private Single..
Kotlin
sealed class의 등장 배경 여러 자식 Class들이 하나의 부모 Class를 상속 받았다고 했을 때 컴파일러는 부모 Class를 상속 받은 자식 Class들이 있는지 알지 못한다. 예를 들어보자. 우리가 사용자의 런닝 운동을 기록해주는 앱을 만들고 있다. 이때 우리는 사람의 상태를 클래스로 만들고자 한다. 상태의 종류는 3가지로 뛰는 상태(Running), 걷는 상태(Walking), 쉬는 상태(Idle)가 있다. 이는 다음과 같이 코드로 만들어질 수 있다. abstract class PersonState class Running : PersonState() class Walking : PersonState() class Idle : PersonState() 코드1. class 상속 예제 각 P..
목차로 돌아가기 [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기 목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 kotlinworld.com 목표 reduce의 개념을 이해한다. reduce를 사용하는 방법을 익힌다. reduce() 개요 reduce는 순서가 있는 데이터(CharSequence, Iterable 등)에 대해 각 데이터에 대해 연산을 재귀적으로 수행해 반환해주는 함수이다. 시작 값은 맨 앞의 데이터이며, 반환 데이터 타입은 맨 앞의 데이터 타입을 따른다. 예를 들어 아래와 같은 sampl..
목차로 돌아가기 [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기 목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 kotlinworld.com 목표 그룹핑 함수 groupBy의 개념과 동작을 익힌다. 두개의 Collection을 조합하는 zip의 개념과 동작을 익힌다. 중복제거 함수 distinct의 동작을 익힌다. 확장함수 목록 groupBy groupBy는 keySelector함수를 통해 key를 select하여 해당 Key로 Map을 만드는(그룹화 하는) 함수이다. public inline fun I..
목차로 돌아가기 [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기 목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 kotlinworld.com 목표 변환함수의 개념을 익히고, map과 flatMap의 차이점을 익힌다. map을 사용하는 방법을 익힌다. flatMap을 사용하는 방법을 익힌다. 확장함수 목록 map map는 Collection을 다른 형태로 변환해주기 위해 사용한다. map : map은 인자로 받은 transform function을 통해 기존 Collection을 변형시킨 List를 ret..