티스토리 툴바


기타2010/03/03 15:28

평소에 웹페이지 작업을 하게 될때에는 기획 및 디자인을 유관부서에서 작업을 해서 넘겨주면 프로그램 작업을 하게 되는데
어떻게 일을 하다보니 관리 페이지 디자인은 별로도 요구하지 않고 직접 만지는 경우가 다수 생겨버렸습니다. ㅡㅡ;

그렇다고 투박한 테이블 덩어리만 있는 페이지로만 만들기는 무안해서 오픈소스 디자인 템플릿을 사용하곤 했습니다.
아는곳이 원래는 http://www.osdw.org 라는곳 하나만 알고 있었는데 그곳 사이트에서 템플릿을 하나 다운 받았더니
다른 오픈소스 디자인 템플릿 사이트를 쭉 소개를 해줘서 다 같이 공유 하고자 블로그에 글을 남깁니다. 

- http://www.minimalistic-design.net  [ Minimalistic Design ]
디자인 템플릿량은 아주 작습니다. 37개의 웹페이지 템플릿이 제공 되네요. 대신에 MyBB Templates, Wordpress Themes 등에 사용하는 스킨 및 디자인 템플릿 파일을 제공합니다. 근데 웹 페이지 템플릿을 제외한 나머지는 어디에 사용되는 디자인인지는 모르겠네요. ^-^;

- http://www.oswd.org [ Open Source Web Design ]
대부분에 분들이 알고 계실만한 오픈소스 웹 디자인 사이트 입니다. 글 작성일 기준으로 2080 개의 디자인 템플릿을 제공한다는 자랑스러운 카운팅 숫자가 메인 페이지에 노출 되어 있네요.

-
http://www.opendesigns.org [ Open Designs ]
개인적으론 디자인 템플릿을 깔금하게 나열해 놓아서 보기 좋다는 생각이 드는곳입니다. 한페이지 노출하는 갯수가 28개로 
한번에 많은 양의 디자인 템플릿을 확인 할수가 있네요. 전체 제공되는 양은 대략 1500 여개의 템플릿을 제공하고 있습니다.

http://www.openwebdesign.org  [ Open Web Design ]
가장 많은 3700 여개의 템플릿을 제공하는 곳입니다. W3C분류(html, xhtml), img 제공, css 제공 여부를 나타내어주고 최근 파일도 존재하는걸 봐선 활동도 활발히 이루어지는곳 같습니다.

위에 나열된 사이트에 제공되는 대부분의 템플릿은 웹표준을 지켜서 작업된 템플릿 입니다. 저 처럼 HTML 테이블 위주의
작업에 익숙한 사람들의 경우는 수정에 어려움이 많이 있을수도 있겠지만 언젠가는 넘어야 될 산이라고 생각하고 미리미리
익숙해져서 쾌적한 웹 환경을 만드는데 일조 하시기 바랍니다.

Posted by 햄톨
Java2009/10/28 18:46


아래와 같은 코드는 컴파일시 Warning 메세지를 뿜어냅니다.

import java.util.*;

public class ArrayListGeneric {
  public static void main(String[] args) {
    ArrayList data = new ArrayList();
    data.add("hello");
    data.add("world");


    Iterator<String> it = data.iterator();
    while (it.hasNext()) {
      String s = it.next();
      System.out.println(s);
    }
  }
}

Warning 이라는 경고를 제거하기 위해서는 두가지 방법이 있습니다.
Generic 을 이용하는 방법과 Annotation 을 이용하는 방법입니다.
먼저 Generic 을 이용한 코드는 아래와 같습니다.
아래 코드를 보면 Collection 계열 사용시에 담아올 형 타입을 미리 정의 해주므로서 컴파일시 나타나게 되는
경고가 제거 되는 형태입니다.
import java.util.*;

public class ArrayListGeneric {
  public static void main(String[] args) {
    ArrayList<String> data = new ArrayList<String>();
    data.add("hello");
    data.add("world");


    Iterator<String> it = data.iterator();
    while (it.hasNext()) {
      String s = it.next();
      System.out.println(s);
    }
  }
}

Annotation 을 이용한 방법은 코드는 아래와 같습니다.
원래 어노테이션의 목적이 컴파일러에게 알려주는 주석의 목적인데 아래 방법은 컴파일러에게
경고따위 무시해라 (ㅡㅡ;) 라는 내용입니다. 복잡한 세상 간단하게 사는 것도 좋은 방법이겠죠? ^^;
import java.util.*;

public class ArrayListGeneric {

  @SuppressWarnings("unchecked") 
  public static void main(String[] args) {
    ArrayList data = new ArrayList();
    data.add("hello");
    data.add("world");


    Iterator it = data.iterator();
    while (it.hasNext()) {
      String s = it.next();
      System.out.println(s);
    }
  }
}

경고를 제거하는 2가지 방법이 있지만 Annotation 을 이용하는 방법은 문제의 해결이라기 보다 회피하는 방법이니
Generic 을 이용해서 데이터형을 체크하는 코드를 추천합니다.

Posted by 햄톨
ASP.NET2009/07/08 18:50

asp.net 에서 oracle 에 연결하는 방법은 여러가지가 있는데 평소에 쓰던 방법에서 본의 아니게 Data Provider 를 변경해야
되는 상황이 되어 버렸습니다.

보통은 아래와 같은 방법으로 Oracle DB 연결에 대한 부분을 처리 하는데

Imports System.Data.OleDb

Dim DbCon As New OleDbConnection(Common.ConnectionString)
Dim cmd As OleDbCommand
Dim reader As OleDbDataReader

서버에 Oracle 10g client 를 설치하고 ODT with ODAC 11g 를 추가로 설치 했더니 DB 를 찾아가지를 못하더군요.
그래서 부랴부랴 DB 연결 부분을 MS 제공하는 공급자가 아닌 Oracle 에서 제공하는 공급자로 변경을 했는데 컬럼 타입이
long 타입 컬럼이 에러는 나지 않는데 데이터가 보이지가 않습니다.

구글신의 도움으로 해결은 했는데 해결방법이 의외로 간단합니다. ㅡ_ㅡ;

변경된 코드 입니다.
Imports Oracle.DataAccess.Client

Dim DbCon As New OracleConnection(Common.ConnectionString)
Dim cmd As OracleCommand
Dim reader As OracleDataReader
Dim sql As String

DbCon.Open()
sql = " SELECT longType컬럼 from 테이블 "
cmd = New OracleCommand(sql, DbCon)
cmd.InitialLONGFetchSize = 1000 '추가된 코드 
reader = cmd.ExecuteReader()

위처럼 한줄 추가해주니 정상적으로 데이터 출력을 해줍니다. ㅜ_ㅜ
참고로 위 코드에 DB 연결 문자열도 Data Provider 에 따라 내용이 달라 집니다. 모두 한줄로 적어 주면 됩니다.

MS for Oracle Provider
Provider=MSDAOra.Oracle;User Id=계정;Password=비밀번호;
Data Source=DB이름;OLEDB.NET=True;SPPrmsLOB=False;NDatatype=False;

Oracle Provider 10g
Provider=OraOLEDB.Oracle.1;Password=비밀번호;Persist Security Info=True;User ID=계정;Data Source=DB이름

Oracle Provider 11g (정확히는 ODT with ODAC 11g)
DATA SOURCE=DB이름;PERSIST SECURITY INFO=False;USER ID=계정;Password=비밀번호
Posted by 햄톨