안녕하세요, 하마연구소 입니다.Base64 인코딩은 바이너리 데이터를 사람이 인지할 수 있는 ASCII 문자로 표현하기 위한 방법입니다.영어 알파벳 대/소문자, 숫자, +(더하기), /(나누기,슬래시) 그리고 필요하다면 =(equal)만은 사용한 결과이기에 HTML이나 CSS 내부에 포함된 이미지 데이터 URL path 또는 쿼리파라미터 값으로 많이 사용됩니다.일반적으로 바이너리 데이터를 Base62로 인코딩하면 결과물이 다소 길어서 용량은 증가하겠지만, 일반 텍스트 편집기로 확인할 수 있다는 장점이 있습니다.또한 인코딩된 값을 직접 보면 무슨 의미인지 파악할 수 없으며 랜덤한 문자열로 보이기에 콘텐츠의 ID로 사용하기도 합니다.YouTube의 영상 ID가 이렇게 사용된 예시입니다.https://namu..
안녕하세요, 하마연구소 입니다.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..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.