반응형

IT 60

Kotlin의 모든 클래스에서 logger 객체를 편하게 얻을 수 있는 방법

안녕하세요, 하마연구소 입니다. Java에서 프로그래밍 할 때 편의를 위하여 Lombok을 거의 필수로 이용합니다. 보통 클래스변수의 getter()와 setter()를 자동으로 생성해주는 @Data 어노테이션을 붙이는 것을 많이 사용합니다. 그리고 @Log, @Slf4j 등 logger 객체를 쉽게 얻을 수 있는 기능을 제공하는데, 꽤 유용합니다. 코드가 많이 간단해집니다. Kotlin으로 프로그래밍하면서 이와 같은 logger 객체를 쉽게 얻어주는 라이브러리를 찾아보았지만, 찾지 못했습니다. 최근 Kotlin 버전에서는 Lombok을 공식적으로 사용할 수 있게 되었습니다. (https://kotlinlang.org/docs/lombok.html) 하지만 아직(현재버전 1.5.21) @Log, @Log..

IT/PROGRAMMING 2021.08.18

[Spring] spring-boot 2.1(SpringFramework 5.1)에서 없어진 기능, JSONP 간단하게 구현하기

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..

IT/PROGRAMMING 2019.06.09

[Spring] spring-vault에서 @VaultPropertySource 여러개 사용하면 안되는 이유

스프링 기반의 어플리케이션을 개발할 때, 환경설정으로 보안정보를 다루기 위하여 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..

IT/PROGRAMMING 2019.04.19

YouTube(유튜브) 동영상의 썸네일 이미지 추출하는 방법

살다보면 YouTue(유튜브) 동영상의 특정 장면을 얻어야 경우가 있다. 이럴때는 동영상을 정지 시켜두고 화면 캡쳐를 하거나, 다른 싸제 레코딩 프로그램으로 녹화한 후에 원하는 곳의 화면을 얻을 수 있다. 귀찮다. 정말 원하는 위치의 장면을 이미지로 얻는 것이 아니라면, 기본 썸네일 이미지를 쉽게 얻을 수 있다. 썸네일은 YouTube에서 자동 추출되거나 동영상 게시자가 업로드한 별도 이미지가 있다. 공식적으로는 YouTube Developers에서 제공하는 API를 사용해야한다. YouTube Developers: https://developers.google.com/youtube/ YouTube | Google Developers Integrate YouTube videos and functional..

IT/PROGRAMMING 2019.04.09

[Java] Gson, Jackson(ObjectMapper)으로 JSON 문자열 출력할 때, pretty printing하는 방법

자바에서 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..

IT/PROGRAMMING 2019.04.08

[뉴스] 카메라 렌즈를 디스플레이 속에 어떻게 숨길까

원문: https://news.v.daum.net/v/20190328082159667 카메라 렌즈를 디스플레이 속에 어떻게 숨길까 (지디넷코리아=김승민 양태훈 기자)삼성디스플레이가 스마트폰의 전면 카메라 렌즈까지 화면으로 채우는 '풀 디스플레이' 개발에 박차를 가하고 있다. 이르면 내년 상반기 삼성전자가 출시하는 '갤럭시S11(가칭)'부터 탑재가 전망된다. 27일 국내 전자부품 업계에 따르면 삼성디스플레이는 내년 상용화를 목표로 디스플레이 내부에 카메라 렌즈를 배치하는 'UPS(Und news.v.daum.net 디스플레이 뒤에 카메라를 숨기는 핵실 기술 설명은 아래와 같다. 삼성디스플레이는 현재 디스플레이 내부에 카메라 렌즈 등 모든 센서를 내장하는 방향으로 UPS 기술을 개발 중이다. OLED 디스플..

IT 2019.03.28

[뉴스] 애플, 새 에어팟 공개.. 무선 충전 기능 추가

다음주 예정된 Apple Special Event에서 새로운 에어팟을 소개할 것이라는 루머가 많았었는데, 진짜 루머였네요. 애플이 새로운 에어팟, AirPods 2세대를 3월 20일(미국시간)에 기습 발표했네요. 최근 며칠동안 새로운 iPad Air와 iPad mini를 기습발표하고 새로운 iMac도 홈페이지를 통해 소개했는데, 이번에는 새로운 AirPods을 갑자기 내뱉었습니다. 원문: https://news.v.daum.net/v/20190320223200241 애플, 새 에어팟 공개.. 무선 충전 기능 추가 (지디넷코리아=권봉석 기자)애플이 20일(미국시간) 새 에어팟을 공개했다. 무선 충전 케이스를 선택 가능하며 새로 개발된 H1 칩을 통해 배터리 지속 시간도 늘어났다. 애플은 새 에어팟에 헤드폰..

IT 2019.03.21

[뉴스] "에어팟 등 무선 이어폰 암 유발" 과학자 250명의 경고

어허~~~ 어쩌지? 에어팟 사용하고 나서 완전 신세계였는데. 유선이어폰도 전자기장 많이 나올 듯 한데. 무선보다 덜하겠지만, 유선이어폰도 믿지는 못하겠음. 수 많은 전자장비, WiFi, 블루투스, 휴대전화, LTE를 넘어서 5G까지 점점 더 고주파에 노출빈도가 높아지는데. 그냥 빨리 인간이 여기에 적응을하고 내성이 생기면 좋겠다. 원문: https://news.v.daum.net/v/20190318153805016 "에어팟 등 무선 이어폰 암 유발" 과학자 250명의 경고 무선 장치가 암을 유발할 수 있다는 주장이 제기됐다. 과학자들은 에어팟 등 무선 이어폰의 위험성을 경고하고 나섰다. 18일 미국 IT 전문 매체 테크타임스에 따르면 250여명의 과학자들이 유럽연합(UN)과 세계보건기구(WHO) 수장들에..

IT 2019.03.18

[뉴스] 새로 산 컴퓨터에 왜 비밀번호가..애플, 중고품 배송?

신제품을 구매한건데, 그것도 공식 홈페이지에서 주문했는데, 너무 심한거 아닌가? 상담원의 말바꾸기도 잘못된 것이지만 애플의 공식적인 사과가 있어야 할 것 같은데... 어찌 상담원 입에서 "리퍼비시" 얘기가 나올까? 초기설정이 안되었다고? 그렇다면 다른 제품도 중고품을 초기화 시켜서 새제품으로 팔고 있다는 것인가? 공식적인 대답은 항상 묵묵부답!!! 애플의 이런 대응에 애플빠인 나도 점점 실망을 하고 있다. https://news.v.daum.net/v/20190317205810867 새로 산 컴퓨터에 왜 비밀번호가..애플, 중고품 배송? [앵커] 제조회사의 공식 홈페이지에서 새 컴퓨터를 주문했는데 누군가 쓴 흔적이 보이는 나도 모르는 아이디와 비밀번호가 설정된 제품이 왔다면, 당황스럽겠죠. 세계적인 회사..

IT 2019.03.17

[Spring] ConcurrentKafkaListenerContainerFactoryConfigurer를 사용하고 싶다.

스프링 어플리케이션에서 카프카 토픽에서 값을 쉽게 가져오기 위하여 @KafkaListener 어노테이션을 사용한다. 여러개의 Kafka 서버에 접근해야할 필요가 있어서, 즉 @KafkaListener 어노테이션을 여러개 사용해야 해서, KafkaListenerContainerFactory를 수동으로 만들어야했다. 기왕 만드는김에 최대한 Spring에서 기본적으로 동작하는 방식으로 처리하려고 하니, ConcurrentKafkaListenerContainerFactoryConfigurer 이 녀석을 사용해야했다. spring-boot 버전 1.5.19를 사용하고 있으며, 그에따라 spring-boot-autoconfigure도 버전 1.5.19이다. 아래는 ConcurrentKafkaListenerConta..

IT/PROGRAMMING 2019.03.14

[Spring] Hibernate에서 "Could not build ClassFile" 발생하는 오류 해결

spring-boot 버전 1.4.2에서 현재 1.X 버전 최고인 1.5.19로 업데이트하였다. 한 프로젝트에 Maven 모듈로 여러 어플리케이션이 존재하는 구성이다. 2개 어플리케이션만 제외하고 나머지 어플리케이션은 잘 수행된다. 이 2개 어플리케이션에서는 처음 로딩 중 아래와 같은 예외가 발생한다. 더 특이한 것은 IDE에서 바로 실행시키면(로컬환경) 잘 된다. 서버환경에서만 안된다. 환장하겠다.Exception in thread "main" java.lang.ExceptionInInitializerErrorat com.hippolab.MyTopologyRunner.getApplicationContext(MyTopologyRunner.java:39)at com.hippolab.AbstractTopol..

IT/PROGRAMMING 2019.03.10

[뉴스] USB 4.0 나온다는데.."뭘 어디에 꽂아야 하지?"

USB 3.0을 두루 많이 사용한 이후로, USB 3.1, USB-C 이런말 들은지 1~2년 되었는데, 벌써 USB 4.0이라니? 개인적으로도/주위를 둘러봐도 USB 3.0은 그나마 많이 사용하는데, USB 3.1(USB type C)도 거의 없는거 같은데. 어쨌든 USB도 기술발전 엄청되었고, 그만큼 속도도 빨라졌다. USB 타입C와 구멍만 호환되었으면 좋겠다. 원문: https://news.v.daum.net/v/20190307060224010제목: USB 4.0 나온다는데.."뭘 어디에 꽂아야 하지?"언론사: 조선비즈

IT 2019.03.08

[Spring] spring-boot 1.5.X 부터 spring-kafka 사용할 수가 있네요.

스프링에서 @KafkaListener 어노테이션을 사용해서 간단하게 카프카 토픽을 바로보는 consumer를 작성하려면 spring-kafka 라이브러리가 필요하다. spring-boot를 적용한 환경에서 Maven pom.xml에 아래와 같이 dependency를 걸어주면 된다. org.springframework.kafka spring-kafka그런데 라이브러리가 추가가 안되서 확인해보니, spring-boot 1.5.X 이후부터 spring-kafka를 사용할 수 있었다. 직접 필요한 라이브러리들을 모두 추가하는 방법으로 spring-boot 1.4.X에서도 사용할 수 있는 것으로 보이지만, 그러고 싶지는 않았다. 어쩔수 없이 그냥 스프링부트 버전을 올렸다. 현재 최신버전인 spring-boot 2..

IT/PROGRAMMING 2019.03.06

애플(Apple) 차세대 무선이어폰 "에어팟(AirPods) 2세대" 출시예정 1개월전 관련 소식

지난 2016년 말, 애플은 무선이어폰을 출시하였다. 제품명은 "AirPods", 에어팟이다.제품발표 후 많은 사람들은 "디자인이 치실통이냐? 콩나물이냐?" 부터 시작해서 이것저것 엄청 깠다. 그중에서도 엄청난 가격때문에 비판이 많았다.그러던 와중에 제품이 출시되었다. 제품을 사용해본 사람들의 반응이 달라지기 시작했다. 품질도 괜찮고, 무엇보다 사용편의성이 엄청났던 것이었다. 특히 아이폰과 에어팟을 처음 연결할 때, 그냥 뚜껑만 열었는데 연결되는 그 느낌, 여기에서 와~~~ 탄성을 지른다. 첫 연결후에도 아래 이미지처럼 "이 기기 저기기로 매끄럽게" 연결할 수 있다. 단, 자동은 아닌데... 연결기기를 바꾸려면 사용자 액션은 필요하다. 이 에어팟의 후속작 얘기가 살살 나오고 있다.2019년 3월 발표 또..

IT 2019.03.03

JSON beautify만 있는줄 알았는데 정말 별개 다있는 "Code Beautify" 소개

프로그래밍 개발업무를 진행하다보면 코딩작업외에 부가적인 작업을 해야할 때가 많다. 예를들어, 테스트를 위한 대량 또는 대용량 샘플파일을 만들거나 엑셀파일 export/import, 2진수/16진수 변환, 네트워크 netmask 변환, HTML/XML 인코딩과 디코딩, URL escape와 unescape, RGB 추출, MD5/SHA 얻기, Base64 변환, 이쁜 XML/JSON 출력, 파일 다른곳 비교 등등... 너무너무 많다. IDE 또는 다른툴을 이용한 자동차 처리가 가능하면 괜찮다. 하지만 적당한 툴을 모르거나, 사용방법을 모르거나, 또한 그 사용방법을 숙지하기 위하여 검색과 테스팅 등 여러가지 이유로 인하여 그냥 무식하게 손수 한땀한땀 처리하는 경우도 종종있다.나는 개인적으로 사용방법을 항상 ..

IT 2019.03.02

[뉴스] '화면 달린 AI 스피커' 구글 홈허브 곧 국내 상륙

나는 카카오미니와 기가지니를 사용하고 있다.기가지니는 버렸다. 쓰레기통에 버린건 아니고, 나는 AI 기능을 사용하지 않기로 마음 먹었다. 좀 X신 같다. 특히 아이들 목소리는 거의 알아듣지 못한다. 그냥 일반 셋탑박스로 변경하려고 하니, 위약금 내야한단다. 그래서 그냥 IPTV 셋탑박스로 잘~~~ 사용하고 있다.반면에 카카오미니는 정말 잘 사용한다. 주로 사용하는 기능은 날씨, 음악(멜론)이다. 가끔 뉴스와 라디오, 팟캐스트도 듣는다. 얘는 말 잘 알아먹는다. 특히 아이들 말을 진짜로 잘 알아듣는다. 아이들은 미세먼지 확인을 자주한다. 미세먼지가 양호해야 야외로 놀러가니깐... 그리고 구구단 게임을 종종 한다. 뉴스를 듣거나, 날씨를 확인하거나, 또는 음악을 들을 때 가끔은 화면이 있으면 좋겠다라는 생각..

IT 2019.02.25

[뉴스] "페북, 11개앱서 이용자 동의없이 정보 수집"

Facebook 이러다가 망할꺼 같다. 나도 페이스북에 새로운 글 안쓴지 오래되었다. 차마 아직 앱까지는 삭제하진 못했다. 주위에도 페이스북 삭제했다는 얘기는 종종 듣는다. (확인은 못해봤지만) 제길~~~ 페이스북 계정으로 로그인 연결시켜 놓은 것 많은데... 잠깐~~~ React도 facebook 꺼잖아... 원문: https://news.v.daum.net/v/20190224195933317제목: "페북, 11개앱서 이용자 동의없이 정보 수집"언론사: 세계일보요약: 세계적 정보통신기술(ICT) 기업 페이스북이 최소 11개의 앱을 통해 사용자 개인정보를 동의 없이 광범위하게 수집하고 있다는 외신 보도가 나왔다. 22일(현지시간) 월스트리트저널(WSJ)은 전문가와 함께 애플 앱스토어에서 민감한 개인정보를..

IT 2019.02.25

[뉴스] "간편결제 맞나요".. 해외카드 등록 안되는 한국산 페이

국내사용자이기 때문에 전혀 문제없이 편하게 잘 사용하고 있었는데 이런 이슈가 있는지는 몰랐다. 법적인 문제가 있는건가? 아직은 해외카드 등록대비 수익률이 낮아서 즉, 사용율이 적어서 그런건가? 간편결제 및 페이 시장은 점점더 커지고 있는데, 빨리 해결되었으면 좋겠다. 그나저나 국제행사에 해외카드 결제가 안된다라는 것이 말이되는가? 결제 방식에 비자, 마스터 해외카드 직접 결제 넣으면 좋았겠지만, 그래 국내 간편결제 시스템만 넣을수도 있다. 하지만 해외카드를 어떻게든 사용할 수 있게해야 하는거 아닌가? 행사 담당자들은 이 사실을 알고는 있었을까? 답답하고 너무 아쉽다. 나도 해외구매하면서 아무것도 모르고, 뭘 가입하는 건지도 모르고, 영혼없이 뭔가 가입하고 카드번호 입력한 경험이 몇 번 있다. 혹시 비자,..

IT 2019.02.24

[Java] 일정시간이 지나면 값이 없어지는(expiring) 맵, 캐시로 사용가능한 ExpiringMap

자바 프로그래밍을 하다보면 콜렉션(collection) 중에 맵(Map)을 많이 사용하게 된다.동시성(synchronization) 처리를 위하여 자바는 기본적으로 thread-safe한 java.util.concurrent.ConcurrentMap 객체를 제공한다. 또는 java.util.Collections.synchronizedMap()을 이용해도 된다.그리고 복합키를 이용할 수 있도록 Apache에서 MultiKeyMap 객체도 제공한다.Map에 키와 값을 계속해서 put하게되면 key만 중복되지 않으면 자꾸자꾸 들어가게 된다. 그 개수야 상당하게 크지만 그만큼 메모리 사용량은 늘어나게 된다. 필자도 spring-integration에서 이러한 현상을 발견하게 되었고 이를 해결하기 위하여, 일정시..

IT/PROGRAMMING 2019.02.24

우리집에 kt 10기가 인터넷 설치 가능한지 알아보기

작년(2018년) 말 kt에서 1Gbps를 넘어서 10Gbps 인터넷 상품을 출시했다는 소식을 들었다. 벌써? 너무 빠른거 아냐? 일반 가정집에 필요할까? 다른 인터넷 서비스 업체나 지역케이블방송에서 제공하는 인터넷 속도는 아직 기가bps는 없고 메가bps만 서비스하는 곳도 있는데... 이런저런 생각을 하면서 "나도 언제가는 사용하겠지" 살짝 생각했고 기억에서 잊혀져 갔다. 기억에서 잊혀진 것처럼 나도 10기가bps의 인터넷 속도를 갈망하지 않고 있는 것 같다. 사실 지금까지 사용했던 1기가bps 상품을 최근에 0.5기가bps(500메가bps)로 변경했다. 속도를 다운시키면서 약 5천원 정도의 이용료를 줄였다. 와이프가 2019년 새해를 맞이해서 긴축재정에 돌입한다고 해서, 내가 솔선수범해서 점수를 좀 ..

IT 2019.02.22
반응형