Kotlin
-
Enum의 property로 Json 변환 대상 특정하기KOTLIN 2023. 11. 1. 00:01
@JsonValue 어노테이션을 사용하면 된다. enum class Role(val value: String, val description: String) { SYSTEM("system", "시스템 설정"), USER("user", "사용자"), ASSISTANT("assistant", "ai 응답자"), FUNCTION("function", "함수 설정"); @JsonValue fun value(): String { return value } } 참고 https://www.baeldung.com/jackson-annotations#5-jsonvalue>
-
코틀린에서 Data클래스에 JPA를 사용할 때 주의해야 할 점KOTLIN 2022. 11. 27. 14:27
코틀린의 data 클래스를 JPA와 함께 사용하려던 도중 몇가지 문제가 발생하여 알아보았다. 기본생성자 코틀린에서 data타입을 이용한 객체를 구현하여 JPA를 사용할 때 기본생성자를 작성해주어야한다. 이전 자바 공부할 때 배웠듯이 JPA의 경우 reflection을 이용해서 구현되기 때문에 기본생성자가 필수이다. @Entity data class Restaurant( @Id @GeneratedValue(strategy = GenerationType.AUTO) var id: Long? = null, @Column(unique = true, nullable = false) var name: String ) { constructor() : this(null, "") } 하지만 매번 기본생성자를 생성하기 위한..
-
코틀린에서 테스트 하기 (⏳)KOTLIN 2022. 11. 27. 14:16
자바에서 실행했던 인수테스트와 API테스트를 코틀린에서도 적용하는 방법을 알아보자. API 테스트 먼저 API테스트는 간단하게 mock()을 주입해줌으로서 구현할 수 있다. 먼저 dependency에 추가해준다. dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc") testImplementation("io.mockk:mockk:1.12.0") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:1.6.20") test..
-
Kotlin + SpringBoot + Kafka 연동해보기 ( + spring kafka 와 reactor kafka )네트워크 & 인프라 2022. 11. 25. 01:40
아파치 카프카는 지난 번에 간단하게 개념정도만 정리했었는데, 이번에는 직접 사용할 일이 생겨서 kotlin에서 springboot + kafka 사용 방법을 공부했다. (지난 카프카 공부내용 정리 블로그 글) ↓ https://dodop-blog.tistory.com/409 아파치 카프카 EDA를 배우면서 카프카에 대해서 알게 되었고, 유튜브를 찾아보니 다음의 플레이리스트 강의가 있어서 아주 간단하게 기본 개념만이라도 학습해보았다! 정리한 자료 및 사진은 모두 영상의 내용 dodop-blog.tistory.com 카프카 설치 및 실행하기 먼저 카프카를 설치해준다. 해당 기준은 m1 processor를 기준으로 진행하였다. # brew를 통해서 kafka를 설치하면 zookeeper는 추가적인 설치가 필요..
-
📕 코틀린 동시성 프로그래밍 - Ch.2) Coroutine in ActionKOTLIN 2022. 11. 11. 15:29
스레드 생성 코틀린에서는 직관적인 프로세스로 손쉽게 스레드를 생성할 수 있다. 현재 챕터에서는 하나의 스레드로 충분하지만, 다른 챕터에서 CPU-bound, I/O-bound 작업을 효율적으로 실행하기 위한 스레드 풀을 생성한다. CoroutineDispatcher 코루틴에서 스레드는 손쉽게 생성할 수 있지만, 스레드에 직접적으로 접근하거나 통제하는 것은 불가능하다. 스레드의 가용성, 부하, 구성에 따라 코루틴을 분배하는 작업은 CoroutineDispatcher가 통제하여 수행한다. 예를 들어 ThreadPoolDispatcher를 사용하여 하나의 스레드만을 이용하여 코루틴이 실행되도록 설정할 수 있다. 코루틴에 Dispatcher를 지정하기 Dispatcher가 존재한다면 Dispatcher를 사용하..
-
📕 코틀린 동시성 프로그래밍 - Ch.1) Hello, Concurrent World!KOTLIN 2022. 11. 8. 14:04
코틀린 동시성에 대해서 공부하기 위해 '코틀린 동시성 프로그래밍 ' 책을 읽고 정리하기로 하였다. 이번엔 챕터1 부분을 읽고 정리하였다. 프로세스 프로세스란 실행되고 있는 어플리케이션의 인스턴스를 의미한다. 프로세스는 자원, 프로세스 ID 데이터, 네트워크 연결과 같은 상태를 가지고 있고 프로세스 안의 스레드는 이러한 데이터에 접근이 가능하다. 앞으로 말할 내용은 단일 프로세스안에서 여러개의 스레드를 가질 때 생길 수 있는 문제에 대해 다룬다. 스레드 스래드의 실행은 프로세스를 실행할 지시들을 포함한다. 프로세스는 기본적으로 어플리케이션을 실행할 시작점을 가진 스레드 하나를 가지는데 프로세스에 포함된 각각의 스레드는 프로세스가 가진 자원에 접근하고 변경할 수 있고 고유의 쓰레드 로컬 저장소라고 불리는 저..
-
gRPC ① gRPC란 ( + Kotlin 설정)네트워크 & 인프라 2022. 9. 30. 17:21
아키텍처를 공부하면서 배운 gRPC에대해서 알고싶어 공부를 시작했다! 🙌 참고한 영상 👇🏼 https://www.youtube.com/watch?v=pCTLu4awGVk https://www.youtube.com/watch?v=VBtwIkE-W14 참고한 글 👇🏼 https://dgahn.tistory.com/6?category=959084 [실습] Kotlin + Armeria + gRPC 사용기 - ProcolBuffer 편 들어가기 전에 이번 글의 목적은 프로토콜 버퍼와 JSON 그리고 gRPC와 HTTP를 비교하는 것이다. 프로토콜 버퍼가 메시지를 어떻게 경량화하는지는 프로토콜 버퍼 원리을 읽기 바란다. gRPC와 HTTP가 dgahn.tistory.com https://snowdeer.githu..
-
코틀린 기초 문법 ③KOTLIN 2022. 9. 28. 22:37
참고한 강의와 책은 이전 블로그 글에 올려두었다. https://dodop-blog.tistory.com/391 코틀린 기초 문법 ① 요즘 코드가 Java -> Kotlin으로 넘어가고 있고, 사용이 많고 동기 분들을 보니 모두 코틀린 공부를 하고 계셔서 Kotlin 공부를 시작했다. 노션에 따로 적으면서 공부하긴 했지만, 블로그에도 함께 적 dodop-blog.tistory.com 책이 후반부로 가면서 점점 어려워지고 있어서 고민이다 🤦♀️ inline함수 같은 경우 어떻게 컴파일이 되는지 이해가 되지 않아서 고민이었는데 동기 분이 알려주셔서 실제 컴파일 내용을 확인해 볼 수 있었다! 🙌 제너릭스 같은 경우는 정리가 제대로 되지 않아 다시한번 읽고 내용을 추가할 예정이다! (완료) 고차함수 파라미터와..