반응형

2021/04 10

Querydsl-JPA 코틀린스럽게 작성하기 ( 설정 포함 )

글 작성 목차는 아래와 같습니다. Kotlin Project에 Querydsl-JPA 설정 Kotlin스럽게 작성하기 Kotlin Project Querydsl-JPA 설정 먼저 Spring Initializer를 이용하여 Kotlin 프로젝트를 생성해보자! Build Script : Gradle Language : Kotlin Packaging : Jar Spring Web : Web Project를 위한 디펜던시 ( @RestController, @Service ... ) Spring Data JPA : JPA를 설정을 위한 디펜던시 ( Entity, Repository ) H2 Database : Entity기반으로 테이블을 생성할 메모리형 데이터베이스 코틀린 프로젝트를 만들고 build.gradl..

Develop/kotlin 2021.04.29

[코틀린 프로그래밍] Chapter.07 객체와 클래스

객체와 싱글톤 코틀린은 싱글톤을 직접 지원함으로써 싱글톤을 구현할 때 발생할 수 있는 부담과 구현이 잘못될 수 있는 리스크를 제거하였다. 객체 표현식으로 사용하는 익명 객체 객체가 필요하면 객체를 가져야 한다. 코틀린의 객체 표현식은 Java의 익명 클래스(Anonymous Class)를 생성하는 데 유용하게 쓰인다. 선언 방식으로는 object 키워드 이후에 블록을 작성하여 사용할 수 있다. fun drawCircle() { val circle = object { val x = 10 val y = 20 val radius = 30 } println("Circle x : ${circle.x} y : ${circle.y} radius : ${circle.radius}") } drawCircle() 익명 객..

Study/kotlin 2021.04.26

[코틀린 프로그래밍] Chapter.06 오류를 예방하는 타입 안정성

Any와 Nothing 클래스 Any Java의 Object와 대응되는 클래스지만 같지는 않습니다. Any는 to(), let(), run(), apply(), also()와 같은 확장함수를 가지고 있습니다. 이러한 메소드에 대해서는 뒤에 자세히 다루겠습니다. Nothing 함수가 아무것도 리턴하지 않는 경우이다. Java의 void가 떠오르지만 다른 개념입니다. 코틀린은 표현식이 리턴을 하지 않을 때에는 Unit을 사용합니다. 그러나 정말 아무것도 리턴하지 않는 경우에는 Nothing 사용합니다. fun computeSqrt(n: Double): Double { if (n >= 0) { return Math.sqrt(n) } else { throw RuntimeException() // Nothing ..

Study/kotlin 2021.04.20

[코틀린 프로그래밍] Chapter.05 콜렉션 사용하기

콜렉션의 특징Java에서는 리스트, 셋, 맵 등의 여러 종류의 콜렉션들을 사용합니다. 코틀린에서은 모두 지원하고 있고 이를 뮤터블( 변경가능 )과 이뮤터블( 변경불가능 ) 2가지로 나뉘어서 사용할 수 있습니다. 배열 만드는 방법val alphabet = arrayOf("a", "b", "c", "d") println("${alphabet[0]} and ${alphabet[1]}") smart하지 못한 방법아래 코드는 Integer 클래스 타입으로 생성됨. 오버헤드가 크게 발생합니다.val notSmartNumbers = arrayOf(1, 2, 3, 4, 5)smart한 방법int인 primity type으로 생성하자.val smartNumbers = intArrayOf(1, 2, 3, 4, 5) // ..

Study/kotlin 2021.04.14

[코틀린 프로그래밍] Chapter.04 외부 반복과 아규먼트 매칭

소스 코드에서 많은 비중을 차지하고 있는 for문을 코틀린에서 우아하게 다루는 방법을 정리해보겠습니다. 범위와 반복 코틀린에서 제공하는 레인지를 설정할 수 있습니다. val oneToFive: IntRange = 1..5 val aToE: CharRange = 'a'..'e' 반복 자바에서 일반적인 for문과 비교해보겠습니다. // Java for (int i = 0; i < 5; i++) { // logic.. } Kotlin // 정방향 for ( i in 1..5) { // logic.. } // 후방향 for ( i in 5.downTo(1)) { // logic... } until : 마지막값을 포함 시키지 않는 for (i in 1 until 5) { print("$i, ") } // 1,2,..

Study/kotlin 2021.04.13

[Monitoring] Kotlin + Actuator + Prometheus + Grafana + CAdvisor + Node-Exporter + AlertManager 구현

Monitoring을 구현해보자! 모든 소스는 Github에 올려두었습니다. 왜 Monitoring을 사용해야하는가? 먼저 Monitoring의 중요성에 대해서 간략히 정리해보겠습니다. Monitoring이 없는 서비스를 운영하고 있다고 가정합니다. 그 와중 버그가 없다면 다행이지만 버그가 발생하는 경우가 생깁니다. 만약 Monitoring이 없다면 버그가 발생했는지 조차 인지하지 못하고 고객센터를 통해 문의가 들어와야 확인할 수 있을 것 입니다. 또한 서버 용량, 메모리등의 문제로 서버가 다운될 수도 있습니다. 이럴 경우 선 버그 후 조치가 이루어질 것입니다. 하지만 Monitoring이 있었다면 버그가 발생하기 전 예방할 수 있고 문제가 되었을 경우 시각적으로 제공되는 데이터를 통해 대응을 빠르게 할..

Develop/devops 2021.04.08

[코틀린 프로그래밍] Chapter.03 함수를 사용하자

함수생성간단한 함수코틀린은 KISS ( Keep It Simple Stupid ) 원칙을 준수한다. 단순하게 작성이 가능하다.fun greet() = "hello" // 가장 심플한 메소드 정적타입의 변수와 마찬가지로 메소드의 리턴타입 또한 타입 추론이 가능하다. 위 코드를 보면 코틀린은 리턴타입이 String 타입이라는 것을 추론할 수 있다.fun greet() : String = "hello" // 위 코드와 동일 코틀린은 표현식이 많고 명령문은 적다. 아래의 메소드가 표현식이다.fun sayHello() = println("hello")코틀린 메소드에서 return 타입은 필수입니다. 위와 같이 리턴타입이 없는 println을 사용할 경우는 Unit 을 리턴합니다. Unit은 아무런 값도 리턴하지 ..

Study/kotlin 2021.04.05
728x90
반응형