본문 바로가기

코틀린13

Kotlin - 고차 함수(High-order function), 함수 타입(function type), 람다(lambda), 익명함수(anonymous function) 코틀린 함수는 일급(first-class) 함수 입니다. 이것이 의미하는 것은 코틀린에서 함수가 변수와 자료구조에 저장될 수 있고, 함수의 매개변수로 보내질 수 있고, 다른 고차 함수로부터 반환되어질 수 있다는 것입니다. 코틀린의 함수는 일급 함수이므로 함수가 아닌 값에 대해 수행할 수 있는 모든 연산을 함수에 대해서도 수행할 수 있습니다. 1. 고차 함수(Higher-order functions) 고차 함수는 함수를 함수의 매개변수로 받을 수 있고, 함수를 반환할 수 있는 함수입니다. 2. 함수 타입(Function types) 코틀린은 함수 타입을 가집니다. 이것은 정수 타입, 실수 타입과 같은 타입을 말합니다. 함수 타입은 (Int) -> String 과 같이 쓰여질 수 있습니다. 이것은 정수를 매.. 2021. 8. 15.
Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기 이때까지 스프링 프레임워크를 사용한 웹 애플리케이션을 개발하는데 항상 xml설정 방식과 Java, JSP를 사용해 왔었습니다. 스프링 프레임워크에 대해서 계속 공부하던 중 Spring Boot, Kotlin, Thymeleaf등에 대해서 알게 되었고, 이것들을 조합하여 사용하는 것을 테스트해 보기로 마음 먹었습니다. 먼저 테스트를 위한 프로젝트를 생성해 보겠습니다. 사용된 개발툴은 다음과 같습니다. - JDK 1.8(Java 8) 이미 12버전까지 나와 있지만 못따라 가겠네요.T.T - Eclipse IDE 1918-12 Photon이후로 Eclipse의 명명방식이 년월을 붙이는 방식으로 바꼈네요. - Spring Tools 4 Eclipse 플러그인으로 사용하고 있습니다. Spring Boot 프로젝트.. 2019. 8. 19.
Kotlin - 클래스와 상속 코틀린에서 클래스를 만드는 방법에 대해 알아봅니다. 코틀린도 객체지향언어 이군요. 뭐, 요즘은 자바스크립트도 PHP도 모두 객체를 사용할 수 있도록 변해 왔으니까 특이할 것도 없겠죠. 클래스(class)는 객체가 어떤 데이터를 가지고, 어떻게 동작할지를 나타내는 코드 정보라고 할 수 있겠습니다. 실제 프로그램이 실행되어 정의된 클래스에 따라 컴퓨터의 메모리상에 객체가 만들어지면 이것을 인스턴스(instance)라고 합니다. 1. 클래스(Classes) 코틀린에서 클래스는 class 키워드를 사용해서 정의합니다. class Invoice { ... } class Box(t: T) { ... } 클래스의 선언은 클래스 이름, 클래스 헤더(클래스의 타입 파라미터의 정의, 기본 생성자 등), 중괄호로 둘러싸인 .. 2019. 8. 15.
Kotlin - 반환 및 제어 흐름 건너뛰기 - return, continue, break 이번에 볼 것은 함수 또는 람다 표현식에서 반환문(return)을 사용하는 방법과 루프의 반복을 건너뛰거나(continue) 바로 빠져 나오는(break) 방법입니다. - return : 기본적인 사용법은 return문장을 둘러싼 가장 가까운 함수 또는 익명 함수에서 반환합니다. 반환값이 있을수도 없을수도 있습니다. 기본적인 사용법에서라고 말한것은 코틀린에서는 라벨 반환을 할 수 있습니다.- break : 가장 가까운 둘러싼 루프를 종료합니다.- continue : 가장 가까운 둘러싼 루프의 다음 반복을 진행합니다. ※ 참고 : 둘러싼 가장 가까운 루프, 함수, 익명함수 라고 하는 것은 함수 또는 루프가 중첩될 경우 그중에 가장 가까운 것을 의미합니다. 이 return, continue, break는 다.. 2019. 7. 29.
Kotlin - 흐름제어(Control Flow): if, when, for, while 코틀린에서 프로그램의 흐름을 제어하는 방법을 알아봅니다. 흐름제어에는 if, when, for, while이 사용되어 집니다. 다른 언어와 유사합니다. 1. if 표현식(If Expression) 코틀린에서 if는 표현식 입니다. 즉, if가 반환값을 가집니다. 그러므로 코틀린에는 삼항 연산자(조건 ? 참일때 : 거짓일때)가 없습니다. 왜냐하면 보통 if가 삼항연산자의 역할을 잘 수행하기 때문입니다. // 전통적인 사용법var max = aif (a b) { max = a} else { max = b} // 표현식으로의 사용법val max = if (a > b) a else b if 표현식의 브랜치는 여러문장을 가지는.. 2019. 7. 13.
Kotlin - 패키지와 임포트(packages and imports) 패키지는 클래스들을 분류해서 모아둔것을 말한다고 생각하면 되겠습니다. 또한 패키지는 동일한 클래스 이름을 사용하는 클래스가 있을때 이름 충돌을 피하는데도 사용될 수 있습니다. 패키지는 인터넷 도메인 처럼 마침표(.)로 구분되는 문자열로 정의됩니다. 코틀린과 자바를 같이 사용하는 프로젝트라면 Kotlin 소스 파일은 Java 소스 파일과 동일한 소스 루트에 있어야하며 동일한 디렉토리 구조를 따라야합니다(자바에서는 패키지명의 마침표 부분으로 구분되는 디렉토리 구조에 파일이 저장됩니다). 순수 Kotlin 프로젝트에서 권장되는 디렉토리 구조는 공통 루트 패키지가 생략된 패키지 구조를 따르는 것입니다 (예 : 프로젝트의 모든 코드가 "org.example.kotlin" 패키지 및 하위 패키지에 있는 경우 "or.. 2019. 7. 5.
Kotlin - 기본 타입(Basic Types) Kotlin은 모든것이 객체입니다. 그러므로 모든 변수(variable)에 대해 멤버 함수와 속성을 호출할 수 있습니다. 몇몇 타입은 특별한 내부 표현을 가집니다. 예를 들어 숫자(numbers), 문자(characters), 불리언(booleans) 타입은 실행시간에는 원시값 처럼 표현되어집니다. 그러나 사용자에게는 보통의 클래스로 보입니다. 이 글에서는 Kotlin에서 사용되는 기본 타입인 숫자, 문자, 불리언, 배열, 문자열에 대해서 알아봅니다. 1. 숫자(Numbers) 코틀린은 숫자를 자바와 유사하게 다룹니다. 하지만 똑같지는 않습니다. 예를 들어 코틀린의 숫자 타입은 암묵적인 넓은 범위로의 변환이 없습니다. 그리고 어떤 경우에는 리터럴이 약간 다릅니다. ※ 참고 : 자바에서 서로 다른 타입의 .. 2019. 7. 1.
Kotlin - 코딩 관습(Coding Conventions) Kotlin을 Java, C, C++, PHP, C#등의 언어만 봐온 상태에서 배워보려니까 상당히 생소한 문법 형태가 많이 나오는것 같습니다. 코틀린 문법에 대해서 전혀 모르는 상태에서 이 코딩 컨벤션 문서를 보면서 문법을 모르면 이해하기 힘든 것들이 많이 있었습니다. 하지만 그냥 무시하고, 문서를 봤습니다. 다른 방법이 없어서 그랬다는게 맞겠죠.^^ 앞으로 문법을 배워 나가면서 이 문서를 다시보고 수정하던가 해야 겠습니다. 코딩 관습(Coding Conventions)은 띄어쓰기 이름작성시 대소문자등 문법오류와 관계 없으나 많은 사람들이 따르는 일반적인 코드작성규칙을 말합니다. 이런 규칙을 따르는 것이 다른 사람의 코드를 분석하거나 자신이 작성한 코드이더라도 가독성을 높이는 방법이 됩니다. 이 페이지에.. 2019. 6. 9.
Kotlin - 관용구(Idioms) 프래그래밍에서 관용구(idioms)는 자주 사용하는 코딩 형태나 패턴이 되겠습니다. 보통 같은 결과를 내는 프로그램을 다른 모양으로 작성할 수 있는데, 관용구는 주로 사용되는 형태를 말합니다. 여기에는 Kotlin에서 자주 사용되어지는 관용구(idioms)를 무작위로 모아둔 내용 입니다. 1. DTO(Data Transfer Object)s 객체 만들기 data class Customer(val name: String, val email: String) 이 간단하게 선언한 Customer 클래스는 다음 기능들을 제공합니다. 코틀린의 Data class에 대해서는 다음에 자세히 알아보겠습니다. - 모든 속성에 대한 getters (var로 선언 되었을 경우 setters 도 제공) 제공합니다. - equa.. 2019. 5. 6.
Kotlin - Basic Syntax(기본 구문) (2/2) Kotlin - Basic Syntax(기본 구문) (1/2) 에서 이어집니다. 기본 구문(Syntax)에 대한 글은 말 그대로 구문(Syntax)에 대해 설명합니다. 프로그램에서 구문(Syntax)는 문법(Grammar)에 의해 정의된 프로그램의 형태, 구조 등을 말합니다. 그러므로 설명 코드내의 자세한 연산자, 예약어, 예외 등에 대한 설명은 없습니다. 이러한 자세한 내용은 나중에 알아보게 되겠습니다. 9. null이 가능한 값의 사용과 null 체크하기 null 값이 가능한 참조(reference)는 null사용 가능하다는 표시를 반드시 해야 합니다(반환 타입 뒤에 ? 를 붙입니다). 다음 함수는 문자열 str이 정수가 아닐경우 null을 반환합니다. fun parseInt(str: String):.. 2019. 4. 30.
Kotlin - Basic Syntax(기본 구문) (1/2) 이 글에서는 Kotlin(코틀린) 언어의 기본 구문에 대해서 알아봅니다. 다음글을 번역한 내용 입니다. https://kotlinlang.org/docs/reference/basic-syntax.html 1. 문장 끝의 세미콜론 Kotlin은 문장 끝에 세미콜론을 붙이지 않아도 됩니다(붙여도 됩니다). 2. 패키지 정의는 소스파일의 제일 위에 적습니다. package my.demo import java.util.* // ... 소스 파일의 위치는 패키지명의 구조와 같을 필요는 없습니다(같아도 됩니다). 컴파일된 class파일은 패키지와 같은 디렉토리 구조 내에 생성 됩니다. 3. 함수의 정의하기 다음 함수는 두 개의 Int 파라미터를 가지고, Int 타입을 반환하는 함수 입니다. fun sum(a: In.. 2019. 4. 25.
안드로이드 스튜디오 Kotlin 프로젝트 만들기 안드로이드 앱을 Kotlin 언어로 만들기 위해서 안드로이드 스튜디오 프로젝트를 만드는 방법입니다. 사용된 안드로이드 스튜디오의 버전은 3.3.2 입니다. 이 버전에서는 언어를 Java와 Kotlin 중에서 선택할 수 있도록 되어 있습니다. 1. Start a new Android Studio project를 선택합니다. 2. Phone and Table -> Empty Activity를 선택합니다. 3. 프로젝트 정보를 입력합니다.언어를 자바와 코틀린중에서 선택할 수 있습니다. - Name : HelloKotlin- Package name : com.tistory.offbyone.hellokotlin- Language : Kotlin 4. 프로젝트가 만들어 졌습니다.자동으로 만들어진 MainActivi.. 2019. 4. 6.
Eclipse에 Kotlin(코틀린) 플러그인 설치 및 간단한 프로그램 실행해보기 요즘 Kotlin(코틀린)이라는 언어가 인기가 있다고 하네요. 한번 배워보기로 했습니다. Kotlin은 IntelliJ IDE를 개발한 JetBrains에서 2011년에 공개한 프로그래밍 언어라고 합니다. 특이한 점이 JVM 기반의 언어이고, Java와 100% 상호운영이 된다고 하네요. 2017년 구글이 안드로이드의 공식언어로 Kotlin을 추가하여서 더욱 인기가 높아진것 같습니다. 일단 JVM이 있어야 하므로 JDK가 설치되어 있어야 하고, Eclipse도 설치되어 있어야 합니다. 각각 "윈도우에 JDK 8 설치하기"와 "Eclipse 설치하기"를 참고 하세요. 1. Eclipse Kotlin plugin 을 설치합니다. Eclipse를 실행하고, Help -> Eclispe Marketplace.... 2019. 3. 28.