들어가며 Test 코드를 작성하다 보면 콘솔로 출력한 값을 검증하고자 할 때가 있다. 그럴때 OutputCapture 클래스를 이용하여 콘솔 출력 값을 가져오는 방법을 알아보자. 사용방법 OutputCapture인스턴스를 JUnit의 Rule어노테이션으로 선언하기만 하면 사용할 수 있다. 생각보다 아주 유용하다.. OutputCapture 인스턴스에 콘솔 출력 값이 모두 저장이 되어 값을 가져올 수 있다. public class MyTest { @Rule public OutputCapture capture = new OutputCapture(); @Test public void testName() throws Exception { System.out.println("Hello World!"); asser..
들어가며 많은 양의 데이터를 검색해오는 경우 아래와 같은 오류 메시지가 발생할 수 있습니다. Result window is too large, from + size must be less than or equal to: [10000] but was [10020]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level parameter Index는 기본적으로 max_result_window 라는 검색시 데이터 최대 개수 제한이 있는데 10000으로 설정됩니다. 이런 경우 ElasticSearch 에..
들어가며 애플리케이션에서 사용자의 키보드, 마우스 입력을 감지하는 기능을 구현해야 할 때가 있습니다. JNativeHook 라이브러리를 이용하여 이러한 기능을 구현하는 방법에 대해서 알아보겠습니다. JNativeHook Java 전용 Gloabl Keyboard, Mouse 리스너를 제공하는 라이브러리 입니다. 플랫폼에 구애받지 않으며 순수 Java로는 구현하지 못하는 키, 마우스 동작을 수신할 수 있습니다. 리스너에는 아래와 같은 Event들을 감지할 수 있습니다. Key Press Events Key Release Events Key Typed Events Mouse Down Events Mouse Up Events Mouse Click Events Mouse Move Events Mouse Drag..
Full Video Download Java URL Download를 이용하여 Video를 다운로드 하는 중 용량이 다소 큰 파일의 경우 Download가 되지 않는 현상이 발생했다. 자세히 브라우저에서 확인해보니 요청을 보냈을 때 서버의 응답코드는 302 였다. 클라이언트가 요청한 리소스가 Location 헤더에 주어진 URL에 일시적으로 이동되었음을 가리킴 검색을 통해서 확인해보니 해당 서버에서 Video 데이터를 다른 위치로 redirect를 하는 경우가 있어 최종 redirect된 URL을 알아내는 방법으로 해결이 가능하다는 내용을 확인하였다. 해결방법 Java 코드로 해결하는 방법은 302 코드를 응답하는 경우 Location헤더에 담긴 URL로 다시 요청을 보내는 것이다. 위 동작을 200 코..
들어가며 Selenium을 이용하여 브라우저 화면의 스크린샷을 찍고자 할 때가 있습니다. 구현방법 방법은 아래와 같습니다. 각 언어별 구현 방법을 모아놨으니 참고하시면 될 것 같습니다. //Java 구현방법 WebDriver driver = new FirefoxDriver(); driver.get("http://www.google.com/"); File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png")); //Python 구현방법 from selenium import webdriver browser = webdrive..
들어가며 Apache Poi를 사용하여 Exel Write 기능을 구현하는 중에 아래와 같은 에러가 발생했다. 대충 상황을 살펴보니 cell styling 기능을 사용하는데 이때 Style을 적용하는 Cell이 너무 많다는 의미인 것 같았다. The maximum number of Cell Styles was exceeded. You can define up to 64000 style in a .xlsx Workbook java.lang.IllegalStateException: The maximum number of Cell Styles was exceeded. You can define up to 64000 style in a .xlsx Workbook at org.apache.poi.xssf.mode..
PNG 파일 부가정보 기록 PNG 이미지 파일에 부가적인 정보를 추가해야할 때가 있다. DB에 넣기엔 너무 오버하고 이미지 파일에 가볍게 추가하고 싶을때.. PNG 파일에 메타 데이터를 넣는 방법이 있지 않을까 해서 찾아봤는데 해본 결과 생각보다는 간단하지 않아서 방법을 공유하고 한다. 해결방법 우선 Meta Data를 추가하는 방법은 아래와 같다. 근데 검색해본 결과 아래 처럼 "TextEntry -> Text" 와 같은 형식으로 값을 정의해줘야만 한다고 한다. 내부적으로 위 구조를 택하고 있어 요소를 추가하거나 Text가 아닌 다른 값으로 설정을 해도 안되더라 ,, private void writeImage() { BufferedImage buffImg; ImageWriter writer = Imag..
들어가며 웹 상에 호스팅된 리소스(이미지, 동영상)을 다운로드 받고자 할 때가 있습니다. 이럴때 리소스의 URL를 이용하여 로컬로 저장하는 방법에 대해서 알아보겠습니다. 방법 Java IO를 사용하여 아래와 같이 구현이 가능합니다. String OUTPUT_FILE_PATH = "출력 파일 경로"; String FILE_URL = "리소스 경로"; try (BufferedInputStream in = new BufferedInputStream(new URL(FILE_URL).openStream()); FileOutputStream fileOutputStream = new FileOutputStream(OUTPUT_FILE_PATH)) { byte dataBuffer[] = new byte[1024]; i..
- Total
- Today
- Yesterday
- JavaFX Window Close
- git
- 자바
- windows
- 텐트
- 이펙티브 자바
- 이펙티브
- 방통대 과제물
- JavaFX 종료
- 일본여행
- Java UI
- 일본 자전거 여행
- 일본 배낭여행
- effective java
- effectivejava
- 이펙티브자바
- JavaFX 테이블뷰
- 자전거
- 스프링부트
- 인텔리제이
- springboot
- JavaFX Table View
- java
- TableView
- 배낭여행
- JavaFX
- intelij
- 일본 여행
- 자전거 여행
- 배낭 여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |