직업도 인터넷에 연관되어 있지만....
엄청나게 무지했던 저작권...관련 문제들....

요즘 주변에서 '저작권..저작권...'하며 하도 안좋은 사례들만을 들었기에...
자세히 알아보고자 찾아봤다...

프로그램도 그렇지만... 어느정도는 알아야 자신이 어디에 서 있는지 알 수 있기 때문이다.
=====================================================================================================
출처 : http://www.creativecommons.or.kr/info/about

개념 및 여러가지 다른 내용도 있기 때문에 
위의 링크를 한번쯤은 확인하는 편이 좋을 것 같다. ^^;;;;



Creative Commons License 구성요소

CCL의 구성요소 즉, 이용자에게 부과하고 있는 "이용방법 및 조건"의 구체적 내용은 다음과 같은 4가지입니다.

  저작자표시
저작권법 상 저작인격권의 하나로서, 저작물의 원작품이나 그 복제물에 또는 저작물의 공표에 있어서 그의 실명 또는 이명을 표시할 권리인 성명표시권(right of paternity, 저작권법 제12조 제1항)을 행사한다는 의미입니다. 따라서 이용자는 저작물을 이용하려면 반드시 저작자를 표시하여야 합니다.

  비영리
저작물의 이용을 영리를 목적으로 하지 않는 이용에 한한다는 의미입니다. 물론 저작권자가 자신의 저작물에 이러한 비영리 조건을 붙였어도 저작권자는 이와는 별개로 이 저작물을 이용하여 영리행위를 할 수 있습니다. 또한 영리 목적의 이용을 원하는 이용자에게는 별개의 계약으로 대가를 받고 이용을 허락할 수 있습니다.

  변경금지
저작물을 이용하여 새로운 2차적 저작물을 작성하는 것뿐만 아니라 저작물의 내용, 형식 등의 단순한 변경도 금지한다는 의미입니다.

  동일조건변경허락
저작물을 이용한 2차적 저작물의 작성을 허용하되 그 2차적 저작물에 대하여는 원저작물과 동일한 내용의 라이선스를 적용하여야 한다는 의미입니다. 예를 들어 저작자표시-비영리 조건이 붙은 원저작물을 이용하여 새로운 2차적 저작물을 작성한 경우 그 2차적 저작물도 역시 저작자표시-비영리 조건을 붙여 이용허락 하여야 합니다. 
예전에 테이블 컬럼 정보 조회 쿼리를 올린적이 있었는데....
이리저리 도움을 받아서 다시 정리했다.

음.. 이번거는 목적이 '테이블 정의서'라서.... 
조금 애매하기는 하다.

아래의 쿼리문을 그대로 돌리면 해당 유저의 스키마 테이블을 모두 조회한다.
아참.. 오라클 실행계획을 보면 LOOP가 굉장히 많고 시간도 조금 걸리는 문장이란걸 유념하자.
그리고 좀 길다...쩝...

SELECT (CASE WHEN MAIN.COLUMN_ID = 1 THEN MAIN.TABLE_COMMENTS 
                       ELSE '' END)                                                                             table_kor_name
           , (CASE WHEN MAIN.COLUMN_ID = 1 THEN MAIN.TABLE_NAME 
                        ELSE '' END )                                                                           table_eng_name
           , MAIN.COLUMN_ID                                                                                column_id
           , MAIN.COLUMN_NAME                                                                          column_name
           , MAIN.COLUMN_COMMENTS                                                                 column_comments
           , (CASE SUB.CONSTRAINT_TYPE WHEN 'P' 
                                                             THEN 'PK' 
                                                             WHEN 'R' 
                                                             THEN 'FK ('||SUB.FK_COLUNM||')' END) key_flag
           , (CASE NVL(MAIN.NULL_FLAG, 'N') WHEN 'N' 
                                                                 THEN 'NOT NULL' 
                                                                 ELSE '' END)                                    null_flag
           , MAIN.DATA_TYPE                                                                                 data_type
           , (CASE MAIN.DATA_TYPE WHEN 'NUMBER' 
                                                   THEN (CASE WHEN MAIN.DATA_PRECISION IS NOT NULL 
                                                                       THEN TO_CHAR(MAIN.DATA_LENGTH)||' ('
                                                                                ||TO_CHAR(MAIN.DATA_PRECISION)||')'                                                                                     ELSE TO_CHAR(MAIN.DATA_LENGTH) END)
                                                   WHEN 'DATE'   
                                                   THEN '' 
                                                   ELSE TO_CHAR(MAIN.DATA_LENGTH) END)      data_type_length
   FROM (SELECT T_COMT.COMMENTS                                              table_comments
                         , T_COLS.TABLE_NAME                                             table_name
                         , C_COMT.COMMENTS                                             column_comments
                         , T_COLS.COLUMN_NAME                                         column_name
                         , (CASE T_COLS.NULLABLE WHEN 'Y' THEN 'Y' END) null_flag
                         , T_COLS.DATA_TYPE                                               data_type
                         , T_COLS.DATA_LENGTH                                           data_length
                         , T_COLS.COLUMN_ID                                               column_id
                         , T_COLS.DATA_PRECISION                                       data_precision
                 FROM USER_TAB_COLUMNS T_COLS
                         , USER_TAB_COMMENTS T_COMT
                         , USER_COL_COMMENTS C_COMT
                WHERE T_COLS.TABLE_NAME  = T_COMT.TABLE_NAME
                     AND T_COLS.TABLE_NAME  = C_COMT.TABLE_NAME
                     AND T_COLS.COLUMN_NAME = C_COMT.COLUMN_NAME
                     AND T_COMT.TABLE_TYPE  = 'TABLE'
             ) MAIN
           , (SELECT CONST.CONSTRAINT_TYPE    constraint_type
                         , CONST.TABLE_NAME             table_name
                         , COLS.COLUMN_NAME            column_name
                         , R_COLS.COLUMN_NAME         fk_colunm
                 FROM USER_CONSTRAINTS CONST
                         , USER_CONS_COLUMNS COLS
                         , USER_CONS_COLUMNS R_COLS
                WHERE CONST.CONSTRAINT_NAME   = COLS.CONSTRAINT_NAME
                    AND CONST.CONSTRAINT_TYPE IN ('P', 'R')
                    AND CONST.R_CONSTRAINT_NAME = R_COLS.CONSTRAINT_NAME(+)
             ) SUB
 WHERE MAIN.TABLE_NAME    = SUB.TABLE_NAME(+)
     AND MAIN.COLUMN_NAME   = SUB.COLUMN_NAME(+)
     --AND MAIN.TABLE_NAME  = UPPER('TABLE_NAMES')  /*특정 테이블 조회일 경우 사용.*/
 ORDER BY MAIN.TABLE_NAME, MAIN.COLUMN_ID
;


헉...이거 신경써서 오와 열을 맞췄더니만.... 
미리보기 하니 다 깨지네...쩝.. 몰라....
요즘은 웹 에디터를 사용하여 DB에 저장을 할 때 
그냥 통째로 HTML 태그와 함께 저장을 하는 경우가 많아지는 것 같다...

그 내용을 대충 요약해서 보여줘야 하는데...
아무생각없이 조회된 내용을 몇 글자 내로 잘라서 보여 줬더니
그 속에 같이 저장된 태그들 덕에 욕먹을 뻔했던 기억이....

지금 적어놓는 건 JAVA 프로퍼티에서 걸러 줬을 때 사용하던 정규식이다..
(내가 이렇게 사용했다는 것뿐...)

참고로,
정규식은 javascript에서도 사용할 수 있다는거.....^^;;

==============================================================================================

// HTML 태그제거 정규식 적용
var_name = var_name.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","").replaceAll("\r|\n|&nbsp;","");

// 위에 구문이 넘 길어서 쪼개 놓으면 요렇게...
//var_name = var_name.replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>","");
//var_name = var_name.replaceAll("("\r|\n|&nbsp;","");

return var_name;

+ Recent posts