프로그래밍 언어 노트/JAVA | Kotlin (13) 썸네일형 리스트형 Behavioral Programming 라이브러리를 코틀린에서 구현해보자 feat Channel Clojureverse 는 지식의 원천Clojureverse를 돌아다니다가 Behavioral Programming이라는 작은 패러다임에 관한 포스팅을 발견했다. 이 글을 보고 Behavioral Programming에 대해 좀 더 찾아봤는데, 주류는 아니지만 개인적으로 흥미가 생겼다.BThread라는 독립적인 Behavioral을 작성하고, BThread들이 조합되면서 하나의 BProgram이 완성되는 구조다. 복잡하게 얽히고 설킨 소프트웨어의 레고 블록들을 sync라는 공통된 이벤트 기반 시스템으로 관리하여 완성시킨다는 이론이다.절차 지향부터 함수형에 이르기까지 모든 소프트웨어가 공통적으로 추구하는 방향성은 모듈화와 그로 인한 레고처럼 조립하는 시스템이다. Behavioral Programming의 .. Kotlin DSL 에 다양한 제약사항을 적용해 보자 Feat [Contract] 필자는 Fluent API DSL 보다 Kotlin Type safe builder 를 활용한 DSL 을 좋아하는데, 보기에 좀더 깔끔하기 때문이다.Flunet API 는 Chaining 신경써야 하고 Depth 파악이 더 어렵기 때문그러나 Fluent API의 경우 Class Method Chaining 을 기반으로 하기 때문에 Class base 로 제약조건을 걸기가 좀더 쉽다. 예를들어, Name Age Email 을 받아서 User 를 만드는 Builder 를 설계한다고 해보자.제약 조건은 다음과 같다.1. age 는 Optional2. Name -> Email 순으로 받아야 하며, Required Field 이다 (일종의 Step)물론 해당 조건은 Compile Time 에 해당 제약 조건이 적.. [Ktor] + kts 활용해서 Dynamic Endpoint 만들기 Lee-WonJun/ktor-dynamic-endpoint-kts: Ktor-based server application sample that dynamically creates endpoints based on uploaded Kotlin script (.kts) files. (github.com) GitHub - Lee-WonJun/ktor-dynamic-endpoint-kts: Ktor-based server application sample that dynamically creates endpoints based onKtor-based server application sample that dynamically creates endpoints based on uploaded Kotlin scrip.. Kotlin 초기화 코드 제너레이터 Lee-WonJun/reverse-dummy-kt (github.com) GitHub - Lee-WonJun/reverse-dummy-ktContribute to Lee-WonJun/reverse-dummy-kt development by creating an account on GitHub.github.com예전에 dotnet 판을 만들었었는데, 이번에는 Kotlin 판.. 리플렉션 확인겸..사족) kotest 에서 string 이 컴파일 가능한지 확인하는 extension 이 있는데, 예전에는 잘됫는데.. extension 으로 분리되고부터 뭔가 잘안되서 그냥 string 비교로 검사함.. 코틀린으로 살펴보는 Y 컴비네이터 (Feat Fixed Point) - Y-Combinator를 사용한 함수 고정점 소개 과 [Kotlin Pearls 8] Recursion, Tail Recursion and Y Combinator | by Uberto Barbini | ProAndroidDev 의 Y Combinator 부분 간단한 요약임 재귀함수간단한 재귀함수를 짜보자// 재귀 함수를 짜보자fun factorial (n: Int): Int { if (n == 0) return 1 return n * factorial(n - 1)}짜잔!재귀는 자기 자신을 호출하므로, factorial 내부에서 factorial 을 호출하면 된다. 람다로 짜보자val factorialLambda: (Int) -> Int = { n -> if (n == 0) 1 els.. Hibernate Query Plan 으로 인한 OOM 방지 한 2년전에 발생한 문제인데, Query Plan QueryPlanCache (Hibernate JavaDocs) (jboss.org) QueryPlanCache (Hibernate JavaDocs)Obtain the parameter metadata for given native-sql query. for native-sql queries, the param metadata is determined outside any relation to a query plan, because query plan creation and/or retrieval for a native-sql query depends on all of the return typesdocs.jboss.org 간단히 말하면SQL -> 쿼리.. Kotlin ServerResponse 에 대한 DSL 을 구축해보자! [Spring Boot] + Kotlin 에서 Route + Beans DSL 을 사용해보자 (tistory.com) [Spring Boot] + Kotlin 에서 Route + Beans DSL 을 사용해보자 전통적인 Spring 의 방식 (MVC) 는 컨트롤러 + 서비스 + 레포를 어노테이션으로 등록하고, Spring 이 Bean으로 등록해서 슈슈슉 뜨는 방식인데, 나도 Spring 쓸때는 이렇게 작성하긴 하는데 개인적으로 선 see-ro-e.tistory.com 일전에 요 Post 에서 Kotlin Spring Boot 에서 Route Dsl 을 사용하는것을 확인했고 Kotlin SQL DSL 을 구축해보자! 쓸 수 있는 방법을 전부 동원해봐서! (tistory.com) Kotlin SQL DSL .. [Spring Boot] + Kotlin 에서 Route + Beans DSL 을 사용해보자 전통적인 Spring 의 방식 (MVC) 는 컨트롤러 + 서비스 + 레포를 어노테이션으로 등록하고, Spring 이 Bean으로 등록해서 슈슈슉 뜨는 방식인데, 나도 Spring 쓸때는 이렇게 작성하긴 하는데 개인적으로 선호하는 방식은 아니다. 개인적으로는 route data (혹은 function) 으로 조합가능하게 짜는 방식이 더 우아하다고 생각한다. 다만 Webflux 의 경우 (Java 에서도) Route Function (Functional Endpoints) 방식을 사용할수있는데. MVC 는 딱히 없는걸로 알고있었다. 근데 JAVA 라 DSL 그렇게 이쁘지는 않다. LinkedIn post 를 보다가, JetBrains 에서 발표한 자료에서 Kotlin Beans DSL 이 있는것을 보고 좀 .. 이전 1 2 다음