-
Kotlin DSL
유명한 코틀린 입문서인 ‘Kotlin IN ACTION (오현석 옮김,에이콘,2017)’ 에서는 코틀린으로 DSL을 만드는 방법을 책의 한 장을 할애하여 설명하고 있습니다. 그리고 최근 Gradle 에서도 코틀린 DSL을 사용한 스크립트 작성도 지원하고 있습니다. 마침 ‘형식언어와 오토마타’를 공부하고 있어서 연습삼아 코틀린 DSL 스타일로 간단한 DFA를 만들어 보았습니다. 1. 구현 typealias Symbol = Char typealias...
-
SICP 학습을 위한 Scheme 설치하기
SICP는 ‘Structure and Interpretation of Computer Programs’의 약자로, 이 책은 ‘마법사의 책’이라는 별명으로 유명하다고 합니다(책 표지에 마법사가 나옵니다). 이 책은 MIT 컴퓨터과학과 수업에서 사용되었고, 소프트웨어의 기본적인 원리를 설명하면서 예제 코드를 Scheme 이라는 언어로 보여줍니다. Scheme(스킴)은 Lisp(리스프) 계열의 언어로써, 리스프의 수많은 방언 중 하나입니다. 리스프나 스킴에 대해서는 아직 잘 알지 못하지만,...
-
WebSocket - 멀티스레드 환경에서 사용시 synchronized 키워드 없애기
웹소켓(WebSocket)은 하나의 TCP 커넥션을 통해서 클라이언트와 서버간의 양방향 통신을 지속하게 해주는 프로토콜입니다. 제가 실무에서 사용한 용례는 특정 상품의 가격 정보를 나타내는 챠트를 만드는 경우였습니다. 종목의 실시간 정보 및 챠트 데이터 혹은 다른 사례로 채팅의 대화글 등, 클라이언트가 명시적으로 요청하지 않아도 서버에서 클라이언트의 특정 데이터 상태를 갱신해야만 하는 상황에서 유용한 것...
-
Redis - Sorted Set 활용하여 BigDecimal 데이터 저장, 정렬, 조회하기
우선 제가 필요로 하는 요구사항은 아래와 같습니다. 자바의 BigDecimal 을 키로 사용하고 그에 매핑된 리스트 구조의 튜플를 저장. 자바 타입으로 표현하면 TreeMap<BigDecimal, List<String>> 으로 될것 같습니다. 저장된 값들이 키값을 기준으로 정렬되어 있어야 함 원하는 BigDecimal을 사용하여 조회가능 원하는 BigDecimal의 범위로 검색가능 메모리 캐시를 사용하며 기본적인 영속성을 만족할 것(레디스 사용) ###...
-
자바 1.8 과 코틀린 차이점 요약
이 포스팅은 자바 1.8을 사용하다 코틀린을 처음으로 사용하게 될 동료들을 위해 제작한 자료입니다. 자바1.8과 코틀린의 차이점 중에서 제가 생각한 주요 부분을 주관적으로 나열해봤습니다. 1. 요약 1.1 하나의 파일에 여러개의 클래스를 정의 public class UserDto { private Long idx; public static class UserResponseDto { private Long idx; private String id; }...