Kotlin(12)
-
[Kotlin] 5. 예외처리
Kotlin은 체크(컴파일) 예외와 언체크(런타임) 예외를 구분하지 않는다. Java는 체크 예외를 처리하도록 강제한다. 하지만 대부분의 프로그래머들은 체크 예외를 작성만 할뿐 의미없이 던지는 경우가 많다. 따라서 Kotlin에서는 이를 구분하지 않도록 했다. 예외를 던지면 예외를 잡을 때까지 호출된 함수를 거슬러 올라가며 예외를 다시 던진다. 1. try, catch, finally fun readNumber(br: BufferedReader): Int? { try { val line = br.readLine() return Integer.parseInt(line) } catch (e: NumberFormatException) { throw NumberFormatException("Invalid num..
2023.03.23 -
[Kotlin] 4. 대상을 이터레이션: while 과 for
1. while 문 whlie 문과 do while 문은 Java와 같다. while (조건) { /* ... */ } do { /* ... */ } while (조건) 2. 수에 대한 이터레이션: 범위와 수열 for 문은 Java의 for-each 문만 존재한다. 즉 for (int i = 0; i < n; i++)과 같이 사용할 수 없다. 대신 범위(range)를 사용한다. 범위는 기본적으로 두 값으로 이루어진 구간이다. 그 값은 보통 정수 등의 숫자 타입의 값이며 .. 연산자로 시작 값과 끝 값을 연결해서 범위를 만든단. val oneToTen = 1..10 코틀린의 범위는 기본적으로 닫힌 구간 또는 양 끝을 포함하는 구간이다. 즉 마지막 값이 항상 범위에 포함되어 있다. 일정한 값을 증가시키면서 ..
2023.03.23 -
[Kotlin] 3. 선택 표현과 처리: enum과 when
1. enum 클래스 enum class Color { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET } Java에서는 enum 키워드를 쓰지만 Kotlin에서는 enum class 키워드로 enum 클래스를 만든다. Kotlin에서 enum은 소프트 키워드(soft keyword)라고 부른다. 소프트 키워드는 특정 상황에서만 키워드로 사용되는 키워드로 그 상황이 아니라면 일반적인 상황에서 사용할 수 있다. ⚠️class는 키워드이다. 따라서 class라는 이름은 사용할 수 없으므로 clazz, aClass와 같이 사용해야 한다. Kotlin의 enum 또한 프로퍼티와 메서드를 정의할 수 있다. enum class Color ( val r: Int, val g: ..
2023.03.22 -
[Kotlin] 2. 클래스와 프로퍼티, 소스코드 구조
Java와 Kotlin의 클래스 비교 Java public class Person { private final String name; public Person(String name) { this.name = name; } public String getName() { return name; } } Kotlin class Person(val name: String) 1. 프로퍼티 프로퍼티(property)는 필드와 접근자(getter, setter)를 함께 부르는 말로 Kotlin은 이를 언어 차원에서 지원한다. 클래스에서 프로퍼티를 선언할 때는 val과 var를 사용한다. val은 읽기 전용이며 var는 변경 가능하다. class Person( val country: String, // 읽기 전용 프로퍼..
2023.03.21 -
[Kotlin] 1. 함수, 변수, 문자열 템플릿
함수 fun main(args: Array) { println("Hello World!!") } 함수는 위와 같이 fun 키워드를 사용하여 정의한다. fun 함수명([param: paramType): [returnType]) { [body] } 형식으로 작성한다. Kotlin에서는 함수를 최상위 수준에서 정의가 가능하다. Java는 반드시 클래스 내에 위치해야 한다. 💡Kotlin에서는 라인 구분을 위한 세미콜론을 사용하지 않는다! // 식이 본문인 함수 fun max(a: Int, b: Int): Int = if (a > b) a else b 위처럼 식이 본문인 함수를 선언할 수 있다. 파라미터는 "변수명: 타입" 으로 작성한다. 💡Kotlin에서는 if를 문(statement)이 아니라 식(expre..
2023.03.21 -
[JPA] 코틀린으로 엔티티 작성 시 고려할 점
최근 코틀린에 빠져서 코틀린으로 기존의 자바 작업들을 바꿔서 해보는 중이다. 그러다 코틀린에서 JPA를 쓰려고 하니 여러 가지 고려할 점이 생겨나 글을 작성하게 되었다. 먼저 JPA의 구현체인 Hibernate의 유저 가이드를 살펴보자. https://docs.oracle.com/javaee/5/tutorial/doc/bnbqa.html Entities - The Java EE 5 Tutorial Entities An entity is a lightweight persistence domain object. Typically an entity represents a table in a relational database, and each entity instance corresponds to a row ..
2022.02.08