코틀린은 JetBrains에서 개발한 JVM 기반 프로그래밍 언어로, 최근 몇 년 동안 웹 개발 분야에서 높은 인기를 얻고 있습니다. 코틀린은 자바와의 상호 운용성이 뛰어나며, 단순하고 간결한 문법, 안전한 널 처리 등 다양한 특징을 지니고 있습니다. 코틀린을 이용하여 웹 개발을 할 때에는 주로 Spring Framework와 함께 사용됩니다. Spring Framework는 자바 기반의 대표적인 웹 프레임워크 중 하나로, 코틀린과도 매우 호환성이 좋습니다. Spring Boot와 함께 사용하면 웹 개발을 보다 쉽고 빠르게 시작할 수 있습니다. 코틀린을 이용한 웹 개발에서 가장 기본적인 요소는 웹 애플리케이션의 라우팅과 컨트롤러입니다. 코틀린과 Spring Framework를 이용하면 어노테이션 기반의 ..
Author: 니용 Java에는 extends와 implements 등으로 상속을 받고 있습니다. Kotlin은 그보다 더 쉽게 상속이 가능합니다. 먼저 상속할 클래스 앞에 open 키워드를 붙입니다. open class Person { var name: String? = null val gender: String? = null val age: Int? = null } class PersonInfo : Person() 상속의 방식은 콜론(:)을 기준으로 가능합니다. 주의: data class는 open 키워드를 붙일 수 없습니다. 추상 클래스와 인터페이스 // 추상클래스 abstract class A { // Java와 마찬가지로 적어도 한 개 이상의 추상메소드가 있어야 해요 abstract fun ma..
Author: 니용 Kotlin에서 제공하는 객체 타입 중 연관 타입끼리 관계가 없어도 2개 혹은 3개를 쌍으로 가지고 있는 객체가 있습니다. 2개인 경우 Pair라고 하고, 3개인 경우는 Triple이라고 합니다. Pair val pair1 = Pair("Same", "Type") val pair2 = Pair("Another Type", 8080) // 명시적 타입 선언 val pair3 = Pair("Same", "Type") val pair4 = Pair("Another Type", 8080) getter는 .first / .second 또는 .component1() / .component2()로 접근 가능합니다. val pair = Pair("String Val", 838); pair.first..
오래전에 Java에서 JPA를 사용하는 글을 올려본 적이 있어요. 그래서 이번에는 Kotlin에서도 가능할 것인지 테스트 겸 프로젝트를 구성해보았습니다. 먼저 프로젝트를 만들어봐야겠죠? IntelliJ를 사용하였고, Spring Initializr를 사용했습니다! File -> New -> New Project에서 Spring Initializr를 선택합니다. 프로젝트명과 그룹도 정해주시고 Type은 Gradle Project, Language Kotlin으로 설정합니다. 다음으로 Dependency를 선택할 부분인데 API의 용도로만 사용하기 위해 심플하게 선택했습니다. 제가 잘못한 게 'Spring Web Starter'가 추가가 안되었습니다 ㅠㅠㅠ 추가해주세요. 프로젝트가 생성되고 build.gra..
Author: 니용 초기화 지연 Kotlin에서는 런타임에서 작동할 때 초기화의 우선순위를 뒤로하여 초기화해주는 방법이 존재합니다. 이를 lateinit 키워드 또는 by lazy를 사용하여 작성할 수 있습니다. 왜 사용할까요? 초기화를 늦추게 되면 프로젝트가 부팅되면서 메모리에 우리가 작성한 소스코드가 적재(load)됩니다. 이 과정에서 모든 데이터를 올리게 되면 아무래도 사용하지 않는 데이터가 있을 것인데 같이 올라가게 되다 보니 성능에 지연이 발생할 수 있습니다. 이를 개선하기 위해서 특정 코드가 호출되었을 때 초기화를 할 수 있도록 지정해주기 위해 사용하는 방법입니다. 키워드가 두 개인만큼 사용하는 방법에는 차이가 있습니다. Late initialization lateinit을 사용하여 변수를 선..
Author: 니용 Kotlin 언어는 Java와 같지만 약간 다른 Control Flow(흐름 제어)를 가지고 있습니다. 대신 간편하게 사용할 수 있도록 설계되어 있습니다. 삼항 연산자 이전에 글에 작성된 부분입니다. // Java int maxOf(int a, int b) { return (a > b) ? a : b; } // Kotlin fun maxOf(a: Int, b: Int) = if(a > b) a else b Switch Case Kotlin은 Java의 스위치 제어문도 다릅니다. // Java int x = 0 switch(x) { case 1: System.out.print("x == 1"); break; case 2: case 3: System.out.print("x == 2 or ..
Author: 니용 이전에 Java를 사용하면서 대표적으로 많이 사용하였던 것이 바로 함수(메서드)였습니다. Kotlin에서도 Java보다 더 쉽게 함수를 사용할 수 있습니다. 보통 Java는 public class ClassName을 선언하고 그 아래에 사용을 했어야 했는데요, Kotlin은 class 선언이 따로 필요 없이 사용이 가능합니다. 이전 글에서도 보시다시피 프로젝트를 실행시키는 메인 함수가 class 선언 없이 3줄 내로 끝났었습니다. fun main(args: Array) { println("Say Hello") } 함수는 fun 키워드로 정의합니다. 함수가 있다면 파라미터도 존재하는데 파라미터를 선언하는 형태는 Java와 약간 다릅니다. 기본적인 타입과 선언에 대한 내용은 여기서 자세히..
Author: 니용 코틀린 언어를 사용하려면 가장 먼저 설치와 빌드 환경을 구축하여야 하겠죠 각 환경마다 차이가 있으니 자신에게 맞는 방법으로 설치하시면 되겠습니다. 먼저 공통적으로 설치하여야 하는 부분입니다. macOS: Homebrew가 설치되어 있지 않으신 분은 Homebrew를 먼저 설치해주세요! $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew tap homebrew/cask-versions $ brew update JDK 설치 오라클 페이지에 들어가 JDK(Java Development Kit)를 설치합니다. 2020년 6월 24일 기준으로 Java 8..