파이어폭스에서 드래그앤드롭으로 파일업로드 구현하기

파이어폭스에서는 파일업로드를 드래그앤드롭으로 할 수 있습니다. 3.6 버전에서부터 지원했던 것 같습니다. 자바스크립트와 Spring 프레임워크를 사용해서 간단하게 파일 업로드 프로그램을 작성해 보았습니다. HTML + JavaScript 업로드 구현부분 UI <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>파일업로드</title> </head> <body> <form name="form0" action="file/upload" method="POST" enctype="multipart/form-data"> <ul> <li>파일 하나 업로드 : <input id="file1" type="file" name="file" /></li> <li>여러 파일 업로드 : <input id="file2" type="file" name="multifile" multiple /></li> <li>파일을 선택하고 '전송'을 눌러 업로드하시거나, 탐색기에서 파일을 드래그앤드롭하여 업로드할 수 있습니다.
Read full post gblog_arrow_right

Tomcat 고가용성 구성 테스트 노트

Tomcat 6.0을 가지고 고가용성, 즉 클러스터링을 따라해 보았습니다. 시나리오. tomcat 인스턴스는 weblogic, oc4j와 비슷하게 제품 바이너리와 인스턴스를 분리해 본다. cluster 구성으로 생성한다. 애플리케이션 배포 시나리오를 생각해 본다. 테스트 애플리케이션 준비 Apache mod_proxy_jk 세팅 Tomcat 바이너리와 인스턴스 분리 톰캣 바이너리는 app/apache/apache-tomcat-6.0.32 경로에 있습니다. 인스턴스 경로는 아래와 같은 구성을 시도해봅니다. app/apache/user_projects - 톰캣 인스턴스묶음용? 경로 app/apache/user_projects/cluster_domain - 톰캣이 만들어질 도메인? app/apache/user_projects/cluster_domain/bin - 도메인용 스크립트 디렉토리 ( startup.sh, shutdown.sh 존재 ) app/apache/user_projects/cluster_domain/servers - 톰캣 인스턴스용 디렉토리 app/apache/user_projects/cluster_domain/servers/tomcat1 - 'tomcat1'이란 이름의 톰캣 인스턴스 app/apache/user_projects/cluster_domain/servers/tomcat1/bin,conf,logs,temp,webapps,work - 'tomcat1'인스턴스 구성요소 app/apache/user_projects/cluster_domain/servers/tomcat2 - 'tomcat2'이란 이름의 톰캣 인스턴스 app/apache/user_projects/cluster_domain/servers/tomcat2/bin,conf,logs,temp,webapps,work - 'tomcat2'인스턴스 구성요소 app/apache/user_projects/cluster_domain/webapps - 이 도메인에서 사용할 애플리케이션 준비 디렉토리 인스턴스 구성.
Read full post gblog_arrow_right

weblogic session persistence 설정하기

웹로직에서 웹애플리케이션을 개발하고 배포를 하는 과정에서 재배포 혹은 서버 점검에 따라 인스턴스를 재기동할 경우 사용자 세션이 끊기는 현상이 발생합니다. 이에 대하여 웹로직 배치 기술자 조정을 통해 세션을 유지하는 방법을 찾아보고 글 남깁니다. 보통 세션 퍼시스턴스의 설정은 클러스터 환경에서 서로 다른 서버간 세션 공유에 활용되는 것이 많으리라 생각됩니다. 아래 설정은 단일 서버에서 파일에 세션 상태를 기록하여 세션을 유지하는 예제입니다. <?xml version='1.0' encoding='UTF-8'?> <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <session-descriptor> <persistent-store-type>file</persistent-store-type> </session-descriptor> </weblogic-web-app> 세션에 사용자 정의 클래스를 넣을 경우, 해당 클래스를 serializable을 구현하도록 해야 합니다.
Read full post gblog_arrow_right

netsh를 통한 ip주소 세팅 스크립트

리눅스에서는 이미 네트워크 설정에 프로필(?) 기능이 있어서, 노트북과 같이 이동하는 장비에서 IP설정(IPv6에서는 달라지겠지만)을 기록해 두는 기능이 있습니다. 저와 같이 여러 사이트를 방문하는 엔지니어에게는 IP주소 세팅이 업무의 시작이라 할 수 있습니다. 보통은 ipchanger같은 툴을 통해서 프로필 기능과 비슷하게 활용하고 계실 것입니다. ( 저는 ip를 메모해두고 윈도우 자체네트워크 설정으로 일일이 입력합니다만.. ) netsh 명령을 통해서 프로필 기능과 비슷한 시도를 해보았습니다. 아래 명령을 쉘스크립트로 작성하여 사용하는 방법입니다. @echo off set INTERFACE="eth0" set IPADDRESS=192.168.20.10 set NETMASK=255.
Read full post gblog_arrow_right

웹로직의 보편적인 웹개발상의 디버그

웹로직을 사용하면서, 에러의 원인을 쉽게 찾을 수 없을 때, 원인을 추적하는 방법을 나열해 봅니다. dispatcher forward 사용시 해당 리소스가 없을 경우 추적하기.( 알 수 없는 404 에러 ) 웹개발 프레임워크를 사용할 때 주로 개발하는 형태가, controller를 작성하여 비즈니스 로직을 수행한 후, 사용자에게 보여질 페이지(JSP)로 RequestDispatcher.forward 하는 형태이리라 생각됩니다. ( 물론 다른 형태도 많겠지만, RequestDispatcher.forward 하는 형태를 가정한 상황으로 글을 씁니다. ) 아래는 그렇게 사용한 java servlet 예제입니다. RequestDispatcher rd = null; rd = request.
Read full post gblog_arrow_right

JDeveloper + WebLogic 환경에서 Remote Debugging 사용하기.

JDeveloper와 WebLogic을 사용하는 개발환경에서 Integrated Server를 쓰지 않고, 테스트 혹은 운용서버에 배포후 Remote Debugging을 하는 방법을 간략히 소개합니다. 1. 대상 서버의 Remote Debugging JVM 옵션 세팅. 먼저 JVM에서 Remote Debugging을 받아들이기 위한 설정을 추가합니다. 아래 세팅을 서버의 구동 스크립트에 포함되도록 합니다. ( 저는 편의상 개발서버의 .profile을 사용하고 있습니다. nodemanager 등을 사용중인 경우에는 콘솔에서 세팅 가능하겠습니다. ) # JDK 1.4 이하 기본 형태 # -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=[port] # JDK 1.5 이상 기본 형태 # -agentlib:jdwp=transport=dt_socket,server=y,address=[port] JAVA_OPTIONS=$JAVA_OPTIONS\ "-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n" 2.
Read full post gblog_arrow_right

PKCS12 인증서를 Java keystore에 넣기.

PKCS12 인증서를 Java keystore에 넣기. JDK1.5까지는 제공되지 않았던 기능으로 보이는데, JDK1.6에서는 keytool 명령으로 pkcs12인증서(*.p12)를 java keystore에 넣는 것이 가능하도록 바뀌었습니다. keytool \ -importkeystore \ -srckeystore cert.p12 \ -destkeystore keystore.jks \ -srcstoretype pkcs12 \ -deststoretype jks \ -srcalias mycert \ -destalias mycert

브라우저에서 제공하는 기능(javascript)으로 전자서명하기.

브라우저에서 제공하는 기능(javascript)으로 전자서명하기. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ko-KR"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>전자서명 테스트</title> <script language="javascript" type="text/javascript" src="js/sign.js"></script> </head> <body> <h2>전자서명 테스트</h2> <form name="form0" action="#"> 서명을 위한 원문<br /> <textarea id="plain" type="text" name="plain"></textarea><br /> <input type="button" onclick="document.getElementById('signed_msg').value = signDigest(document.getElementById('plain').value);" value="전자서명" /><br /> <hr /> 전자서명문<br /> <textarea id="signed_msg"></textarea> </form> </body> </html> 위에 포함된. sign.js 파일 function signDigest(text) { if ( window.
Read full post gblog_arrow_right