
YouTube(유튜브) 동영상의 썸네일 이미지 추출하는 방법
유튜브 동영상의 특정 장면을 캡쳐해야하는 경우가 있지만, 쉽지 않습니다. 상당히 귀찮은 작업입니다. 특별히 원하는 위치의 캡쳐화면이 아니라면, 유튜브에서 제공해주는 기본 썸네일을 쉽게 얻을 수 있는 방법이 있습니다. 이 방법은 API를 사용하는 것이 아니라 URL만으로 편하게 썸네일을 얻을 수 있습니다. 다양한 품질과 크기의 이미지를 URL만으로 얻을 수 있는 방법을 소개합니다.
IT 개발자가 바라보는 경제 이야기
IT 개발자가 바라보는 경제 이야기
유튜브 동영상의 특정 장면을 캡쳐해야하는 경우가 있지만, 쉽지 않습니다. 상당히 귀찮은 작업입니다. 특별히 원하는 위치의 캡쳐화면이 아니라면, 유튜브에서 제공해주는 기본 썸네일을 쉽게 얻을 수 있는 방법이 있습니다. 이 방법은 API를 사용하는 것이 아니라 URL만으로 편하게 썸네일을 얻을 수 있습니다. 다양한 품질과 크기의 이미지를 URL만으로 얻을 수 있는 방법을 소개합니다.
자바에서 JSON 파싱하고 Gson과 Jackson(ObjectMapper)에서 JSON 문자열을 이쁘게 출력하는 방법을 소개합니다. Gson은 GsonBuilder를 사용해 pretty printing을 설정하고, Jackson은 writerWithDefaultPrettyPrinter()를 이용해 설정합니다.
스프링에서 @KafkaListener 어노테이션을 사용하면 쉽게 카프카 토픽에서 값을 가져올 수 있습니다. 여러 Kafka 서버에 접근하기 위하여 @KafkaListener 어노테이션을 여러개 사용하기 위하여 KafkaListenerContainerFactory의 커스터마이징이 필요합니다. 그러나 쉽지 않군요. 그 과정을 소개합니다.
Hibernate에서 "Could not build ClassFile" 발생하는 오류를 해결하는 과정을 소개합니다.
Spring에서 Kafka에 편하게 접근하기 위한 @KafkaListener 어노테이션을 spring-boot 1.5 이후부터 사용할 수 있게 되었습니다. 스프링에서 제공하는 `spring-kafka` 라이브러리만 추가하면 됩니다.
개발자들이 자주 필요로 하는 다양한 부가 작업들을 쉽게 처리할 수 있는 온라인 도구인 Code Beautify 사이트를 소개합니다. 일반적으로 IDE나 기타 프로그램으로도 가능한 JSON beautify 기능을 비롯해, XML/HTML 포매팅, Base64 변환, MD5/SHA 해시 생성, 텍스트 변환, 파일 비교, 네트워크 관련 유틸 등 수많은 기능을 제공합니다. 특히 번거로운 설정 없이 웹사이트에서 바로 사용할 수 있어 유용하며, 무료로 제공된다는 점에서 더욱 매력적입니다. 필요한 작업을 손쉽게 처리할 수 있는 유용한 웹 도구로, 개발자라면 즐겨찾기 해둘만한 사이트이며, 지금도 계속하여 기능이 추가되고 있습니다.
ExpiringMap은 Java에서 사용되는 키-값 기반의 캐시 라이브러리로, 항목마다 만료 시간을 설정할 수 있는 기능을 제공합니다.
요소는 삽입 시점, 마지막 접근 시점 등을 기준으로 자동 만료되며, 다양한 만료 정책을 지원합니다.
만료 후 자동 삭제되며, 필요시 삭제 시 콜백 함수(ExpirationListener)를 설정할 수 있습니다.
스레드 안전하며, 내부적으로 ConcurrentHashMap을 기반으로 동작합니다.
경량이면서도 TTL 캐시 기능이 필요한 경우에 적합한 라이브러리입니다.
자바에서 Iterable 인터페이스를 구현한 객체를 스트림으로 처리하는 간단한 방법이 있습니다.
StreamSupport 클래스를 사용하면 되며, 자바에 기본으로 포함되어 있습니다.
Iterable에서 Spliterator를 얻어서 stream 처리하면 됩니다.
StreamSupport.stream()의 두번째 파라미터를 true로 주면 parallel(병렬) 스트림 처리도 가능합니다.
스프링으로 웹어플리케이션을 작성하면 기본적인 오류화면은 아래와 같이 "Whitelabel Error Page"가 보입니다. 이 오류화면을 없애고 싶다면 아래와 같이 application.properties 파일에 설정을 추가하면 됩니다.
자바에서 클래스를 정의할 때, 제너릭(generic) 타입을 종종 사용하게 됩니다. 코딩을 하다보면 이 generic 타입이 어떤 클래스인지 알아야할 때가 있죠. 방법은 자바 리플렉션을 이용하면 됩니다. 런타임 시에 generic 타입에 실제 어떤 클래스가 들어왔는지 확인해보는 방법을 알려드립니다.