일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring Data JPA
- centos7
- spring
- git
- offsetdatetime
- JPA
- Spring JPA
- Entity
- Kubernetes
- consumer
- API
- entity graph
- Kotlin
- PAGING
- K8s
- kafka
- bean
- QueryDSL
- CodePipeline
- cd
- mirror maker2
- topic생성
- spring kafka
- AWS
- transactionaleventlistener
- mysql
- Streams
- CI
- ECS
- producer
- Today
- Total
목록Kotlin (9)
Yebali

Data Class란? Kotlin에서 Data Class는 toString(), hashCode(), equals(), copy()를 자동으로 만들어주는 Class를 말한다. 사용법은 class 앞에 ‘data’라는 keyword를 붙여주면 된다. data class User( val name: String, val age: Int ) Data Class의 특징 상속 받을 수 없다. abstract, open, sealed, inner를 붙일 수 없다. 1개 이상의 프로퍼티를 가지고 있어야 한다. 이렇게 편리한 메서드를 자동으로 만들어주는 Data Class를 Entity Class를 만들 때 사용할 수 있을까? Entity에 Data Class를 적용 할 수 없는 이유. Entity Class를 Da..

Data Class 데이터를 다루는데 최적화된 클래스로 아래 기능을 자동으로 생성해준다 equals() : 내용의 동일성을 판단 hashcode() : 객체 내용에서 고유한 코드를 생성하는 함수 toString() copy() ComponentX() : 속성을 순서대로 반환하는 함수. X에 번호를 넣으면 해당 번호에 해당하는 속성이 반환됨 class General(val name: String, val id: Int) data class Data(val name: String, val id: Int) fun main() { val a = General("보잉", 747) println(a == General("보잉", 747)) // 재대로 구현이 안됨 println(a.hashCode()) // 재대로..

코틀린에서는 null을 허용하는 nullable 변수가 별도로 존재한다. 이런 변수들을 일일이 if로 체크해서 로직을 하는 것은 아름답지 못할 수 있다. 다른 방법으로 null을 처리하는 방법을 알아보자. Nullable 변수 처리 null을 처리하는 방법은 아래와 같이 몇가지가 있다 ?. (null safe operator) ?: (elvis operator) !!. (non-null assertion operator) ?. (null safe operater) 참조 연산자를 실행하기 전, 객체의 null 여부를 확인부터 하고 null이라면 뒤따라 오는 연산을 실행하지 않는 연산자 fun main() { var a: String? = null println(a?.toUpperCase()) // 'nul..

제너릭이란? 클래스나 함수에서 사용하는 자료형을 외부에서 지정할 수 있는 기능. 흔히 말하는 템플릿과 같은 기능. 일반적으로는 타입 파라미터의 이름은 Type의 T를 사용하는 것이 관례이다. open class A { open fun shout() { println("A가 소리칩니다.") } } class B : A() { override fun shout() { println("B가 소리칩니다.") } } class C : A() { override fun shout() { println("C가 소리칩니다.") } } // 제너릭 클래스 class UsingGeneric (var t:T) { fun doShouting() { t.shout() } } // 제너릭 함수 fun doShouting(t: T..

Static 이란? Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다. Static 변수와 Static 메서드는 Static 메모리 영역에 존재하므로 객체가 생성되기 이전에 이미 할당이 되어 있습니다. 그렇기 때문에 객체의 생성 없이 바로 사용할 수 있습니다. Kotlin에서는 static 키워드 대신 object와 companion object 키워드를 사용합니다. Object Object는 최초 사용시 자동으로 생성되고, 생성자도 필요하지 않다. object Counter { var count = 0 fun countUp() { count++ } fun clear() { count = 0 } } fun main() { println..

스코프 함수 스코프 함수는 함수형 언어의 특징을 좀 더 쉽게 사용하기 위해 기본으로 제공하는 함수들이다. 인스턴스들을 스코프함수와 함께 사용하면 좀 더 깔끔하고 명확한 코딩이 가능하다. 대표적인 스코프 함수로는 apply, with, let, also, run이 있다. apply apply의 구현은 아래와 같다. inline fun T.apply(block: T.() -> Unit): T { block() return this } 수신된 객체를 그대로 반환하며 람다함수 내부에서 자기 자신을 this로 처리한다. 람다함수 내부에서 객체의 함수를 사용하지 않고 자기 자신을 다시 반환하려는 경우 apply를 사용한다. 대표적인 예로 객체 초기화에 많이 사용된다. data class Person (var nam..