본문 바로가기

전체 글

Kotlin - 반복문(for, while) https://kotlinlang.org/docs/control-flow.html#for-loops Conditions and loops | Kotlin kotlinlang.org For 문 (For loops) for 문은 C#의 foreach 문과 동일하게 interator를 제공하는 타입이면 사용할 수 있다. 기본 사용 방법은 아래 와 같다. val items = listOf("apple", "banana", "kiwi") for (item in items) println(item) // 코드 부분을 블록으로 감싸서 사용할 수 있다. for (item in items) { println("item is $item") } For 문에 인자로 사용한 타입들 위에서 이야기 한 대로 iterator를 제공.. 더보기
Kotlin - 조건문 https://kotlinlang.org/docs/control-flow.html Conditions and loops | Kotlin kotlinlang.org If 표현식 (expression) Kotlin에서 if 는 표현식 이기 때문에 값을 반환하고, 3항 연산자(condition ? then : else)가 존재하지 않는다. val a = 5 val b = 10 var max = a if (a b) { max = a } else { max = b } println("Max value is $max") // 표현 식 으로서의 if max = if (a > b) a else b println("Max value.. 더보기
Kotlin - 타입체크와 형 변환 https://kotlinlang.org/docs/typecasts.html is, !is 연산자 오븍제트가 특정 타입인지 아닌지를 확인할때 사용된다. if (obj is String) { print(obj.length) } if (obj !is String) { print("Not a String") } else { print(obj.length) } Smart 형변환 보통의 경우 Kotlin 컴파일러가 is 연산자를 확인하고 해당 타입으로 자동 형 변환을 하기 때문에 명시적인 형 변환을 할 필요는 없다. 컴파일러는 !is 체크 이후 return 문이 온다면 안전하다는 것을 알 만큼 똑똑하다. fun demo(x: Any) { if (x is String) { print(x.length) // x is.. 더보기
Kotlin - 데이터 타입 (배열) 출처 : https://kotlinlang.org/docs/arrays.html Arrays | Kotlin kotlinlang.org 배열은 다른 언어와 마찬가지로 고정된 사이즈수의 동일하거나 하위 타입 데이터를 담는 데이터 타입이다. Kotlin 에서는 Array 클래스를 이용해서 표현된다. 배열을 사용하는 경우 Kotlin 에서 배열은 일반 어플리케이션 대비 높은 성능이 필요하거나, 사용자 정의 자료구조를 정의하는 등 저수준 요구사항을 만족시키기 위한 경우 주로 사용된다. 그렇지 않은경우에는 그냥 Collections(list, set, map) 을 사용하면 된다. Collections은 배열 에 비해 아래와 같은 이점들이 있다. Collections은 read only 로 만들수 있어서 명확한 의.. 더보기
Kotlin - 데이터 타입 (Character, String) 출처 : https://kotlinlang.org/docs/characters.html, https://kotlinlang.org/docs/strings.html Characters | Kotlin kotlinlang.org 문자 (Characters) 문자는 Char 타입으로 표현 할 수 있다. 값은 작은 따옴표(')를 이용해 할당한다. val a = 'a' 특수문자 \t : tab \b : backspace \n : new line (LF) \r : carriage return (CR) \' : 작은 따옴표 (') \" : 큰 따옴표 (") \\ : backslash \$ : $ \u : Unicode로 인코딩 하는 경우 (예 : '\uFF21') 문자가 숫자 인 경우 digitToInt() 함수를 .. 더보기
Kotlin - 데이터 타입 (숫자, Boolean) 출처 : https://kotlinlang.org/docs/numbers.html, https://kotlinlang.org/docs/unsigned-integer-types.html Numbers | Kotlin kotlinlang.org 정수 타입 (Integer types) Type Size (bits) 최소 값 최대 값 Byte 8 -128 127 Short 16 -32768 32767 Int 32 -2,147,483,648 (-2^31) 2,147,483,647 (2^31 - 1) Long 64 -9,223,372,036,854,775,808 (-2^63) 9,223,372,036,854,775,807 (2^63 - 1) 타입을 명시적으로 선언 하지 않으면 컴파일러가 해당 숫자를 수용 할 수 있.. 더보기
JUnit5 테스트 순서 지정하기 JUnit 이 테스트 메소드를 실행하는 순서는 나름의 알고리즘을 사용하여 정렬된다고 하는데, 어떤 규칙인지는 잘 모르겠다. 그리고 보통의 단위 테스트는 실행 순서에 크게 상관 없지만 통합테스트나 기능 테스트를 수행하는 경우에는 테스트의 순서를 지정하고 싶은 경우가 있다. 테스트 함수의 실행 순서를 제어하기 위해서는 아래와 같이 @TestMethodOrder 어노테이션에 MethodOrderer 구현체를 지정하면 된다. MethodOrderer는 이미 정의된 구현체를 사용해도 되고 직접 구현해도 된다. @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class TestMethodOrderTest { @Test @Order(3) @DisplayNa.. 더보기
java.time.format.DateTimeParseException (...could not be parsed: Unable to obtain LocalDate from TemporalAccessor) 년월 데이터를 처리하기 위해 LocalDate를 사용하고 있던중, 문자열을 LocalDate로 변환할 일이 있어 별 생각 없이 LocalDate.parse(문자열, DateTimeFormatter)함수를 사용했다. String yearMonthString = "202210"; LocalDate yearMonth = LocalDate.parse(yearMonthString, DateTimeFormatter.ofPattern("yyyyMM")); 결과... java.time.format.DateTimeParseException: Text '202210' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {Year=2022, Mont.. 더보기