본문 바로가기

kotlin9

[Kotlin in Action] 4장: 클래스, 객체, 인터페이스 4.1 클래스 계층 정의 4.1.1 코틀린 인터페이스 자바 8 인터페이스와 비슷 추상메서드, 구현이 있는 메서드도 정의 가능 구현 있는 메서드 == 자바 8의 디폴트 메서드 자바 8 디폴트 메서드는 default 키워드를 반드시 사용해야하지만 코틀린 인터페이스는 아니다 Q) 많약 2개 이상의 인터페이스를 상속받은 클래스에서, 각 인터페이스가 동일한 시그니쳐의 디폴트메소드를 정의한다면? 컴파일 오류가 발생 -> 명시적으로 겹치는 시그니처 메소드를 오버라이딩 해야함을 알려줌 다만, 상태(필드) 는 가질 수 없음 메소드 상속하는 쪽에서 override 를 필수로 붙여야함 override 를 강제하여 얻는 이득 -> 실수로 상위클래스의 메소드를 오버라이드하는 것을 컴파일러가 잡아줌 4.1.2 open, fina.. 2023. 2. 11.
[Kotlin in Action] 3장: 함수의 정의와 호출 3.1 코틀린에서 컬렉션 만들기 컬렉션을 만드는 유용한 메서드를 제공 코틀린의 컬렉션은 내부적으로 자바의 컬렉션을 그대로 사용하면서 이를 확장 기존 자바 코드와의 호완성을 위함 확장을 통해 기존 자바 클래스보다 더 많은 기능을 제공 3.2 함수를 호출하기 쉽게 만들기 기본 셈플 함수 형태 fun joinToString( collection: Collection, separator: String, prefix: String, postfix: String ) : String { val sb = StringBuilder(prefix) for ((idx, ele) in collection.withIndex()) { sb.append(ele) if(collection.size -1 > idx) sb.append(.. 2023. 2. 8.
[kotlin-tip] 코프링 환경에서 로깅하기 사실이 아니라 공부한 내용과 생각을 정리한 글입니다. 언제든 가르침을 주신다면 감사하겠습니다. 자프링 환경에서 로깅을 위해 대표적으로 SLF4J를 사용하는데, lombok 어노테이션 중 @Slf4j를 사용하면 편리하게 로깅 관련 코드를 작성할 수 있다. 하지만 코틀린에서는 lombok 사용은 지양하고 있는 것 같다. 그렇다면, 코프링 환경에서 로깅은 어떤 형태로 구현할 수 있을까? 아래 링크에 설명이 잘 나와 있다 https://blog.leocat.kr/notes/2021/11/04/kotlin-logging-in-kotlin [Kotlin] Kotlin 코드에서 로깅 (kotlin-logging) Lombok을 쓰지 못 하는 Kotlin 코드에서 가장 불편했던건 @Slf4j annotation을 쓰지.. 2023. 1. 14.
[Kotlin in Action] 2장: 코틀린 기초 2장에서 다루는 내용 함수, 변수, 클래스, enum, 프로퍼티를 선언하는 방법 제어 구조 스마트 캐스트: 타입 검사와 타입 캐스트, 타입 강제 변환을 하나로 엮은 기능! 예외 던지기와 예외 잡기 2.1 기본 요소: 함수와 변수 함수 작성 문법 식(expression) vs 문(statement) expression 값을 만들어 낸다 다른 식의 하위 요소로 계산에 참여할 수 있다 ex> 3항 연산자 statement 가장 안쪽 블록의 최상위 요소로 존재 아무 값을 만들어내지 않는다. ex> java의 while 문 제어 구조와의 관계 java -> 모든 제어 구조가 문으로 구성 kotlin -> 루프를 제외한 대부분의 제어 구조가 식으로 구성 제어 구조를 표현하는 방식이 다양할수록 다양한 코드 패턴을 간.. 2023. 1. 14.