본문 바로가기

프로그래밍/JAVA

AES 128비트 암호화 알고리즘을 통한 Base64 인코딩/디코딩 처리 이번 포스팅에서는 AES 알고리즘을 통해 문자열을 Base64 인코딩/디코딩 하는 방법에 대해 포스팅 하겠습니다. Java에서는 JCE (Java Cryptography Extension) 를 통해 암호화에 필요한 클래스를 제공하고 있습니다. AES 알고리즘은 128, 192, 256bit 를 지원하지만, 기본으로 설치되는 JDK 를 통해 AES 알고리즘을 사용하는 경우 정책상 128bit 밖에 사용 할 수 없습니다. (기본 제공하는 각 암호화 알고리즘의 Limit 키사이즈는 아래 링크 참고) 128bit 를 사용하지 않는경우 아래와 같은 Exception 이 발생합니다. java.security.InvalidKeyException: Illegal key size or default parameters .. 더보기
WAS JMX 에러해결 방법 리눅스, 유닉스 환경에서 WAS 아규먼트로 JMX Remote 콘픽을 사용하여 구동시키는 경우 발생하는 아래 에러에 대한 해결 방법 입니다. (Tomcat, WebLogic 포함) 1. jmxremote.password 를 찾을수 없는 경우 - jre/lib/management 폴더내 jmxremote.password.template 파일을 jmxremote.password 로 변 경 2. jmxremote.password 권한 에러 - 권한 변경 chmod 600 jmxremote.password 더보기
String 클래스 깊숙히 이해하기 이번 강좌에서는 String 클래스를 좀더 깊숙히 알아보는 시간을 갖고자 합니다. 우선 String = "12"; 즉, 스트링 객체에 12 라는 문자열이 들어 있습니다. 위 String 객체에 담긴 12 라는 문자열은 내부적으로 어떻게 처리되어 저장될까요? 일단 좀더 깊숙히 들어가 봅시다. 첫번째, String 객체의 내부 비밀 String 객체는 final 한 클래스로서 상속(확장) 이 불가능 합니다. 또한, String 객체는 내부적으로 char 배열에 데이터를 저장하여 보관하고 있습니다. String 클래스 String 생성자 실제 String str = new String("ABC") 한개의 String 객체를 생성할때 생성자 내부적으로 String 객체를 char 배열로 변환해서 저장합니다. (.. 더보기
자바 IO&NIO 파일복사 (FileCopy) 방법 우선 자바IO는 NIO에 비해 상당히 느립니다. 자바IO 는 네이티브 언어 (C, C++) 처럼 시스템콜을 직접적으로 사용할수가 없습니다. 대표적으로 두가지 문제점이 있습니다. IO 흐름 첫째. 자바IO는 커널 영역의 버퍼를 직접 건들지를 못합니다. 두번째. 스트림 데이터가 처리되기 전까지 스트림을 사용하는 자바 스레드는 Blocking 됩니다. 예를들어, 파일읽기 작업시 커널에 명령을 전달하고, 커널은 시스템콜 (System Call) 을 사용해서 디스크 컨트롤러가 물리적 디스크로 부터 읽어온 파일 데이터를 커널 영역안의 버퍼로 저장합니다. 커널안의 버퍼로 데이터가 저장되면 JVM(프로세스)안의 버퍼로 복사를 시작하게 됩니다. 이때 만약 프로세스로 버퍼를 복사하지 않고 직접적으로 커널영역의 버퍼를 사용.. 더보기
JOptionPane 클래스 JOptionPane 클래스란? - 메세지 혹은 알람창 이라고 할수 있습니다. JOptionPane 클래스를 이용한 메세지창 우선, JOptionPane 클래스에서 사용되어지는 얼럿창을 띄어주는 메서드들은, 기본적으로 클래스메소드 (static 메소드) 로 구성되어 있습니다. 따라서, 인스턴스 객체를 생성할 필요가 없습니다. 아래 예제는 간단히 대화명을 입력하라는 메세지창을 띄어주는 예제 입니다. import javax.swing.JOptionPane; public class Index { public static void main(String[] args) { String result = JOptionPane.showInputDialog("대화명 입력하세요"); System.out.println(res.. 더보기
JFileChooser 클래스 JFileChooser Class 란? - JFileChooser 클래스를 사용하는경우, 윈도우의 파일열기, 저장등 과같은 형태의 Dialog 를 사용할수 있습니다. (아래그림 참조) 파일저장 Dialog 이번 강좌에서는 스윙에서 JFileChooser 클래스를 이용하여 파일창을 띄어보도록 하겠습니다. import java.io.File; import javax.swing.JFileChooser; import javax.swing.JFrame; public class Index { public static void main(String[] args) { JFrame window = new JFrame(); //window.setVisible(true); JFileChooser fileChooser = n.. 더보기
Swing LookAndFeel Swing 에서, 윈도우에 따라 컴포넌트들이 각 고유의 모습으로 보이게 할수있는 방법이 없을까 해서, 찾아봤습니다. - 테스트 환경 : Window 8 자바의 Swing 은 어떤 운영체제이든지, AWT 를 사용하지 않는 이상 모든 컴포넌트들의 UI형태와 모양은 위와 같습니다. 이제 Swing 을 사용해도 해당 운영체제 고유의 컴포넌트의 모습으로? 변형 시키기 위해선 LookAndFeel 을 사용해야 합니다. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 위 코드를 JFrame 이 초기화 되기 이전 (Static 구문이나, Main 메소드 최상단, 생성자 최상단 부분) 등에 삽입해주세요. (반드시 예외처리 해주어야 합니다) 결과는.. 더보기
JAVA SQLLite3 사용하기 (3) ※ 앞서 미리 프로젝트에서 라이브러리가 추가되었고, DBMS 을 통해 데이터베이스가 생성되었다 가정하에 진행합니다. ※ 이미 MySQL, 오라클 같은 JDBC 프로그래밍이나, Arraylist, 제네릭 프로그래밍을 알고있다는 가정하에 진행하겠습니다. (모두 세세히 풀어쓰기엔 좀 무리가 있습니다.) 1. 우선, SQL 매니져로 생성했던, 데이터베이스를 프로젝트내 폴더를 하나 생성해서 복사합니다. (위 프로젝트에서는 resource 라는 폴더명으로 생성후 넣었습니다.) 이제 모든 준비는 끝났습니다. 이제 실제적으로 코드레벨에서 해당 데이터베이스에 접근해보도록 하겠습니다. 먼저, 저는 두개의 패키지를 나누어 관리하겠습니다. com.db 패키지 - Datainfo 라는 클래스는, 데이터베이스에 존재하는 필드인 .. 더보기
JAVA SQLLite3 사용하기 (2) 우선, 첫번째 강좌에서 자바 프로젝트에서 외부라이브러리 호출방법에 대해 익혀보았습니다. 이제, SQLite Manager 을 설치하여 데이터베이스 생성 에 대해 배워보겠습니다. 파이어폭스를 설치후, 부가앱(무료) 에서 SQLite Manager 를 설치하도록 합니다. 설치가 정상적으로 수행되었다면, 도구에 설치된것을 볼수 있습니다. 실행하도록 합니다. 위와 같은 화면의 어플리케이션이 실행됨을 볼수 있습니다. 딱히 어려운 부분은 없으나, 다른 부가적인것은 배재하고 필요한것만 설명하도록 하겠습니다. 이제 데이터베이스를 생성하도록 하겠습니다. 1. 먼저 Database 첫번째 메뉴에서 New Database 를 클릭하도록 하겠습니다. 2. 위와 같은 화면이 뜨게 되는데, 이 화면은 데이터베이스의 이름을 설정하.. 더보기
JAVA SQLLite3 사용하기 (1) SQLLite3 란? - MySQL, MSSQL 등 과같이 데이터베이스 입니다. 단, MySQL 이나 MSSQL 은 서버와 사용자에 대한 권한이 필요한 반면, SQLLite3 는 서버가 불피요하고, 사용자 권한도 필요하지 않는 데이터베이스 입니다. 주로, IOS 혹은 안드로이드 같은 모바일 환경에서 채택하고 쓰고 있습니다. (더 자세한 사항은 인터넷 검색 참고) ------------------------------------------------------------------------------------------------------------ 준비물 : SQLLite3 라이브러리, 파이어폭스 SQLLite3 Manager (부가앱) 이번에는, JAVA 에서 SQLLite3 를 사용하는 방법에 .. 더보기