안녕하세요, 하마연구소 입니다.ChatGPT라는 LLM 기반의 AI 서비스가 나오면서 저의 코딩 습관도 변하고 있습니다.기존에는 막히는 코딩을 해결하기 위하여 구글이나 포털에서 단순 검색하여 나와 동일하거나 비슷한 상황을 찾았고,그 찾은 게시글에서 해결방법이 있으면 막힌 것을 푸는것이고 아니면 다시 또 검색을 하였습니다.그러나 이제는 그냥 물어봅니다.ChatGPT에게...아니면 개발툴에 연동된 Copilot이 도움을 줍니다.월 몇 십 달러짜리 비서가 항상 대기하고 있는거죠.이제는 ChatGPT를 사용하는 것이 너무나 자연스러우며기존처럼 구글링하는 빈도가 현저하게 줄었습니다.포털 검색이 없으면 인터넷 사용하기 힘든 것처럼이러다가 AI 없으면 코딩을 못하는 날이 다가올지도 모르겠네요.AI 시대에 어떻게 살아..
안녕하세요, 하마연구소 입니다.spring-data-jpa에서 entity의 CUD 이력을 남기기 위한 audit 기능을 제공해줍니다.몇몇 설정한하면 아주 편리하죠.https://docs.spring.io/spring-data/jpa/reference/auditing.html Auditing :: Spring Data JPASpring Data provides sophisticated support to transparently keep track of who created or changed an entity and when the change happened.To benefit from that functionality, you have to equip your entity classes with a..
안녕하세요, 하마연구소 입니다.저는 갤럭시워치를 사용하고 있습니다.이유는?휴대전화가 갤럭시이기 때문이죠.만족스럽지 않은 것도 있지만 나름 잘 활용하고 있습니다.그런데 시계화면이 저에게 딱 맞는 것이 없어서, 기본 페이스로 이것저것 조절해가며 아쉬운데로 사용하고 있습니다.스토어에서도 만족 할만한 것은 아직 못찾았고요.그래서 만들기로 했습니다.생각보다 어렵지 않네요.삼성에서는 Watch Face Studio 라는 개발툴을 제공해줍니다.그리고 가이드도 있고요.https://developer.samsung.com/watch-face-studio/ko/overview.html 워치 페이스 스튜디오 | Samsung DeveloperThe world runs on you.developer.samsung.com 제가..
안녕하세요, 하마연구소 입니다.Kotlin 버전 2.0.0이 공식으로 출시되었습니다.https://kotlinlang.org/docs/whatsnew20.html What's new in Kotlin 2.0.0 | Kotlin kotlinlang.org 아직 무엇이 변경되었고, 얼마나 좋아졌는지 정확하게 모릅니다.솔직히 관심이 예전만큼 없습니다.지금도 만족하고 있거든요.그만큼 요즘은 코틀린의 깊숙한 기능을 사용하지는 않습니다.어차피 Java 기반의 어플리케이션 위에서 코딩의 편리성이나 효율성을 위하여 코틀린이라는 문법을 사용할 뿐입니다.그래도 시간내서 살펴보아야겠습니다.감사합니다.
안녕하세요, 하마연구소입니다.요즘 개인 프로젝트를 시작했으며 HTML 파싱이 필요하였습니다.고민하지도 않고 jsoup을 사용하고 있습니다.역시 부족한거 없이 잘 사용하고 있습니다.https://jsoup.org/ jsoup: Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safetyjsoup: Java HTML Parser jsoup is a Java library that simplifies working with real-world HTML and XML. It offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation usin..
안녕하세요, 하마연구소 입니다. Java에서 프로그래밍 할 때 편의를 위하여 Lombok을 거의 필수로 이용합니다. 보통 클래스변수의 getter()와 setter()를 자동으로 생성해주는 @Data 어노테이션을 붙이는 것을 많이 사용합니다. 그리고 @Log, @Slf4j 등 logger 객체를 쉽게 얻을 수 있는 기능을 제공하는데, 꽤 유용합니다. 코드가 많이 간단해집니다. Kotlin으로 프로그래밍하면서 이와 같은 logger 객체를 쉽게 얻어주는 라이브러리를 찾아보았지만, 찾지 못했습니다. 최근 Kotlin 버전에서는 Lombok을 공식적으로 사용할 수 있게 되었습니다. (https://kotlinlang.org/docs/lombok.html) 하지만 아직(현재버전 1.5.21) @Log, @Log..
JSONP 처리를 기본 기능으로 제공하였지만, 스프링부트 2.1(스프링프레임워크 5.1)부터 없어졌다. 이미 Deprecated 처리되어 언제가는 없어질 것을 예상했지만, 담당하고 있는 시스템에서는 아직 JSONP가 필요하였다. 없어진 AbstractJsonpResponseBodyAdvice.java 소스: https://github.com/spring-projects/spring-framework/blob/5.0.x/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractJsonpResponseBodyAdvice.java spring-projects/spring-framework Spring Fra..
스프링 기반의 어플리케이션을 개발할 때, 환경설정으로 보안정보를 다루기 위하여 Vault를 이용하게 된다. 일반적으로 가장 간단하게 Vault를 이용하는 방법은 @VaultPropertySource 또는 @VaultPropertySources 어노테이션을 사용하는 것이다. import org.springframework.context.annotation.Configuration; import org.springframework.vault.annotation.VaultPropertySource; @Configuration @VaultPropertySource(value = { "secret/hippolab/wallet1", "secret/hippolab/wallet2", "secret/hippolab/wa..
살다보면 YouTue(유튜브) 동영상의 특정 장면을 얻어야 경우가 있다. 이럴때는 동영상을 정지 시켜두고 화면 캡쳐를 하거나, 다른 싸제 레코딩 프로그램으로 녹화한 후에 원하는 곳의 화면을 얻을 수 있다. 귀찮다. 정말 원하는 위치의 장면을 이미지로 얻는 것이 아니라면, 기본 썸네일 이미지를 쉽게 얻을 수 있다. 썸네일은 YouTube에서 자동 추출되거나 동영상 게시자가 업로드한 별도 이미지가 있다. 공식적으로는 YouTube Developers에서 제공하는 API를 사용해야한다. YouTube Developers: https://developers.google.com/youtube/ YouTube | Google Developers Integrate YouTube videos and functional..
자바에서 JSON 파싱 및 변환을 위하여 많이 사용하는 Gson과 Jackson(ObjectMapper)에서 JSON 문자열을 출력할 때, 이쁘게 출력(pretty printing)하는 간단한 방법을 소개한다. Gson MyObject myObject = new MyObject(); Gson gson = new GsonBuilder() .setPrettyPrinting() .create(); String jsonString = gson.toJson(myObject); Jackson(ObjectMapper) MyObject myObject = new MyObject(); ObjectMapper objectMapper = new ObjectMapper(); String jsonString = objectMa..