2008년 5월 14일 수요일

Alice 웹 데이터 모듈...


웹 에디터로 fckeditor 를 쓰던중 구리구리한(?) 인터페이스로 좀 불만이 있었는데

jakartaproject.com 에 unicon 보드를 만드신 Goobug 님께서,

Alice 라는 웹에디터 모듈을 오픈 하셨습니다.


깔끔한 인터페이스가 fckeditor 보다 훨씬 보기 좋네요.


다만 jsp에서만 동작한다는점? 오픈소스인 만큼.. 다른 버젼도 기대해 봅니다. :D



설치 중 팁으로.. 오류날 사항이 아닌데 계속 'Web이 정의되지 않았습니다.' 라는 스크립트 오류 발생..

알고 보니 편집하는 단계에서 js 파일의 인코딩을 MyEclipse가 바꿔 버려서 생긴 문제!

js 수정시 주의 하세요. :)



Alice 설치 매뉴얼

http://www.jakartaproject.com/article/alicefaq/120461601625451


Alice 사용 매뉴얼

http://www.jakartaproject.com/article/alicefaq/120461696599608


Alice 다운로드

http://www.jakartaproject.com/article/alicefaq/120462028178155

2008년 4월 24일 목요일

Window Server 2008 설치 소감.. 및 팁

Window Server 2003 를 얼마전에 깔아서 쓰고 있었는데..

torrent 에서 파일을 받았는데 여기서 악성코드가 하나 깔렸는데

이게 지워지질 않아서 열라 고생하다가 포멧 결정.


뒤져보니 Window Server 2008 이 출시..

정보에 대해 검색.. 다운로드 설치..

Vista SP1 플랫폼이라.. 반신반의 하면서 설치 했는데 의외로 XP보다 빠른 느낌이네요.

Server 버젼이라서 그런가..

Aero를 키고 해도 XP보다 전혀 느리지가 않네요.

그리고 제가 쓰는 프로그램들.. 전부 문제 없이 돌아가고

다만 아직까지 제대로 된 인증 절차가 없다는거?

현재로선 http://www.thehotfix.net/forums/index.php?showtopic=19435 를 참고하여

편법으로 A. I 인증 절차 밖에 없다는거..

제대로 돌아가긴 하지만.. 재부팅시에 몬가 오류가 쫘르륵.. 그러나 인증에는 이상 없지만.. 몬가 불안한.. ㅡ.ㅡ;

제대로 된 인증이 나오면 재 설치 해야겠군요..


Vista는 꺼림직하지만 써보고 싶은데, 좀 쾌적했으면 좋겠고..

그런분들 쓰시면 괜찮을꺼 같네요. 갠적으로 추천입니다.

아래는 Window Server 2008 을 일반 유저에 맞게 끔 트윅하는 팁입니다.






Window Server 2008 설정 보기

2008년 3월 6일 목요일

듀얼 모니터 사용자를 위한.. Ultramon


듀얼 모니터 사용자를 위한 UltraMon 입니다.

듀얼 모니터를 쓰시는분들은 상당히 유용합니다.

창을 왼쪽으로 이동시켜서 확대 시키는 기능, 각 창에 대한 작업표시줄이 주요 기능이라고

볼수 있겠네요.

듀얼 모니터 쓰시는분들은 한번 사용해보시길 추천합니다. ㅎㅎ

첨부파일에는 2.7.1버젼과 한국어 패치 과자가 동봉되있습니다.

그럼..




Editplus 3.0 릴리즈..

자주 애용하는 Editplus 가 3.0으로 버젼업 되었다.

이름도 Editplus 3 로 바뀌었고,

여러가지 기능들이 업데이트 되었다.

필자는 주로 JSP, java는 Eclipse를 쓰고 그 외에는 Editplus 를 쓰고 있다.

UltraEdit 를 쓰는 분도 많지만.. 나는 무겁고, 뭔가 내게 필요없는 기능이 많아서 배제 하고있다.

써보려고 노력했지만.. Editplus가 손에 더 익어서 쉽사리 옮길수가 없다..

다만.. Editplus의 정규식이 Ultraedit 와 틀려서..

그것만 좀 비슷해 지면.. Ultraedit 쓸일이 없을터인데..

그것좀 안되겠니?



다운로드 홈페이지 : http://www.editplus.com/kr/




새로운 기능...

2008년 2월 18일 월요일

MS-SQL 에 Oralce의 ROWNUM 처럼 구현하기..


Oracle 에서는 rownum >= 10 이런식으로 10개씩 추출할수 있다.

이걸 이용해서 게시판 글수를 추출하기가 편한데, MS-SQL은 그게 없다.

그래서 TOP과 NOT IN을 이용하여 아래와 같은 방법으로 하면 가능하다.


SELECT * FROM (
 SELECT TOP 10 * FROM (
  SELECT * FROM T_BOARD
 ) b
 WHERE SEQ NOT IN (
  SELECT TOP 10 SEQ FROM T_BOARD ORDER BY SEQ DESC
 )
 ORDER BY SEQ DESC
) a


몇개 단위로 보여줄껀지, 빨간 파란색 숫자를 이용하면 가능할 것이다.

Flash 보안 설정...



Flash Player는 로컬과 네트워크간의 통신을 기본적으로 차단합니다.
또한 윈도우 XP SP2 역시 로컬과 네트워크간의 통신을 차단합니다.
그로 인해 생길수 있는 문제.

로컬상에서 테스트할 시 플래시내부에서 자바스크립트 호출 및 http로 나가는 부분 작동하지 않음

해결방법
1번과 2번은 같은 이슈를 해결하기 위한 방법이므로 둘 중 하나만 써도 무관합니다.

1. 플래시 플레이어 전역보안설정

http://www.macromedia.com/support/documentation/kr/flashplayer/help/settings_manager04.html

위 사이트에서 플래시 플레이어 전역보안설정을 해주세요.
신뢰할 수 있는 파일 및 폴더를 지정해줍니다.

2. trust파일 설치

메모장에 신뢰할수 있는 위치 경로를 지정하여 flashTrust.cfg파일을 작성합니다.
로컬상의 모든 위치를 신뢰한다면

C:\
D:\
E:\
.
(중간생략)
.
Z:\

드라이브를 작성하고 flashTrust.cfg 로 저장합니다.(이름은 상관엄꾸요)
위 파일을 아래 경로에 위치시킵니다.

* Windows 모든 사용자:
 <system>\Macromed\Flash\FlashPlayerTrust
 EX) c:\Windows\system32\Macromed\Flash\FlashPlayerTrust\

* Windows 단일 사용자:
 <app data>\Macromed\Flash Player\#Security\FlashPlayerTrust
 EX) c:\Documents and Settings\<사용자이름>\Application Data\Macromedia\Flash Player\Security\FlashPlayerTrust

* Mac OS 모든 사용자:
 <app support>/Macromedia/FlashPlayerTrust
 EX) /Library/Application Support/Macromedia/FlashPlayerTrust

* Mac OS 단일 사용자:
 <app data>/Macromedia/Flash Player/#Security/FlashPlayerTrust
 EX) /User/<UserName>/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust

CD타이틀을 배포하기 위한 방침으로 인스톨러를 이용해 위 flashTrust.cfg파일을 사용자의 시스템에 인스톨시켜주는 방법을 생각할 수 있습니다.

3. Windows XP SP2에서 생기는 일
Windows XP SP2에서는 로컬에서 파일을 액세스할 때 Active X 및 javascript 가 포함된 html이 차단됩니다.
이를 해결하기 위해서 html페이지에 Mark of the web 이라는 코드를 삽입해 줍니다.

<!-- saved from url=(0013)about:internet -->

자세한 내용은 아래 사이트를 참고하세요.
http://www.adobe.com/kr/support/flash/ts/documents/xpsp2.htm

또 있을법도 하겠지만...
이정도 설정만 해두면 로컬이든 웹이든 정상적으로 작동을 합니다.




추가로.. 플래시를 로컬로 배포 할때 2번 방법으로 사용하여 자동배포 EXE를 설치하게 만들어주고,
플래시를 띄우도록 하면 간단하게 배포 할수도 있겠습니다.

2008년 2월 4일 월요일

Tomcat & Oracle DBCP 설정


 

pool.jocl

<object class="org.apache.commons.dbcp.PoolableConnectionFactory"
    xmlns="http://apache.org/xml/xmlns/jakarta/commons/jocl">

   <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
      <string value="jdbc:oracle:thin:@taesuz.net:1521:taesuzdb" />
      <string value="taesuz" />
      <string value="1111" />
   </object>
 
   <object class="org.apache.commons.pool.impl.GenericObjectPool">
      <object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />
      <int value="10" />
      <byte value="1" />
      <long value="10000" />
      <int value="10" />
      <int value="3" />
      <boolean value="true" />
      <boolean value="true" />
      <long value="600000" />
      <int value="5" />
      <long value="3600000" />
      <boolean value="true" />
   </object>
 
   <object class="org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory" null="true" />


   <string null="true" />
 
   <boolean value="false" />
 
   <boolean value="true" />
</object>



 

DBCPInit.java

package taesuz.dbpool;

import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import java.util.StringTokenizer;

public class DBCPInit extends HttpServlet {

    public void init(ServletConfig config) throws ServletException {
        try {
            String drivers = config.getInitParameter("pool");
            StringTokenizer st = new StringTokenizer(drivers, ",");
            while (st.hasMoreTokens()) {
                String DB = st.nextToken();
                Class.forName(DB);
            }
           
            Class.forName("org.apache.commons.dbcp.PoolingDriver");
           
        } catch(Exception ex) {
            throw new ServletException(ex);
        }
    }
}


 

web.xml

<web-app>
 <servlet>
  <servlet-name>DBCPInit</servlet-name>
  <servlet-class>taesuz.dbpool.DBCPInit</servlet-class>
  <init-param>
   <param-name>pool</param-name>
   <param-value>oracle.jdbc.driver.OracleDriver</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
</web-app>






설정 끝~~~~



테스트를 위한 JSP와 커넥션을 가져오는 클래스

DBConnect.java

package taesuz.dbpool;

import java.sql.*;

public class DBConnect {
 /**
  * APP/Web 환경에서 쓰이도록 지정 DBCP를 사용한다.
  * default poolName : pool
  * @return Connection
  * @throws SQLException
  */

 public static Connection getConnection() throws SQLException {
  return DriverManager.getConnection("jdbc:apache:commons:dbcp:/pool");
 }

 /**
  * APP/Web 환경에서 쓰이도록 지정 DBCP를 사용한다.
  * @param poolName
  * @return Connection
  * @throws SQLException
  */

 public static Connection getConnection(String poolName) throws SQLException {
  return DriverManager.getConnection("jdbc:apache:commons:dbcp:/"
    + poolName);
 }

}



test.jsp

<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*" %>
<%@ page import="taesuz.dbpool.DBConnect" %>

<%
try{
 Connection conn = null;
 Statement stmt = null;
 ResultSet rs = null;

 conn = DBConnect.getConnection();
 String query = "select * from DUAL";
 stmt = conn.createStatement();
 rs = stmt.executeQuery(query);
 
 if(rs.next())
  out.print(rs.getString(1));


} catch(Exception e) {
 System.out.println(e);
} finally {
     if (rs != null) try { rs.close(); } catch (Exception e) {}
     if (stmt != null) try { stmt.close(); } catch (Exception e) {}
     if (conn != null) try { conn.close(); } catch (Exception e) {}
 }

%>



다른 관련 설정 트랙백 참조.