■ InvocationTargetExceptionJava Reflection을 사용중 InvocationTargetException가 발생하는 경우가 있습니다. 이 예외를 처음 만났을 때는 정확하게 어느 위치에서 예외가 발생하였는지 알 수 없어 굉장이 당황할 수 있습니다.(사실 제가 그랬습니다...) InvocationTargetException는 method invoke시 호출한 메소드 내에서 Exception이 발생했을때 해당 Exception을 wrapping 해주는 Exception 클래스입니다. 실제로는 invoke 된 메서드에서 발생한 Exception이지만, 마치 invoke 구문에서 발생한것처럼 보이기 때문에 InvocationTargetException 자체의 stack trace 만으로..
인증되지 않은 SSL 인증서를 사용하는 사이트는 보안에 위험할 수 있습니다. 따라서 Java의 기본 API는 유효하지 않은 SSL 인증서를 사용하는 서버에 접속하지 못하게 설계되어있습니다. 하지만 개발용 서버나 여러가지 경우의 상황에서 유효하지 않은 SSL 인증서를 사용하더라도 접속을 해야하는 경우가 있습니다. 그래서 이번 예제는 유효하지 않은 SSL 인증서를 사용하는 서버에 접속할 수 있도록 HttpsURLConnection를 설정하는 예제입니다.
정말 오랜만의 포스팅입니다. 겨울방학 3개월동안 인턴과정을 진행했고 정직원 확정이 된 뒤로 블로그에 대한 관심이 소홀해진것 같아 죄송합니다 ㅠㅠ. Android에서는 Kotlin을 정식언어로 채용하고 곧있으면 Java 9이 출시된 분위기에서 Java 8버전에대한 소개를하자니 많이 늦은감이 있긴합니다만 그래도! Java8에서 새롭게 추가되었던 default 메소드에 대해서 알아보도록 하겠습니다. ■ Interface대부분 아실거라고 생각하지만 달라진점을 소개하기 전에 기존 특징을 먼저 알아보고 넘어가도록 하겠습니다. 인터페이스는 기본적으로 상수와 추상 메소드만을 정의할 수 있었습니다. 이를 클래스에서 구현하거나 익명으로 인터페이스를 구현한 객체를 생성할 수도 있습니다. 1234567interface Par..
안녕하세요 박스여우입니다. 이번에는 드디어 제가 배우고 싶었던 Spring에 대해 알아보고 개발하기 전 셋팅을 진행해 보고자 합니다. 사실 주변 사람들한테 들은바로는 Spring 자체는 어렵지 않은데 개발환경을 셋팅하는게 힘들다고 하더군요. 그래서 이번 포스팅을 통해 셋팅 방법을 기록해 보고자 합니다. ■ Spring? 우선 Spring이 뭔지부터 개념을 잡아야 할것 같습니다. (봄?) Spring 은 Java EE 의 복잡한 개발을 단순화 시켜줄 수 있는 Framework 입니다. Spring Framework는 Java EE의 개발을 POJO(Plain Old Java Object) 기반으로 개발할 수 있게 해 주며 Spring Framework를 이용하면 MVC(Model-View-Controlle..
안녕하세요 박스여우입니다. 프로젝트를 진행하던 도중 Stack Overflow에서 한 소스를 봤는데, static import와 제네릭 메소드라는 개념을 이용하여 코드를 작성했더군요. 저는 왜 그동안 한번도 접해보지 못했던 개념들일까요. 제네릭 클래스는 사용해 봤지만 제네릭 메소드는 사용해보지 못했네요.. 그래서 이번에는 이것들을 배우고자 포스팅을 하게 되었습니다. ■ Static Importstatic import는 Java 5.0 부터 추가된 기능입니다. static 메소드나 static 변수에 접근하기 위해 사용하는 import인데요, 정확한 사용방법은 예제를 통해 살펴보도록 하겠습니다. 123456package com.boxfox.statics; public class StaticTest{ pub..
안녕하세요 박스여우입니다. 이번 포스팅에서는 일반 프로젝트의 Export > Runnable Jar 파일과 같이 실행 가능한 Jar 파일을 Maven을 통해서 생성하는 방법에 대해 알아보도록 하겠습니다. ※ 해당 포스팅은 이전 포스팅의 다중 모듈 프로젝트를 기반으로 진행됩니다! ■ MANIFEST.MF (수동)실행 가능한 Jar 파일을 생성하기 위해서 Main 클래스가 존재하는 Jar 파일을 열어 MANIFEST.MF를 수정해야 하는 아주 귀찮은 과정을 거쳐야 합니다.저기 보이는 MANIFEST.MF 파일을 메모장으로 열어 class path를 설정하여 모듈과 라이브러리들을 등록하고 Main 클래스도 적어 주어야 합니다. 바로 이렇게 말이죠! 게다가 프로젝트에 사용되는 다른 모듈들의 build 된 Jar..
안녕하세요. 박스여우입니다. 요즘 일도 그렇고 프로젝트도 그렇고 Maven을 사용할 일이 잦은 것 같습니다. 이번 포스팅은 현재 진행 중인 프로젝트로 인해 필요한 부분인데요, 팀 프로젝트이다 보니 라이브러리 경로에 관련돼서 문제가 발생하고 하나의 프로젝트를 여러 명이어서 다루다 보니 조금 불편하더군요.. 그래서! Maven을 통해 이를 해결하고자 합니다. 이번 포스팅에서는 Maven의 다중 모듈을 구성하고 라이브러리를 관리하도록 해보겠습니다! 우선 Maven 프로젝트를 구성하기 전에 이전 포스팅 에서 Maven을 설치해야 합니다. Maven 설치를 마쳤다면 가볍게 넘어가 주시면 됩니다. ■ 다중 모듈 Maven Project!이번 포스팅은 이클립스를 기반으로 진행하도록 하겠습니다. (사실 Maven 프로..
Android, Winform, Swing, JavaFX등 대부분의 GUI 프레임워크들은 GUI를 다룰때 단일 쓰레드만을 지원합니다. 물론 별도의 쓰레드를 통한 작업이 가능하지만, GUI를 다루기 위해서는 다시 GUI를 담당하는 EDT(Event Dispatch Thread)를 이용해야만 합니다. 그 이유는 무엇일까요? ■ 멀티쓰레딩을 위한 시도AWT는 일반적인 다중 쓰레드를 지원하는 java library 로 시작하였습니다. 하지만 AWT를 이용함으로써 발생하는 교착상태와 경쟁 조건(race condition)등의 문제점이 발견되면서 단일 쓰레딩으로 방향을 돌렸고 그 이후에 개발된 Swing에서는 멀티쓰레딩을 제한한 설계를 하게 되었습니다. AWT외에 다른 프레임워크들도 다중 쓰레드를 사용하고자 하는 ..
안녕하세요 박스여우입니다. 오랜만의 포스팅 입니다. 이번에는 Maven에 대해서 알아보고자 합니다. 저도 평소 프로젝트 할때는 전혀 필요가 없었는데, 다른 오픈소스를 살펴보다 Maven이 필요해서 사용하다보니 Maven을 사용한 프로젝트가 오히려 더 편리하게 느껴져서 정리해 보고자 합니다. ■ Maven프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는것이 아니라 많은 라이브러리들을 활용해서 개발을 하게 됩니다. 이 때 사용되는 라이브러리들의 수가 수십개가 훌쩍 넘어버리는 일이 발생해 이 많은 라이브러리들을 관리하는 것이 힘들어지는 경우가 종종 발생하곤 합니다. Maven은 이러한 문제를 해결해 줄 수 있는 도구 입니다. Maven은 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작..
안녕하세요 박스여우입니다. 이번 포스팅은 간단하게 Java에서 XML을 JSON 처럼 사용하는 방법에 대해 알아보도록 하겠습니다. ■ Main12345678910111213141516171819import java.io.IOException;import java.util.Properties; public class XmlMain { public static void main(String args[]){ StringOutputStream out = new StringOutputStream(); Properties props = new Properties(); props.setProperty("email.support", "donot-spam-me@nospam.com"); try { props.storeTo..