반응형

전체 글 65

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

[뉴스] 인류가 최초로 관측한 블랙홀 모습

블랙홀이 실제로 존재하는지 처음으로 발견되었다네요. 지구에서 거리가 5천5백만 광년 거리에 있다니, 얼마나 먼지 전혀 감이 않오네요. 빛의 속도로 5500만년 떨어져 있는것을 어떻게 촬영한 것일까? 정말 신기하고 대단하네요. 무엇보다 지금으로부터 104년전인 1915년에 제시된 아인슈타인의 일반상대성이론이 이번 블랙홀 관측으로 입증되었다고 합니다. 아인슈타인도 대답합니다. 원문: https://news.v.daum.net/v/20190410221158578 인류가 최초로 관측한 블랙홀 모습 인류가 ‘블랙홀’의 핵심부를 영상으로 확인하는 데 성공했다. 아인슈타인이 1915년 일반상대성이론을 제시하면서 처음 개념이 등장한 블랙홀의 존재를 직접적인 증거를 통해 눈으로 확인한 것은 이번이 처음이다. 연구를 이끈..

SCIENCE 2019.04.10

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

[YouTube] 수돗물 온수는 왜 뿌옇게 나오는 걸까?

따뜻한 수돗물 틀어서 컵이나 바가지에 받으면 뭔가 가루약을 탄 것처럼 뿌옇게 보인적이 자주 있었는데, 항상 왜 그럴까 궁금하기만하고 이유를 찾아보지는 않았네요. 단순하게 염소 또는 다른 불순물인줄 알고 그냥 버렸었죠. 그런데 다시 받아도 또 하얀빛을 띄는 물이 나오고, 또 나오고... 다들 경험있으시죠? 드디어 이유를 알았습니다. 원본 YouTube: https://youtu.be/jPywATCgTtU 초간단 이유 요약 물이 데워지면서 공기가 물속에 녹아 들어갑니다. 수도관 밖으로 물이 나오면 공기가 다시 물속에서 빠져나오는데, 이때 거품이 발생하여 하얀색으로 보인답니다. 결론: 수질에는 전혀 이상없다!

SCIENCE 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

[뉴스] 지구자기장 감지하는 인간 나침반..'제6의 감각' 있다

내가 북쪽을 탐지하는 능력이 있었다니... 대단한 능력이다. 학교 운동장에서 눈감고 실험해봐야겠다. ^_^ 경도와 위도를 알 수 있는 GPS능력도 가지고 있었으면 좋겠다. 그런데 요즘 내비게이션 때문에 지도 보는방법도 잊혀져간다. 그나마 카카오맵 같은 모바일앱으로 가끔 놀러갈 곳 찾아보느라 최소한의 독도법을 유지하고 있다. 조만간 퇴화될 듯 하다. 원문: https://news.v.daum.net/v/20190224120036309제목: 지구자기장 감지하는 인간 나침반..'제6의 감각' 있다언론사: 머니투데이요약: 인간이 나침반 없이 지구의 북쪽을 찾아내는 실험결과가 보고됐다. 경북대 채권석 교수, 한경대 김수찬 교수로 이뤄진 공동연구팀이 인간에게 자기감각이 존재하며, 이때 눈이 그 역할을 한다는 것을 ..

SCIENCE 2019.02.25

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

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

IT 2019.02.25
반응형