10g 의 테이블 Drop

10g에서 테이블을 drop하게 되면 복원할 수 있게 윈도우의 휴지통과 같은 개념으로 보관하게 된다.

이 경우 윈도우의 Shift + Delete와 같이 남기지 않고 삭제 할때는


Drop table [ tname ] purge;


라고 끝에 purge를 추가해준다.

그리고 삭제되어 복원키 위해 휴지통에 있는 테이블은


purge table [ tname ];


으로 개별적으로 삭제 또는


purge table recyclebin;


으로 한번에 삭제 가능하다.

by 낭길리마 | 2007/11/23 09:38 | Oracle | 트랙백 | 덧글(0)

User생성과 TableSpace

회사 내부 가족커뮤니티를 위한 DB생성 준비

1. SID는 그대로 IDB영역을 사용하고 유저와 TABLESPACE만 추가한다.

2. 유저생성 쿼리문
CREATE USER 유저명
IDENTIFIED BY 패스워드;

3. Table Space 생성
CREATE TABLESPACE 테이블스페이스명
DATAFILE '데이터 파일이 생성될 경로명' SIZE 100M
DEFAULT STORAGE 
             (INITIAL    65536
              MINEXTENTS 1
              MAXEXTENTS 2147483648 )


4. User에 기본 테이블 스페이스 지정
ALTER USER 유저명
IDENTIFIED BY 패스워드
DEFAULT TABLESPACE 테이블 스페이스 명

by 낭길리마 | 2007/11/07 13:46 | Oracle | 트랙백 | 덧글(0)

assertion

Assertion은 JDK 1.4부터 추가된 기능으로써, 코드가 정상적으로 작동하는지 확인하기 위한 디버깅용 코드이다.
실제 업무에서 사용해본 적이 없기 때문에 간략히 정리한다.

사용방법
  • assert 표현식1;
  • assert 표현식1 : 표현식2;

첫번째 방식은 표현식1이 거짓일 경우 Exception을 발생시킨다. 예를들어


public class Test {
 public static void main( String[] args ) {
  int a = 3;
  assert a != 3;
 }
}


와 같이 사용할 경우 a != 3 이 거짓 이기 때문에



△ 첫번쨰 용법으로 사용한 assert는 표현식이 거짓일 경우 AssertionError를 발생시킨다.



두번째 방식은 표현식1이 거짓일 경우 표현식2에 전달하고자 하는 메시지나 반환값이 있는 메소드가 선언될 수 있다. 예를들어

public class Test {
 public static void main( String[] args ) {
  int a = 3;
  assert a != 3 : "a == 3" ;
 }
}


처럼 사용하게 되면 에러메시지로 "a==3"을 가진다.


△ 두번째 용법으로의 사용 에러메세지를 가진다.



Assertion 기능은 1.4부터 추가된 기능이기 때문에 컴파일시에
C:\>javac -source 1.4 Test.java 와 같은식으로 -source옵션을 통해 ( provide source compatibility with specified release 지정된 릴리스 버전으로 컴파일 하는 옵션 ) 1.4 버전으로 컴파일을 지정해줘야되지만 어짜피 1.4보다 아래버전에서만 Assertion을 사용하지 않으면 지정하지 않아도 무난한 듯 하다.

그리고 Assertion기능은 실행시에 옵션을 통해 키거나 끌 수 있다. Assetion 기능은 따로 출력을 위한 구문을 적지 않고 Exception을 발생하기 때문에 기능을 끌 경웨 주석처럼 인터프리터에 의해 무시된다.
  • -ea, -enableassertions : 인자가 없을경우 시스템 클래스를 제외한 모든 클래스를 활성화 한다. 인자로 패키지명을 줄경우 지정된 패키지와 하위 패키지를 활성화 한다 인자로 ... 를 할 경우 현재 작업 디렉토리의 패키지에 속하지 않은 클래스를 활성화한다.
  • -da, -disableassertions : 인자에 따른 내용은 위와 동일 다만 검증기능을 비활성화한다.
  • -esa, -enablesystemassertions : 시스템 클래스를 활성화한다.
  • -dsa, -disablesystemassertions : 시스템 클래스를 비활성화한다.

옵션중 시스템 클래스 활성/비활성화 부분은 이해가 불가하다.

by 낭길리마 | 2007/11/06 09:44 | Java | 트랙백 | 덧글(0)

SCJP 기본사항

△ SCJP 일반사항과 시험과목 및 출제경향 http://www.suntraining.co.kr/ 에서 갭쳐한 사진입니다.

by 낭길리마 | 2007/11/05 14:46 | Java | 트랙백 | 덧글(0)

SCJP 관련 기타사항

동서대학교 시험장 051)320-2085
              
                http://www.java.or.kr/

응시원서 sylvan-Exam97.hwp

by 낭길리마 | 2007/11/05 14:06 | Java | 트랙백 | 덧글(0)

[ JSTL ] 반복과 관련된 태그 (forEach, forToken )

forEach는 다음과 같은 속성을 가진다.

  • items : forEach가 순회할 Collection 개체를 지정한다.
  • begin : 반복문의 시작값을 설정한다.
  • end : 반복문의 종료값을 설정한다.
  • step : 반복문의 증가값을 설정한다.
  • var : 반복문의 순회시 해당하는 값을 담을 변수를 설정한다.
  • varStatus : 변수의 상태를 담을 변수를 설정한다.

기본적으로 forEach는 begin 과 end 속성만 설정해주면 동작하며 그 외 속성은 추가적인 옵션이다. 물론 이 두 부분만 설정됬을때는 세부적인 제어가 불가능 하고 step은 기본값으로 1이 작용한다.

 <c:forEach begin="1" end="9">
  <c:out value="foreach" /><br>
 </c:forEach>


다음과 같이 기본적인 소스 코드 실행시 결과는 아래와 같다.


△ 기본적인 begin과 end에 의해 몸체의 foreach만 9회 반복된 결과


begin 속성과 end 속성을 통해 시작값과 종료값을 지정하면 자바의 for문과 마찬가지로 증가값을 지정해 줄 수 있다.

 <c:forEach begin="1" end="9" step="2">
  <c:out value="foreach" /><br>
 </c:forEach>


소스코드에 위와 같이 step을 증가해준다.


△ step값을 지정하여 반복문의 몸체가 5회만 출력된 모습


위와 같이 step속성을 지정해주면 증가값을 설정할 수 있기 때문에 반복횟수는 5회로 나타난다. 그리고 step 속성은 0보다 작을 수
없으며 0보다 작은 즉, -값으로 설정하게 되면 javax.servlet.ServletException: 'step' <= 0 과 같은 Exception이 발생하게된다. 반복문에서 콜렉션의 사이즈에서 0이 될때까지 순회하는 방식의 사용은 불가능할듯 하다.

var속성은 반복문의 시작값 + 증가값을 변수에 담아둘 수 있는 속성이다. 위 소스에 var를 추가해보면

 <c:forEach begin="1" end="9" step="2" var="x">
  <c:out value="${ x } : foreach" /><br>
 </c:forEach>


△ 반복문의 시작값 + 증가값을 var 속성을 통해 변수에 담아 화면에 출력한 결과



varStatus 속성은 var 속성을 통해 변수에 담은 반복문의 값의 상태를 담고있는 변수를 지정한다. 예를 들자면 step은 얼마인지. begin은 몇부터 시작해서 end는 얼마인지 하는등을 변수에 담아둘 수 있다.

 <c:forEach begin="1" end="9" step="2" var="x" varStatus="status">
  <c:out value="${ x } : foreach : ${ status.first }" /><br>
 </c:forEach>


소스에서 사용한 first는 변수가 첫값인가를 부울값으로 반환하는 속성이다.


△ varStatus 속성을 사용하여 화면상에 출력한 모습



varStatus속성은 다음과 같은 멤버를 가진다.


    나머진 내일..

    by 낭길리마 | 2007/11/01 17:45 | Java | 트랙백 | 덧글(1)

    [ JSTL ] Core Part3. 제어와 관련된 태그( if, choose 외 )

    프로그램에 빠져서는 안된 제어문과 반복문중 제어와 관련된 태그를 실습해보자.

    제어와 관련된 태그는 if choose가 있다.

    우선 if 태그는 기본적인 성질은 자바의 if와 다르지 않다. 다만 else구문이 없다. if의 속성으로는
    • test : 논리판별을 한다.
    • var : 논리판별한 값을 할당할 변수의 이름을 설정한다.
    • scope : var 에서 설정한 변수의 유효범위를 지정한다. set과 마찬가지로 page, request, session, application 이있다.

     <c:set var="task" value="search" />
     <c:if test="${ task == 'search'  }" var="result" scope="session" />
      <c:set var="task" value="result is true" />
     </c:if>
     <c:out value="${ task }" /><br>
     <c:out value="${ result }" />

    다음과 같이 소스를 입력하면 if태그에서 task의 값이 search인지 비교를 한다. 그 비교의 결과값인 true를 result 변수에 할당 해준다. 그리고 if태그의 몸체안에서 task의 값을변경한다. 그 후 task 와 result를 출력하면 다음과 같다.


    △ if 태그 사용결과 test 속성의 논리값이 result에 할당되고 if문 몸체의 내용에 따라 task의 값이 바뀐다.



    이제 choose 태그를 실습해보자. choose 태그는 when과 otherWise라는 하위 태그를 가진다. 마치 switch에 case 와 default가 쓰이는것과 비슷하다. 그러나 swith절에서 비교대상 을 지정해서 case 비교값 형식이 아니라 choose 태그 몸체에서 when이 if태그와 같은 원리로 동작을 하고 when에 모두 만족하지 않으면 otherwise 태그 몸체를 수행하게 된다.

    <c:set var="x" value="4" />
     
     <c:choose>
      <c:when test="${ x == 1}" >
       <c:out value="x는 1입니다" />
      </c:when>
      <c:when test="${ x == 2}" >
       <c:out value="x는 2입니다" />
      </c:when>
      <c:otherwise >
       <c:out value="x는 3이상입니다." />
      </c:otherwise>
     </c:choose>


    위와 같은 소스를 입력하여 실행해보면 x의 값이 1, 2가 아니기 때문에 otherwise에 몸체를 수행하여 결과를 출력한다.


    △ choose를 이용한 테스트 결과 otherwise 태그 몸체가 수행된 모습.

    by 낭길리마 | 2007/11/01 16:08 | Java | 트랙백 | 덧글(0)

    [ JSTL ] Core Part.2 변수와 관련된 태그( set, remove )

    Core Tag Library 안에 변수를 설정하고 삭제하는 set 태그와 remove 태그에 대해서 실습해본다.

     

    set 태그는 다음과 같은 속성을 갖는다.

    • var : 변수의 이름을 설정한다.
    • value : 변수에 값을 설정한다.
    • target : Bean 클래스나 Map 클래스를 목표로 지정하여 값을 할당할 수 있게 한다.
    • property : target로 설정된 클래스의 속성을 지정한다.
    • scope : 변수가 영향을 끼칠 수 있는 범위를 지정한다. page, request, session, application

    변수를 하나 설정 하고 그 변수에 값을 할당해보면,

     <c:set var="x" value="Hello!World"/>
     <c:out value="${ x }" />


    var을 통해 x라는 변수이름을 지정해주고 그 값에 Hello!World를 할당 해준 후 out태그로 출력한다.



    △ 변수선언 후 화면출력



    target 속성은 property속성과 함께 사용된다. target을 통해 Map 또는 여타 Bean 클래스를 지정해주고 property에 키값 또는 속성의 이름을 지정한다. 그리고 value속성을 이용하여 값을 할당하면 그값은 target에 지정된 클래스에 값이 설정된다. 예를 들어 map을 이용하여 사용해보면 다음과 같다.

     <jsp:useBean id="map" class="java.util.HashMap" />
     <c:set value="helloworld!" target="${ map }" property="keyString" /><br>
     <c:out value="${ map }" /><br>


    위의 소스를 입력하여 실행해보면 결과는 다음과 같다.



    △ 지정한 Map클래스에 property 값을 키로 하여 value가 설정된 모습



    이제 set 태그의 마지막인 scope를 둘러볼 차례다. scope 속성은 set으로 설정한 변수가 영향을 미칠 유효 범위를 설정한다.
    설정값으로는 page, request, session, application등을 지정할 수 있고 기본값은 page다. scope의 사용법을 익히기 위해 다음
    과 같이 소스를 생성한다.

    //coreOther.jsp
    <c:set var="x" value="scopetest" scope="session" />
    <a href="../JSP/core.jsp">move core.jsp</a>

    //core.jsp
    <c:out value="${ x }" default="scope is page" />



    △ coreOther페이지에는 scope 속성의 값이 session인 x가 설정되 있다.




    위와 같이 소스를  입력해서 coreOther.jsp에서 링크를 통해 core.jsp페이지로 이동하게 되면
    core.jsp페이지에는 x를 선언하거나 값을 할당하지 않았어도 coreOther.jsp의 x의 유효범위가 session이기 때문에
    값이 정상적으로 출력된다.



    △ core 페이지에는 변수가 없지만 이전 페이지에 선언된 session 범위의 변수를 출력할 수 있다.



    이제 set 태그의 실습을 마치고 remove 태그를 둘러본다. remove 태그는 set으로 선언된 변수를 삭제한다.
    remove태그는 다음과 같은 속성을 가진다.
    • var : 삭제할 변수 이름을 설정한다.
    • scope : 삭제할 변수의 유효범위를 설정한다.

    앞서 사용했던 소스중 core.jsp 다음과 같이 수정한다.

     <c:out value="${ x }" default="scope is page" /><br>
     <c:remove var="x" scope="session" />
     <c:out value="${ x }" default="scope is page" /><br>


    변수가 삭제되어 다음과 같은 결과가 나타난다.


    △ remove 태그를 사용하기전에는 정상적으로 x값을 출력하지만 remove되면 null로 인식되어 기본값이 출력된다.


     

    by 낭길리마 | 2007/11/01 15:19 | Java | 트랙백 | 덧글(0)

    [ JSTL ] Core Part1. out 태그의 사용법

    JSTL 1.1 documentataion 을 보면 JSTL은

    • JSTL core
    • JSTL fmt
    • JSTL sql
    • JSTL XML
    • JSTL function

    으로 구성되있다. 하루에 하나씩 꾸준히...
    오늘을 처음으로 core 에 대해서 실습을 한다.

    우선 JSTL core를 사용하기 위해 Tag를 사용할 페이지 상단에

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    지시자를 사용하여 core의 위치와 alias를 지정한다. uri는 태그의 위치를 나타내고 prefix는 접두사를 지정하는 부분으로
    core태그를 사용하는 방식은 접두사로 지정된 c를 이용하여 <c:tagname /> 과 같은 방식이 된다. 접두사를 변경해도 변경한
    접두사를 지정해주면 Tag는 정상적으로 작동한다.

    core는 말그대로 즉 핵심적인 스크립트렛을 대체할만한 부분들로 구성이 되어있다. 화면출력, 변수선언, 제어문, 반복문
    그 구성을 살펴보면 다음과 같다.


    △ Core tag의 구성

    살펴보기 쉬운 기본적인거 부터 하나씩 살펴보면

    우선, out태그는 말그대로 화면상에 출력을 하는 태그이다. out태그에 지정해 줄 수 있는 속성으로는
    • value : 출력될 값을 설정한다. 문자열형태의 값이 들어간다.
    • default : value가 null일 때 출력될 기본값을 설정한다. 문자열형태의 값이 들어간다.
    • escapeXML : <,>,&,'," 의 출력형태를 결정한다. true 또는 false의 값이 들어가며 기본값은 false이다.

     <c:set var="temp" value="Hello!&nbsp;World" />
     
     <c:out value="${ temp }" default="value is null"/><br>
     <c:out value="${ temp }" default="value is null" escapeXml="false" /><br>
     <c:out value="${ temp2 }" default="value is null" /><br>


    과 같이 사용하면 아래와 같은 결과가 나온다.


    △ Out Tag 사용결과.



    위와 같이 사용가능 하며 out 태그를 통해서 <%= %> 스크립트렛을 대체 할 수 있는듯하다.

    by 낭길리마 | 2007/11/01 13:46 | Java | 트랙백 | 덧글(0)

    [ JSTL ] what is...

    △ www.java.sun.com의 JSTL 제목을 캡쳐.

    초보 개발자로 입문한지 어언 9개월.
    첫 프로젝트로 힘들었던 유림수산도 마무리되고 개발과는 거리가 멀지만 반년간 투입됬던 확산도 막바지 단계에
    조금은 여유로운 시간에 모 대리의 소스에서 처음 접한 jsp페이지 내부의 <el:comp....블라블라..

    외계어도 아니고 이것이 무엇인고 하며 검색을 하여 Customer Tag란걸 알게됬고
    어찌저찌 하여 시발점인 JSTL로 오게됬다.

    일주일 정도 JSTL공부를 하며 알게된 것들을 블로깅 해야겠다.

    우선 오늘은 시작으로..

    http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi

    에서 Standard Library 1.1을 다운로드 받아서 압축을 풀면
    • jstl.jar
    • standard.jar
    두파일이 나온다. 이 두 파일을 Library에 포함시킨다.


    △ 두 파일이 Library에 포함된 모습


    이로써 JSTL을 사용하기 위한 준비는 끝!
    내일부턴 Core부터 시작해서 하나씩 익혀야 겠다.

    by 낭길리마 | 2007/10/31 17:03 | Java | 트랙백 | 덧글(0)

    ◀ 이전 페이지다음 페이지 ▶