소프트웨어 개발/Java - Basic 41

자바 주요 패키지 한글 설명 - 1.6 기준

java.applet 애플릿의 작성, 및 애플릿과 애플릿 문맥과의 통신에 사용하는 클래스의 작성에 필요한 클래스를 제공합니다. java.awt 사용자 인터페이스의 작성 및 그래픽스와 이미지의 페인트용의 모든 클래스를 포함합니다. java.awt.color 칼라 스페이스의 클래스를 제공합니다. java.awt.datatransfer 어플리케이션간 또는 어플리케이션내의 데이터 전송을 위한 인터페이스와 클래스를 제공합니다. java.awt.dnd 드래그&드롭 조작은, 많은 그래피컬 사용자 인터페이스 시스템으로 볼 수 있는 직접적인 조작 제스처(gesture)로, GUI 의 표현 요소에 논리적으로 관련한 2 개의 엔티티간에 정보를 변환하는 기구를 제공합니다. java.awt.event AWT 컴퍼넌트에 의해 트..

ExecutorService 를 이용한 병렬처리 프로그램

깔깔깔 내일은 직장에서 즐겁게 지내겠다는 마음가짐으로 병렬처리를 해본다. 아무리 어두워도 웃고다니면 절로 기분이 좋아지는법~ 깔깔깔깔깔 일단 참고는 아래의 세 사이트에서 참고했다. http://samse.tistory.com/386 http://suein1209.tistory.com/333 http://javacan.tistory.com/124 별볼일 없으니 보지말고. 모든 놈 위에는 Executor가 있다. 엄밀히 말하면 화살표는 삼각형으로 그려야 하는데 그냥 귀찮다. Executor 를 끌러보면 단 하나밖에 없다. void execute(Runnable command); 그렇지만, 이를 상속받고 있는 놈인 ExecutorService는 꽤나 많은 거시기들을 가지고 있다. 이는 Executor의 라이프..

Annotation 을 이용한 메서드 골라내기

Annotation은 일반 개발을 하게되면 그다지 신경쓰지 않는 부분일수도 있지만, 어노테이션을 이용해 특정 메서드의 실행을 막는다든지 골라낸다든지 할수있기 때문에 유용하게 쓰일 수 있다. 이를 메타 프로그래밍(Meta) 라고 하는데, 스프링과같은 프레임워크는 이 어노테이션을 통해 구성되어있다. new file -> enum 일단 어노테이션에서 사용할 ENUM을 하나 만든다.public enum LangType { KOREAN, ENGLISH, SPANISH } new file -> annotation 그리고 어노테이션도 하나 만든다.@Retention(RetentionPolicy.RUNTIME) public @interface Language { LangType type(); } 이제 모든 준비는 끝났..

COM 객체 JAVA에서 이용하기

COM 객체를 자바에서 굳이 이용할 이유는 거의 없다. 자바보다 더 진보한 C#이나 속도면에서 앞서는 C, C++, 난이도면과 UI에서 앞서는 비주얼베이직이 존재하기 때문이다. 또한 윈도우 프로그램을 이용하는데 불필요한 자바 가상머신을 까는것도 어마어마하게 귀찮을 것이다. COM 객체를 이용해야하는 자동매매프로그램을 그럼에도 불구하고 COM을 자바에 이용하고 싶다. 솔직히 말하면 자바가 아닌 스칼라에서 써먹고 싶기 때문이다. 자바 가상머신을 이용한다면 스칼라에서도 이용 가능하다. 사실 이러한 이유가 있음에도 불구하고 파이썬 + 장고 조합이 훨씬 나아보이는건 사실이다. 하지만, 스칼라가 더 코딩하는 재미를 주기때문에 나로써는 어쩔수 없다. 끌리는것을 하는대로 하다가 갑자기 이건 좀 나중에 해도 될것같은 느..

JSP 커스텀 태그 만들기

JSP에 커스텀태그는 JSTL등을 이용할때 많이 볼수 있다. 와 같은 함수들은 상당히 유용하게 JSP 태그를 써서 루프문을 돌리는 데에 있어 상당한 편의성을 제공한다고 할수 있다. 대체 이게 어떻게 작동하는가? 사실 아무 질문없이 '어 편하네?'라고 쓸수 있지만, 호기심많은 개발자라면 도대체 어떻게 커스텀 태그를 구현하는지 조금 더 파보고 싶기 마련이다. 이번 포스팅에서는 최소한의 설명과 효율성으로 자동으로 영어를 한국어로 번역해주는 커스텀 태그를 만들어보기로 한다. 일단 커스텀 태그는 생각해보면 굉장히 복잡한데, 필요한것은 단 세가지이다. 1) BodyTagSupport를 상속받은 클래스 (doAfterBody()와 같은 함수를 오버라이드하기 위해서이다.)2) taglib을 정의해놓은 *.tld 파일3..