본문 바로가기

전체 글205

[Spring] kotlin + Spring 시작하기 Kotlin + Spring 시작하기 최근 취업 준비를 하며 코틀린에 대한 필요성을 느꼇고, 코틀린을 공부해 보았습니다. 뒤이어 Spring에 Kotlin을 적용해 일명 코프링프로젝트를 시작하기로 했습니다. 버전의 경우 제 현재 프로젝트의 버전이 입력되어 있습니다. 때에 따라 다르게 적용하시면 됩니다. build.gradle - 코틀린 적용 plugins { ... id 'org.jetbrains.kotlin.jvm' version '1.6.21' id 'org.jetbrains.kotlin.plugin.spring' version '1.6.21' ... } dependencies { ... implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' implem.. 2022. 8. 10.
[Kotlin] 여러가지 기능 여러가지 기능 Type Alias Kotlin typealias FruitFilter = (Fruit) -> Boolean fun filterFruits(fruits: List, filter: FruitFilter) { } typealias USGTMap = Map data class UltraSuperGuardianTribe( val name: String ) typealias: 긴 이름의 클래스 혹은 타입이 있을 때 축약하거나 더 좋은 이름을 쓰고싶을 때 사용할 수 있다. as import Kotlin import com.heekng.kotlinStudy.kotlin.lec12.Person as PersonA import com.heekng.kotlinStudy.kotlin.lec16.Person a.. 2022. 7. 7.
[Kotlin] 컬렉션을 함수형으로 사용하기 컬렉션을 함수형으로 사용하기 필터와 맵 filter filterIndexed: filter에 index를 포함하여 사용 map mapIndexed: map에 index를 포함하여 사용 mapNotNull: mapping의 결과가 null이 아닌 것만 가져와 map 다양한 컬렉션 처리 기능 all: 조건을 모두 만족하면 true 그렇지 않으면 false none: 조건을 모두 불만족하면 true 그렇지 않으면 false any: 조건을 하나라도 만족하면 true 그렇지 않으면 false count(): 개수를 센다. sortedBy: 오름차순 정렬 sortedByDescending: 내림차순 정렬 distinctBy: 변형된 값을 기준으로 중복을 제거한다. first(): 첫번째 값을 가져온다 (무조건 n.. 2022. 7. 7.
[Kotlin] 람다 람다 Java에서의 람다 자바에서는 메서드 자체를 직접 넘겨주는 것처럼 사용할 수 있다.(Predicate 사용) 즉, 2급 시민. Java에서는 함수는 변수에 할당되거나 파라미터로 전달할 수 없다. Kotlin에서의 람다 Kotlin fun main() { val fruits = listOf( Fruit("사과", 1_000), Fruit("사과", 2_000), Fruit("사과", 1_200), Fruit("사과", 1_500), Fruit("바나나", 3_000), Fruit("바나나", 3_200), Fruit("바나나", 2_500), Fruit("사과", 10_000) ) // 람다를 만드는 방법 1 /* val isApple = fun(fruit: Fruit): Boolean { retur.. 2022. 7. 7.
[Kotlin] 함수 함수 확장함수 Kotlin fun main() { val str = "ABC" println(str.lastChar()) println(str.lastChar) } fun String.lastChar(): Char { return this[this.length - 1] } val String.lastChar: Char get() = this[this.length - 1] 코틀린은 자바와 100% 호환되기를 목표로 했다. 기존 Java 코드 위에 자연스럽게 코틀린 코드를 추가하려 했다. -> 어떤 클래스 안에 있는 메서드처럼 호출할 수 있지만, 함수는 밖에 만들 수 있게 하자! fun 확장하려는클래스.함수명을 이용해 함수를 확장한다. 함수 안에서는 this를 통해 인스턴스에 접근 가능하다. this: 수신.. 2022. 7. 7.
[Kotlin] 배열과 컬렉션 배열과 컬렉션 배열 Kotlin // 배열 만들기 val array = arrayOf(100, 200) // 값 넣기 array.plus(300) // 인덱스로 반복 for (i in array.indices) { println("${i} ${array[i]}") } // 인덱스와 값 모두 가져오기 for ((idx, value) in array.withIndex()) { println("$idx, $value") } 배열은 잘 사용하지 않는다. 배열보다는 리스트를 사용하자. array.indices는 0부터 마지막 index까지의 Range이다. array.withIndex()를 사용하면, 인덱스와 값을 한번에 가져올 수 있다. array.plus()를 사용하면 값을 추가할 수 있다. Collectio.. 2022. 7. 7.
[Kotlin] Data, Enum, Sealed 클래스 Data, Enum, Sealed 클래스 Data Class Java public class JavaPersonDto { private final String name; private final int age; public JavaPersonDto(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) retur.. 2022. 7. 6.
[Kotlin] 중첩 클래스를 다루는 방법 중첩 클래스를 다루는 방법 중첩 클래스의 종류 Java 기준 static을 사용하는 중첩 클래스: 클래스 안에 static을 붙인 클래스, 밖의 클래스를 직접 참조하지 못한다. Java 기준 static을 사용하지 않는 중첩 클래스 내부 클래스(Inner Class): 클래스 안의 클래스, 밖의 클래스를 직접 참조할 수 있다. 지역 클래스(Local Class): 메서드 내부에 클래스를 정의 익명 클래스(Anonymous Class): 일회성 클래스 코틀린의 중첩 클래스와 내부 클래스 Java public class JavaHouse { private String address; private LivingRoom livingRoom; public JavaHouse(String address, Living.. 2022. 7. 6.