가볍게 읽어보는 Kotlin) 1.기본 문법 및 변수와 자료형

Intro 코틀린은 Intelli IDEA를 개발한 JetBrains 사에서 공개한 오픈 소스 프로그래밍 언어 입니다. JVM 위에서 돌아가며 자바와 유사 하지만 간결한 문법과 다양한 기능 추가로 굉장히 호평을 받고 있습니다. 처음 공개된 2011년 에는 그렇게 큰 관심을 받지 못했지만, 오라클이 Java API 저작권으로 좋지 않은 신호를 계속 보이자 Google에서는 2017년 안드로이드의 공식 언어로 Kotlin을 추가 하였습니다. 그 때 부터 비약적인 관심을 받기 시작한 코틀린은 간결한 문법, 예외처리를 강제하지 않음, Null 안정성 등 으로 비약적인 생산성과 코드량 감소로 입소문을 타기 시작하였고, 이제는 흔히 네카라쿠배로 불리는 대기업 IT회사들을 필두로 여러가지 신규 서비스들이 코틀린으로 ..

Programming/Kotlin 2022.04.07
java) 151개의 포켓몬을 모두 모으려면 몇개의 포켓몬빵을 사먹어야 하는가

Intro 출처: 온라인 커뮤니티 포켓몬 빵으로 인해 간만에 온라인이 시끌벅쩍 합니다. 몇 해 마다 이런 특정 아이템의 품귀 현상이 반복되는데, 꼬꼬면과 허니버터칩에 이어 포켓몬까지 셋 다 전혀 다른 성격의 객체들이지만 잠깐의 유행에 그치고 말 것이란건 모두가 경험을 통해 잘 알고 있습니다. 20여년 전에는 맛 없는 빵을 먹는 것도 좋았고 스티커를 모으는 것도 설레였지만 아쉽게도 이제 둘 모두에 흥미를 잃었습니다. 다만 이번 상황을 접하며 모든 스티커를 다 모으려면 평균 몇개의 빵을 사야 하는지가 궁금해졌습니다. 실제 수많은 스트리머들이 수백개씩 빵을 벌크로 구매해서는 모든 스티커 모으기 컨텐츠를 진행하기도 합니다. 수학적인 풀이 방법도 있겠지만 컴퓨터에게 잘만 부탁하면 원하는 정보를 모두 계산해서 알려..

Programming/Java 2022.03.20
Spring Boot 1.5 -> 2.5 마이그레이션 회고

Intro 최근 스프링 부트 1.5 버전으로 작성된 프로젝트를 Spring Boot: 2.5.10 버전으로 올리는 작업을 진행 하였습니다. 스프링부트 앞자리 버전 차이가 굉장히 큰데, 온라인 게임에 비유한다면 메이플스토리에서의 빅뱅 혹은 와우의 대격변 전후를 생각하면 이해가 빠르겠습니다. 단순히 pom.xml에서 버전 명시를 변경한다고 뿅 하고 바뀌는건 아니고, 스프링 부트 변경에 따라 여러가지 클래스가 사라지고 새로 생겨났으며 각종 메서드들의 변화도 상당합니다. 스프링 설정 하는 방법도 달라지고, 구석구석 영향이 가지 않는 곳이 거의 없기 때문에 프로젝트가 크면 클수록 그 여파가 상당합니다. 제가 이번에 마이그레이션을 진행한 프로젝트도 몇년간 진행되며 몇번의 고도화를 거친 프로젝트이다 보니 규모도 제법..

Programming/JPA ⁄ Spring 2022.03.15
HikariCP) Connection Pool 설정 및 확인하기

Intro 실제 사용하는 커넥션 수에 비해서 커넥션 풀을 넉넉하게 잡고 있었는데, 해당 DB를 여기저기서 다 사용하다 보니 커넥션 풀을 조금 타이트하게 가져가 달라는 요청을 받았습니다. Connection Pool을 조절하고, 실제로 DB에서 커넥션을 몇개나 물고 있는지 확인 해 보도록 하겠습니다. 설정 application.yml 스프링 부트에서 Hikari 설정은 spring.datasource.hikari 에 합니다. 변경 전 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/postgres usern..

Programming/JPA ⁄ Spring 2022.03.04
Java) 클립보드에 텍스트 복사 / 붙여넣기

Intro 저에게 필요한 기능이 있어 쉘에서 간단하게 만들어 보려고 했는데.. shell script에는 제가 익숙하지가 않아서 자바로 프로그램을 작성 하고 alias로 등록 해서 사용하기로 했습니다. 해당 기능을 구현하며 클립보드로 텍스트를 복사해내거나 클립보드에 있는 텍스트를 꺼내오는 기능을 사용 해야 했는데 굉장히 생소해서 해당 내용을 정리 해 보았습니다. 복사, 붙여넣기 코드만 확인 하실분은 복사의 경우 Copy to the clipboard 부분의 코드를, 붙여넣기가 필요한 분은 맨 아래의 argument 없이 실행 부분의 코드만 확인 하시면 됩니다. Requirements 저는 LeetCode 문제풀이를 할 때 테스트 코드 작성이나 디버깅등을 위해 IDE로 옮겨와 작업을 합니다. 매번 적당한 ..

Programming/Java 2022.02.26