Kotlin에서 print, println의 차이를 이해한다.세미콜론(;) 사용 유무 및 코딩 스타일을 이해한다.Kotlin에서는 문장 끝에 ; 세미콜론이 필요 없다.써도 되지만 일반적으로 사용하지 않는 게 컨벤션이다.print()는 줄바꿈 없이 출력, println(
Kotlin의 변수 선언 방식 이해 (var, val)상수 선언 방식(const val)과 그 차이점 학습Kotlin은 타입 추론이 가능하므로 별도의 타입 선언 없이도 사용 가능명시하고 싶을 경우 : 콜론 뒤에 타입을 지정 → var age: Int = 10 기본
코틀린은 명시적 형변환을 사용해야 함 (자동 형변환 X)toInt(), toLong(), toDouble() 등 메서드 사용변환 대상이 올바른 형식이 아닐 경우 NumberFormatException 발생 가능 → 예외 처리 필요문자열은 문자 배열처럼 인덱스로 접근 가
변수, 자료형, 입력/출력 문법 복습when 조건문 활용기본 예외 처리(toDoubleOrNull())사용자에게 두 숫자와 연산자 입력 받기숫자는 Double 타입으로 변환연산자는 when 구문으로 처리나눗셈 예외 처리(0으로 나누는 경우 방지)readLine()은 문
Kotlin에서는 max(a, b), min(a, b)를 kotlin.math 패키지에서 제공합니다.Java처럼 바로 호출하는 것이 아니라, 아래와 같이 패키지 명시 또는 import 후 사용합니다.난수 생성을 위해 kotlin.random.Random 을 사용합니다.
Java 방식과 유사하지만, System.in 을 Kotlin에서 사용 시 in 이 예약어라서 백틱(\`)으로 감싸야 함.숫자, 문자열 모두 입력 가능.Kotlin에서 자주 쓰이는 표준 입력 함수.기본적으로 문자열(String) 로 입력 받음 → 필요 시 형변환(toI
Kotlin에서는 if가 하나의 "식(Expression)" 으로 취급됨.따라서 결과 값을 변수에 직접 할당할 수 있음.Java의 if는 문(Statement) 이라 이렇게 못함.Java의 switch와 비슷하지만 더 강력.값 비교, 범위 비교, 조건식, 타입 검사 모
컬렉션이나 범위(range) 를 순회할 때 사용.(start..end) → end 값 포함(start until end) → end 값 미포함컬렉션에 포함된 forEach 함수를 사용.람다 표현식으로 간결하게 작성 가능.Kotlin에서도 사용 가능하지만, Kotlin
listOf() → 불변(Immutable) 리스트 → 값 변경 불가능 (add, remove 불가)mutableListOf() → 가변(Mutable) 리스트 → 값 추가/삭제 가능Java의 ArrayList와 비슷arrayOf() 로 생성size, get(index
? (Nullable) : 해당 타입 변수에 null 저장 가능!! (Non-null Assertion) : 강제로 null 여부 체크 해제 (null이면 예외 발생)?. (Safe Call) : null이 아닐 때만 접근/실행let : null이 아닐 때만 블럭 실행
함수 선언 형식: fun 함수명(파라미터): 반환타입 { ... }반환타입 생략 가능: 표현식이 한 줄이면 타입 추론이 가능기본값(Default Parameter): 파라미터에 기본값을 지정 가능이름 있는 인자(Named Argument): 호출 시 파라미터 순서를 바
클래스 선언 형식: class 클래스명(생성자 파라미터) { ... }생성자 파라미터는 클래스 이름 옆에 작성한다. (자바처럼 함수 블록 안이 아님)파라미터 뒤에 콤마(,) 를 붙여도 에러가 나지 않는다.val, var 키워드를 붙이면 자동으로 Getter/Setter
val → 읽기 전용(기본적으로 getter만 생성)var → 읽기/쓰기 가능(getter, setter 모두 생성)private set → 외부에서 setter 접근 차단 (읽기 전용처럼 사용 가능)get() → 커스텀 게터 정의 가능 (field 키워드를 사용)da
프로퍼티를 정의할 때, 코틀린이 자동으로 생성해주는 실제 값을 저장하는 공간getter/setter를 직접 정의할 때 프로퍼티를 자기 자신으로 참조하면 무한 루프에 빠질 수 있음 → 이를 막기 위해 field라는 키워드를 사용field → 프로퍼티의 backing fi
코틀린에서 클래스는 기본적으로 final (상속 불가)상속이 필요하다면 클래스 선언 앞에 open 키워드를 붙여야 함메소드나 프로퍼티도 기본적으로 오버라이드 불가 → open 키워드 필요오버라이드 시 반드시 override 키워드 사용interface 키워드로 선언여러
is 연산자를 이용해 객체가 특정 타입인지 확인 가능is가 true로 확인되면 스마트 캐스트(Smart Cast) 기능이 적용되어, 별도의 형 변환 없이 해당 타입의 멤버를 바로 사용 가능!is 를 사용하면 반대(특정 타입이 아닌 경우) 확인 가능as 연산자를 사용하면
고차 함수(Higher-Order Function)함수를 인자로 받거나, 함수를 반환하는 함수Kotlin에서 콜백 함수를 간단히 구현할 수 있음람다 표현식{ parameter -> body } 형식파라미터가 하나일 경우 it 키워드로 축약 가능마지막 인자가 함수일 경우
코루틴(Coroutine)비동기 작업을 간단하게 처리할 수 있도록 돕는 경량 스레드수천 개를 동시에 실행해도 스레드보다 부담이 적음suspend 함수일시 중단 가능한 함수다른 suspend 함수나 코루틴 안에서만 호출 가능메인 스레드를 차단하지 않고, 비동기적으로 실행
코틀린은 자바의 타입 시스템을 개선하여 Unit, Any, Nothing 이라는 세 가지 특별한 타입을 제공합니다. 이들은 함수의 반환, 타입 계층, 예외 처리를 명확하게 정의하는 데 중요한 역할을 합니다. 1. Unit: 반환값이 없는 함수 정의: 반환 값이 없음을 나타내는 타입 (자바의 void와 유사). 차이점: void는 키워드지만, Unit은...
코틀린에서 init 키워드는 초기화 블록(Initializer Block)을 정의하는 데 사용됩니다. 이는 클래스의 인스턴스가 생성될 때 실행되는 코드를 포함합니다.init 블록은 클래스의 인스턴스를 생성할 때 (생성자가 호출될 때) 실행되는 코드 블록입니다.주로 클래
lateinit은 "나중에 초기화하겠다"(late initialization)는 의미를 가진 키워드입니다.보통 val(읽기 전용)에는 사용할 수 없고, var(가변 변수) 와 Non-null 타입에만 적용됩니다.즉, 선언 시 값을 할당하지 않고, 나중에 꼭 초기화할 것
Kotlin에서 컬렉션(List, Map, Set 등)을 다룰 때 자주 사용하는 함수형 고차함수(Higher-Order Functions) 들이 있습니다.그중에서도 map, filter, 그리고 람다식의 기본 매개변수 it 은가장 자주 등장하는 핵심 문법이다.람다식에서
“함수 호출을 인라인(복붙) 하여 호출 오버헤드를 줄이는 키워드”일반 함수는 호출 시 스택에 함수를 넣고 실행하지만, inline 함수는 컴파일 시 함수 본문을 호출 위치에 그대로 삽입합니다. 즉, 함수 호출 비용(call overhead) 을 제거해줍니다.컴파일
Kotlin 컬렉션은 List / Set / Map으로 나뉘며, 각각 읽기 전용과 가변 형태가 있다.읽기 전용: List<T>, Set<T>, Map<K, V>가변: MutableList<T>, MutableSet<T>, MutableMap&
비동기 데이터를 다루는 가장 코틀린스러운 방법.Flow는 비동기적으로 여러 값을 순차적으로 내보내는(emit) 데이터 스트림이에요.데이터를 한 번에 다 가져오지 않고, 필요할 때마다 값을 흘려보내는 구조라고 보면 됩니다.→ 대부분의 경우 Cold Flow로 충분하며,H