연구_고민/웹2009.07.20 17:38

JQuery 사용해보기.

프로토타입, 도조 등 많은 비슷한 스크립트 라이브러리들이 있지만 요세 대세? 가벼우면서 막강한 JQuery를 사용해보자.

각 포털사이트에서 JQuery를 검색해보면 JQuery는 홈페이지에서 다운로드 할 수 있다.

 

해당 엘리먼트 접근하기

일반 : document.getElementById("id");

JQuery : $("#id");

   - 엘리먼트의 ID 접근시 #, class 접근시 .

 

해당 엘리먼트의 값 접근하기

일반 : document.getElementById("id").value;

JQuery : $("#id").val();

   - 엘리먼트의 값을 대입하고 싶다면 $("#id").val("값");

 

해당 엘리먼트의 개체를 비교하여 true/false를 알려주는 메소드

일반 : document.getElementById("id").checked;

JQuery : $("#id").is(':checked');

   - 체크박스 및 라디오버튼에 체크상태인지를 boolean 형으로 반환

   - $("#id").is(".orange, .blue, lightblue");  id의 class 속성중 orange, blue, lightblue 가 하나라도 있으면 true

 

해당 엘리먼트의 CSS 속성 부여하기

일반 : document.getElementById("id").style.border = "4px solid yellow");

JQuery : $("#id").css("border", "4px solid yellow");

    - 첫번째인자는 속성이름, 두번째인자는 속성값을 넣으면 된다.

 

해당 엘리먼트의 display 속성 부여하기

일반 : document.getElementById("id").style.display = "none";

JQuery : $("#id").hide(); , $("#id").show();

    - hide 숨김, show 보임, hide, show 안에 인자를 slow, normal, fast 중 하나로 보임숨김의 속도를 조절 할 수 있다.

    - 아니면 수치로 1000분의 1초로 할 수 있음. show(950)

 

체크박스의 전체선택 / 해제

일반

function selectAll() {
    var blnChecked = document.getElementById("allCheck").checked;      // 전체선택 체크박스의 상태
    checkBoxes = document.getElementsByName('delCheck');                // 태그이름중 delCheck인 엘리먼트를 배열로 얻음

 

    for(var i=0; i<checkBoxes.length; i++) {
     objCheck = checkBoxes[i];
        if (objCheck) {
            objCheck.checked = blnChecked;
  }
    }
}

 

JQuery

$(document).ready(function() {                    
  $('#allCheck').click(function() {                    // 전체선택 체크박스 선택 이벤트
    if($('#allCheck').is(':checked')){                // 전체선택 체크박스 체크상태
      $('.delCheck').each(function(){                // 여러개의 체크박스 의 class 속성의 값이 delCheck 인걸 가져옴
        $(this).attr('checked', 'checked');           // 가져온 체크박스를 checked
        });
     }else{                                                     // 전체선택 체크박스 미체크상태
       $('.delCheck').each(function(){
       $(this).attr('checked','');                         // 가져온 체크박스를 미체크상태로
       });
     }
   }); 
});

 

엘리먼트의 존재여부를 체크하기

JQuery : if($("#id").length > 0)     

    - 엘리먼트로 존재하지 않은 경우에도 빈 객체로 반환하기 때문에 JQuery는.. 객체의 길이를 체크해서 존재여부를 체크한다

신고
Posted by naearu

Function php_ceil(number)
    If number Mod 1 <> 0 Then
        number = number - (number Mod 1) +1
    End If
    php_ceil = number
End Function

 

제길 이런거까지 만들어서 써야 하는거야?

 

하는김애 내림 함수도 ㄱ-;;

 

Function php_floor(number)
    If number Mod 1 <> 0 Then
        number  = number - (number Mod 1)
    End If
    php_floor = number
End Function

신고
Posted by naearu

http://www.tandol.pe.kr/study/?cmd=prt&lecture=asp&num=6

ASP 기본 개체

▶ Request

클라이언트로부터 무언가를 받아들일 때 사용하는 개체로 QueryString, Form, ServerVariables,Cookies등이 있다.
이미 사용한 QueryString, Form과 브라우져로부터 전송되는 Cookies는 제외하고 ServerVariables만 설명한다.

ServerVariables : 사용자의 접속환경을 알게 해주는 컬렉션이다. 주로 접속지의 IP주소나, 브라우져 종류등을 알아내기 위해 사용한다. 중요 환경 변수는 다음 표와 같다.

환경변수명 설명
CONTENT_LENGTH 보내진 바이트수
CONTENT_TYPE Request가 POST타입일때 컨텐츠 타입
보통 application/x-www-form-urlencode이다
GATEWAY_INTERFACE CGI버전
LOCAL_ADDR 서버의 IP 주소
PATH_INFO 서버 파일 웹 경로
PATH_TRANSLATED 서버 파일 실제 경로
QUERY_STRING 주소줄의 ?뒤의 값
REMOTE_ADDR 클라이언트 IP주소
REMOTE_HOST 클라이언트 hostname(ip주소)
REMOTE_USER 서버에 인증받은 사용자 ID명
REQUEST_METHOD 서버로 전송된 Method
SCRIPT_NAME 실행할 애플리케이션, 스크립트이름
SERVER_NAME 서버이름 혹은 주소
SERVER_PORT 서버 포트
SERVER_PORT_SECURE Encrypt된 포트의 경우 1로된다.
SERVER_PROTOCOL 프로토콜과 버젼
SERVER_SOFTWARE 웹서버 어플리케이션이름과 버젼
URL 주소줄의 내용
HTTP_ACCEPT 브라우져에서 받아들일수 있는 MIME타입
HTTP_ACCEPT_LANGUAGE 브라우져 사용 언어
HTTP_HOST tandol.pe.kr
HTTP_USER_AGENT 브라우져종류와 버젼등
HTTP_COOKIE 쿠키값


 

모든 환경변수값을 출력하는 프로그램       [실행결과보기]
<html>
<head>
<title>
REQUEST
개체 </title>
</head>
<body>
<table
border=1>
<tr><th>
환경변수</th><th></th>
<%
for each item in request.servervariables
    for i=1 to request.servervariables(item).count
        response.write "<tr><td>"
        response.write item & "</td><td>"
        a = request.servervariables(item)(i)
        if a="" then a="&nbsp;"
        response.write a & "</td></tr>"
    next
next

%>
</table>
</body>
</html>
환경변수 사용예      [실행결과보기]
<html>
<head>
<title>
환경변수 사용예 </title>
</head>
<body>

당신의 웹 브라우져는
<%=request.ServerVariables("HTTP_USER_AGENT")%>
입니다.<br>
당신의 IP주소는
<%=request.ServerVariables("REMOTE_HOST")%>
입니다.
</body>
</html>

▶Response

서버에서 클라이언트로 정보를 전달할때 사용하는 개체로서 지난 강의 때 이미 Write와 redirect메소드를 이용 하였다. 주로 이용하는 메소드,속성, 컬렉션을 정리하면 다음과 같다.

컬렉션
Cookies 브라우져로 전송도는 모든 쿠키값
속성(프로퍼티)
buffer 페이지가 완성될때까지 버퍼할것인지 지정
charset 문자셑 - 헤드에 덧붙여진다.
ContentType 컨텐츠 형식 기본값은 text/html이다.
Expires 브라우져에서 캐시완료 기간
메소드
addHeader http헤드를 추가 혹은 변경
clear 버퍼된값을 삭제한다. buffer=true가 되어 있어야 한다
end 스크립트수행을 중단한다.
flush 버퍼의 값을 즉시 전송한다. buffer설정되어 있어야 한다.
reDirect 다른url로 이동
write 클라이언트로 전송

▶Application

서버의 모든 사용자가 전역변수 처럼 공유하는 개체이다. 메소드에는 lock과 unlock이 있다.

Application개체를 이용한 페이지 카운트      [실행결과보기]
<html>
<head>
<title>
읽은 회수 카운트 </title>
</head>
<body>

<%
application.lock
application("ReadCnt") = application("ReadCnt")+1
application.unlock
%>
현재 문서를 읽은 회수는
<%=application("ReadCnt")%>
</body>
</html>

▶Session

현재 서버에 접속된 사용자가 전역변수처럼 사용하는 개체이다.

Timeout속성은 세션의 유지시간으로 분단위이다. 예) session.timeout=10' 세션시간을 10분으로 설정
SessionID는 사용자마다 설정되는 ID로서 사용자정보를 따로 관리할때 사용된다.

 주로 로그온상태등 접속자의 상태를 기억하는 용도로 사용 된다.

간단히 만들어본 로그온 페이지      [실행결과보기]
sesnlogin.asp
<html>
<head>
<title>
Session
이용 로그인 상태 표시 </title>
</head>
<body>

<%
response.expires=0 '
웹브라우져의 캐시완료시간을 0으로 하여 항상 갱신을 한다.
s = session("Login")
if s="" then '
세션이 설정되지 않음
%>
<center>
<h2>
로그온 되어 있지 않습니다</h2>
<form
action="sesnlogin_ok.asp" method=post>
<table>
<tr><td>
ID</td><td><input type=text name=id size=20></td></tr>
<tr><td>
비밀번호</td><td><input type=password name=pwd size=20></td></tr>
</table>
<input
type=submit value="
로그인">
<input
type=button value="
취소 " onclick="history.back()">
</form>

임시로 넣어둔 idkim, park, choi이고 비밀번호는 1234
<%
else '
세션이 설정 되어 있음
%>
<h2><%=session("Login")%>(
)로 로그온 되었 습니다</h2>
<input
type=button value="
로그 아웃" onclick="location.href='sesnlogout.asp'">
<%
end if
%>
</body>
</html>
sesnlogin_ok.asp
<%
id = request.form("id")
pwd = request.form("pwd")

if id="kim" and pwd="1234" then
    session("Login")="
김씨성"
elseif id="park" and pwd="1234" then
    session("Login")="박씨성"
elseif id="choi" and pwd="1234" then
    session("Login")="최씨성"
else
    response.write "<script language='javascript'>"
    response.write "alert('잘못된 사용자이거나 비밀번호가 틀립니다');"
    response.write "history.back();"
    response.write "</script>"
    response.end
end if
response.redirect "sesnlogin.asp"
%>
sesnlogout.asp
<%
session("Login")=""
response.redirect "sesnlogin.asp"
%>

▶Server

서버의 컴포넌트 개체를 이용할 때 사용하는 CreateObject, 웹 가상경로를 실제 물리적 경로로 바꾸어주는 MapPath, 스크립트의 실행 시간을 조절해주는 ScriptTimeout등이 있다.

ex)
    set db = Server.CreateObject("ADODB.Connection")
    dbPath = Server.MapPath("sample.mdb")
    server.ScriptTimeout = 120 '
스크립트 실행 시간을 최대 120초로 설정

FilesystemObject 컴포넌트

서버의 Text 파일을 조작할 수 있도록 한다.

Set fs = server.CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("
테스트입니다.")
a.Close

CreateObject 함수는 FileSystemObject 개체(fs)를 만들고, CreateTextFile 메서드에서는 파일을 TextStream 개체(a)로 만들고, WriteLine 메서드에서는 만들어진 텍스트 파일에 텍스트 한 줄을 작성한다. 끝으로 Close 메서드에서 버퍼를 비운 다음 해당 파일을 저장하고 닫는다.

FileSystemObject 개체의 메서드는 다음과 같다.

메서드 기능 결과값
CopyFile 원본, 대상[, 덮어 쓰기] 파일복사  
CopyFolder 원본, 대상[, 덮어 쓰기] 폴더복사  
CreateFolder(폴더 이름) 폴더 만들기  
CreateTextFile(파일 이름[, 덮어 쓰기]) 파일을 만들고 TextStream개체를 생성 TextStream 개체
DeleteFile filespec[, force] 파일삭제
force가 true이면 읽기전용 파일도 삭제된다.
 
DeleteFolder folderspec[, force] 폴더삭제
force가 true이면 읽기전용 폴더도 삭제된다.
 
FileExists(filespec) 파일 존재 여부 true/false
FolderExists(folderspec) 폴더 존재 여부 true/false
GetAbsolutePathName(pathspec) 정확한 경로명 구하기 문자열
GetBaseName(경로) 경로명에서 파일명만 추출 문자열
GetExtensionName(pathspec) 경로명에서 확장자만 추출 문자열
GetFile(filespec) 해당파일의 File 개체를 생성 File 개체
GetFileName(pathspec) 해당 경로의 파일명 구하기 문자열
GetFolder(folderspec) 해당 경로의 Folder 개체를 생성 Folder 개체
MoveFile 원본, 대상 파일 이동 및 이름 변경  
MoveFolder 원본, 대상 폴더 이동 및 이름 변경  
OpenTextFile(파일 이름, iomode) 파일을 열고 TextStream개체를 생성
iomode 기능
1 읽기전용
2 쓰기전용
8 추가용
TextStream 개체

TextStream개체의 메서드 및 속성

속성 및 메서드 기능 결과값
AtEndOfLine 파일 포인터가 TextStream 파일의 줄 끝 표식에 바로 접하여 있으면 참 true/false
AtEndOfStream 파일 포인터가 TextStream 파일 끝에 있으면 참 true/false
Close 파일 닫기  
Read(characters) 지정한 문자수만큼 읽기 문자열
ReadAll 모두 읽기 문자열
ReadLine 한 줄 읽기 문자열
Write(문자열) 지정한 문자열 저장  
WriteLine([문자열]) 지정한 문자열 저장하고 줄바꿈 문자 기록  

File/Folder개체문서읽기 -> 프로그래밍 -> VBScript 를 참조 할것

웹서버 Root의 Global.asa

웹서버의 Global.asa는 특수한 기능을 하는 파일 이다.

웹서버가 실행 할 때와 중단 할때, 사용자가 처음으로 접속할 때와 접속을 중단할 때 각각의 할 일 을 적을 수 있도록 고안 되었다.

PWS 사용자는 Global.asa변경 후 재 부팅을 해 주어야 제대로 작동 한다.

일반적인 구조는 다음과 같다.

Global.asa
<script language="VBScript" runAt="Server">
Sub Application_OnStart
'
이곳에는 웹서버가 시작할 때 실행할 스크립트를 작성한다
end sub

Sub Application_OnEnd
'
이곳에는 웹서버가 중단할 때 실행할 스크립트를 작성한다
end sub

Sub Session_OnStart
'
이곳에는 사용자가 처음 접속할 때 실행할 스크립트를 작성한다
end sub

Sub Session_OnEnd
'
이곳에는 사용자가 접속을 종료할 때 실행할 스크립트를 작성한다
end sub
</script>

방문자수 카운트 프로그램

앞의 Application개체를 이용하여 읽은 회수를 카운트 하는 스크립트에서는 두가지의 문제가 있다.

- 웹서버가 재부팅 하고나면 카운터값이 클리어 된다는 점
- 사용자가 새로 고침 버튼을 누르면 읽은 회수가 증가한다는 점

따라서 방문자 카운트로 작동 시키기 위해서는 특정 데이터 파일에 현재 카운트 한 값을 저장 해 두어야 하고
세션이 시작 될 때에만 - 즉 사용자가 접속을 할 때 -  카운트가 되어야 한다.

Global.asa의 Session_OnStart에서 이 두가지를 모두 실행하는 스크립트를 작성 해야 하고, 결과를 보는 페이지는 따로 작성해야 한다.

Web Server Root Directory 의 Global.asa (PWS 사용자는 저장 후 재부팅 필요함) 
<script language="VBScript" runAt="Server">
Sub Application_OnStart
'
이곳에는 웹서버가 시작할 때 실행할 스크립트를 작성한다
end sub

Sub Application_OnEnd
'
이곳에는 웹서버가 중단할 때 실행할 스크립트를 작성한다
end sub

Sub Session_OnStart
'
이곳에는 사용자가 처음 접속할 때 실행할 스크립트를 작성한다
    Set fs = server.CreateObject("Scripting.FileSystemObject")
    DataFile = Server.MapPath("/count.txt")
    Application.Lock '
여러사람이 동시접속 했을 때를 대비하여 잠금
    if not fs.FileExists(DataFile) then '처음으로 실행하여 파일이 존재하지 않으면
        set Stream = fs.CreateTextFile(DataFile)
        Stream.WriteLine("1")
        Application("Count") = 1
        Stream.close
    else
        set Stream = fs.OpenTextFile(DataFile, 1) '
읽기용으로 연다
        Application("Count") = Stream.ReadLine ' 읽어낸다.
        Stream.Close
        set Stream = fs.OpenTextFile(DataFile, 2) '
쓰기용으로 연다.
        Application("Count") = Application("Count") + 1 '
증가 한다.
        Stream.WriteLine(Application("Count"))
        Stream.Close
        Set Stream = nothing
        Application.Unlock '
잠김 해제
    end if
    Set fs = nothing
end sub

Sub Session_OnEnd
'
이곳에는 사용자가 접속을 종료할 때 실행할 스크립트를 작성한다
end sub
</script>
Count.asp
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>
방문자 수 카운터 </title>
<meta
http-equiv="content-type" content="text/html; charset=euc-kr">
<meta
http-equiv="Cache-Control" content="no-cache">
</head>
<body>

<%
'
다른 페이지에 방문자 카운터를 넣고 싶은경우 이부분을 복사해서 넣는다.
response.write "<table style='border:1px solid red;'><tr><td bgcolor=black>"
lt = cstr(application("Count"))
ln = len(lt)

for i=1 to ln
    tt = mid(lt, i, 1)
    response.write "<img src=""/images/" + tt + ".gif"" border=0 width=16 height=21>"
next
response.write "</td></tr></table>"
%>
</body>
</html>
Count.asp에 필요한 이미지 파일
(Root의 /images/폴더에 복사 한다.)
0.gif 1.gif 2.gif 3.gif 4.gif 5.gif 6.gif 7.gif 8.gif 9.gif
신고
Posted by naearu

GNU 자유 문서 사용 허가서

1.1 판, 2000년 3월

Copyright (C) 2000  Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

누구든지 본 사용 허가서를 있는 그대로 복제하고 배포할 수
있습니다. 그러나 본문에 대한 수정은 허용되지 않습니다. 

제0조. 전문

본 사용 허가서의 목적은 첫째, 매뉴얼이나 책 또는 다른 문서들을 ``자유''롭게 만들기 위한 것입니다. 여기서 말하는 ``자유''란 무료가 아닌 구속되지 않는다는 관점에서의 자유를 의미합니다. 즉, 상업적이든 비상업적이든 간에 누구나 그것을 수정하거나 그렇지 않은 상태에서 복제 및 재배포할 수 있는 실질적인 자유를 보장하기 위한 것입니다. 둘째, 본 사용 허가서는 저작자나 발행인에게 다른 사람들이 가한 수정에 책임지지 않고 그들의 저작물에 대한 공로를 인정 받을 수 있는 길을 보장하기 위한 것입니다.

본 사용 허가서는 일종의 ``카피레프트''입니다. 즉, 문서의 2차적 저작물 또한 같은 의미에서 자유로워야 한다는 것을 의미합니다. 이것은 자유 소프트웨어를 위해서 고안된 카피레프트 사용 허가서인 GNU 일반 공중 사용 허가서를 보완합니다.

자유 소프트웨어는 자유 문서를 필요로 하기 때문에 본 사용 허가서는 자유 소프트웨어 매뉴얼에 사용되기 위해서 고안되었습니다. 자유 프로그램에는 소프트웨어에서와 같은 자유가 제공되는 매뉴얼이 함께 수반되어야 합니다. 그러나 본 사용 허가서가 단지 소프트웨어 매뉴얼에만 한정되는 것은 아닙니다. 이것은 문서의 주제나 그것이 인쇄물로 발행되었는지의 여부에 상관없이 모든 종류의 문서 저작물에 사용될 수 있습니다. 교육이나 참고를 목적으로 하는 저작물에는 원칙적으로 본 사용 허가서를 사용할 것을 추천합니다.

제1조. 적용 범위와 정의

본 사용 허가서는 GNU 자유 문서 사용 허가서(이하, ``GFDL''이라고 칭합니다.)의 규정에 따라 배포될 수 있다는 사항이 저작권자에 의해서 명시된 모든 매뉴얼과 문서 저작물에 적용될 수 있으며, 공중의 누구라도 피양도자가 될 수 있습니다. 본 사용 허가서에서 사용되는 문서(文書, document)는 GFDL에 의해서 양도된 매뉴얼 또는 문서 저작물의 의미합니다. 또한 공중(公衆, public)이란 불특정 다수의 사람을 의미하고, 피양도자(被讓渡者, licensee)란 GFDL에 의해서 매뉴얼 또는 문서 저작물을 양도받은 사람을 의미합니다. 복제 또는 개작의 대상이 되는 독자적인 문서 창작물의 최초 발행물은 원문서(原文書, original document)라고 합니다.

문서의 수정판(修正版, modified version)이란 원문서가 그대로 복제 또는 개작되거나, 다른 언어로 번역된 문서의 전부나 일부를 포함하고 있는 저작물을 의미합니다.

문서의 2차구성부(二次構成部, secondary section)란 문서의 저작자나 발행인과 문서의 전체 주제(또는 관련 내용)와의 관계만을 설명하거나, 문서의 전체 주제와 직접적인 관계가 없는 내용을 포함하고 있는 머리말과 목차 등의 서두나 부록 부분을 가리킵니다. (예를 들면 문서가 수학 교과서의 일부였을 경우, 이 문서의 2차구성부는 수학에 관련된 어떠한 내용도 기술되어서는 안됩니다.) 2차구성부에 포함될 수 있는 내용은 문서의 주제나 관련 사항에 대한 개정 이력이나 법률적, 상업적, 철학적, 윤리적, 정치적 입장 등입니다.

변경불가부분(變更不可部分, invariant section)이란 문서가 본 사용 허가서에 의해서 배포된다는 사실이, 해당 부분이 변경불가부분이라는 제목과 함께 명시된 2차 구성부의 한 형태를 의미합니다.

표지구절(表紙句節, cover texts)이란 문서가 본 사용 허가서에 의해서 배포된다는 사실이 문서의 앞 표지나 뒷 표지에 언급되는 짧은 문장을 의미합니다.

문서의 투명(透明, transparent) 복제물이란 그 사양이 공중에게 공개되어 있고 일반적인 문서 편집기, (픽셀로 구성된 이미지의 경우) 일반적인 페인트 프로그램, (그림의 경우) 널리 사용되는 그림 편집기로 그 내용을 출력시키거나 직접 수정하기에 용이하며 조판 프로그램에 입력하기에 적당하거나 조판 프로그램에 입력할 수 있는 다양한 형태의 포맷으로 자동으로 번역되기에 용이한 형태로 만들어진 기계로 판독 가능한 복제물을 의미합니다. 피양도자가 문서를 개작하는 것을 방해하거나 금지하기 위해서 조판 형태를 설계한 파일 포맷은 투명한 것이 아닙니다. 투명 복제물이 아닌 것을 불투명(不透明, opaque) 복제물이라고 합니다.

투명 복제물로 적절한 포맷의 예는 마크업이 포함되지 않은 평범한 ASCII 포맷과 Texinfo 입력 포맷, LaTeX 입력 포맷, 공개적으로 이용되는 DTD를 사용하는 SGML이나 XML, 그리고 표준 규약을 준수하는 간단한 형식의 HTML과 같이 사람이 직접 개작할 수 있는 형태의 포맷입니다. 불투명 복제물에는 PostScript와 PDF, 독점 워드 프로세서에서만 읽고 편집할 수 있는 독점 포맷, 일반적으로 통용되지 않는 DTD와 처리 도구가 필요한 SGML 및 XML 포맷, 그리고 출력 목적만을 위해서 워드 프로세서로 생성한 기계 생성 HTML 포맷이 포함됩니다.

제목 페이지(title page)란 인쇄된 책의 경우에는 문서의 제목이 표시된 페이지 자체뿐만 아니라 보다 쉽게 이해되는데 필요하다고 판단되어 본 사용 허가서가 제목 페이지에 함께 포함시킬 것을 규정한 후속 페이지들을 모두 의미합니다. 제목 페이지가 없는 저작물의 경우, 제목 페이지는 본문이 시작되기 전에 저작물의 제목에 가장 근접한 형태가 나타난 페이지를 의미합니다.

제2조. 동일 복제

문서의 피양도자는 본 사용 허가서에 어떠한 사항도 추가하지 않은 상태에서 본 사용 허가서와 저작권 사항 그리고 문서의 모든 복제물에 본 사용 허가서가 동일하게 적용된다는 사항을 명시하고 이를 문서의 복제물과 함께 제공하는 한, 어떠한 정보 매체에 의해서도 상업적이나 비상업적인 목적으로 문서를 복제하거나 배포할 수 있습니다. 문서를 복제하거나 배포할 경우에는 임의의 피양도자가 문서를 열람하거나 복제할 수 없도록 방해하거나 통제할 수 있는 어떠한 기술적 수단도 사용해서는 안됩니다. 그러나 복제물을 제공하는데 따른 보상을 청구할 수는 있습니다. 만약, 충분히 많은 양의 복제물을 배포할 경우에는 제3조의 규정들을 함께 준수해야만 합니다.

또한 위의 조건을 준수하는 한, 피양도자는 문서의 복제물을 대여하거나 공개적으로 전시할 수 있습니다.

제3조. 대량 복제

만약, 문서의 인쇄 복제물을 100부 이상 발행하며, 문서의 사용 허가서가 표지 구절의 사용을 규정하고 있는 경우에는 인쇄물의 앞 표지와 뒷 표지에 삽입될 앞 표지 구절과 뒷 표지 구절이 명확하고 읽기 쉬운 형태로 모든 복제물에 포함되어야 합니다. 또한 인쇄 복제물의 발행인에 대한 정보가 양쪽 표지 모두에 명확하고 읽기 쉬운 형태로 명시되어야 합니다. 인쇄물의 앞 표지에는 문서의 완전한 제목이, 제목을 구성하는 모든 문자들이 동일한 수준의 식별력을 가질 수 있도록 표시되어야 합니다. 복제물의 표지에는 추가적인 문장이나 도형, 그림 등의 요소를 추가하는 것이 가능합니다. 문서의 제목이 유지되고 이러한 조건들을 만족하는 한, 표지만 변경시킨 복제물은 표지 이외의 다른 부분에 대한 동일 복제로 간주됩니다.

앞 표지나 뒷 표지에 표시될 표지 구절의 내용이 너무 많아서 읽기 힘든 경우에는 실제 표지에는 (적당한 만큼만) 기재하고, 나머지 내용들은 인접 페이지에 표시할 수 있습니다.

100부 이상의 불투명 복제물을 발행하거나 배포하는 경우, 모든 불투명 복제물에 기계 판독이 가능한 투명 복제물을 함께 첨부하거나, 추가된 것이 없는 완벽한 투명 복제물이 있는 공개적인 접근이 가능한 컴퓨터 네트워크의 위치를 각 불투명 복제물에 명시하여 네트워크를 사용하는 일반 공중이 공개 표준을 준수하는 네트워크 프로토콜을 이용하여 비용없이 익명으로 다운로드 받을 수 있도록 해야 합니다. 후자의 경우, 불투명 복제물을 대량으로 배포하기 시작할 때에는 매우 신중한 접근을 해야 하는데, 불투명 복제물을 공중에게 (본인이 직접 또는 대리인을 통해서, 또는 소매업자를 통해서) 배포한 마지막 시점으로부터 적어도 1년 뒤까지 투명 복제물이 명시된 위치에서 접근될 수 있는 상태로 확실히 남아있도록 해야 합니다.

강제 조항은 아니지만, 복제물을 대량으로 배포하기 전에 충분한 시간적 여유를 두고 문서의 저작자와 연락해서 저작자에게 문서의 최신 개정판을 제공할 수 있는 기회를 주어야 합니다.

제4조. 개작

문서의 수정판은 수정판이 명백하게 본 사용 허가서에 의해서 관리되는 조건 하에서 제2조와 제3조의 규정에 의해서 복제 및 배포될 수 있습니다. 즉, 수정판은 문서의 역할을 유지해야 하며, 수정판의 복제물을 양도받은 임의의 피양도자는 개작과 배포에 대한 동일한 권리를 양수받게 됩니다. 또한 수정판에 대해서 다음의 규정들을 준수해야만 합니다.

A. 수정판의 제목 페이지에는 (표지가 있다면 표지에도) 문서와 그 이전 판의 문서와 구별되는 제목을 사용해야 합니다. (문서의 개정 이력란이 존재한다면 이러한 사실이 등재되어야 합니다.) 그러나 이전 판의 발행인이 허락한다면, 이전 판과 같은 제목을 사용할 수 있습니다.

B. 수정판의 제목 페이지에는 적어도 5명의 문서의 원저작자 (5명보다 적다면 원저작자 모두)와 함께, 개작에 책임이 있는 1인 이상의 개인 또는 단체를 저작자로 명시해야 합니다.

C. 수정판의 발행인 성명을 제목 페이지에 발행인으로서 명시합니다.

D. 문서의 모든 저작권 표시를 수정판에 유지해야 합니다.

E. 문서의 저작권 표시 부분에 자신이 개작한 것에 대한 적절한 저작권 사항을 추가해서 수정판에 표시합니다.

F. 저작권 표시 바로 다음에, 본 사용 허가서의 규정 하에 공중이 수정판을 사용할 수 있다는 사용 허가 표시를 본 사용 허가서의 부록에 나와있는 형식으로 포함시킵니다.

G. 문서의 사용 허가 표시에 포함되어 있던 변경 불가 부분의 목록과 명시할 것을 요구한 표지 구절을 수정판에도 모두 그대로 유지시킵니다.

H. 본 사용 허가서를 변경 없이 그대로 포함시킵니다.

I. 개정이력(履歷, history)이라는 이름이 붙어 있는 부분과 그 제목을 그대로 유지하고 적어도 수정판의 제목, 연도, 수정판 저작자, 발행인에 대한 항목을 제목 페이지에서 명시한 것과 동일하게 이 부분에 추가합니다. 문서에 이력 부분이 없을 경우에는 제목 페이지와 동일하게 문서의 제목과 연도, 저작자, 발행인을 명시한 이력 부분을 새롭게 만들고 앞에서 언급한 대로 수정판에 대한 사항을 추가합니다.

J. 공중이 투명 복제물에 접근할 수 있게 하기 위해서 문서에 명시한 네트워크 주소가 존재한다면 이를 수정판에도 그대로 유지시킵니다. 문서의 이전 판에 포함되어 있던 네트워크 주소가 문서에 기재되어 있는 경우에도, 이를 소급해서 수정판에 그대로 유지합니다. 네트워크 주소는 개정 이력 부분에 기재될 수도 있습니다. 만일 네트워크 주소가 문서보다 적어도 4년 전에 발행된 저작물을 위한 것이거나 네트워크 주소가 최초로 포함된 문서의 발행인이 허락했다면 이를 생략할 수 있습니다.

K. 감사의 글(acknowledgements) 또는 헌사(dedications)라는 표제를 갖고 있는 부분이 있다면, 이 부분에 기재되어 있는 제목과 기여자에 대한 감사의 글 그리고 헌사의 내용과 어조를 수정판에도 모두 유지합니다.

L. 문서의 모든 변경 불가 부분은 제목과 본문을 변경하지 않고 수정판에 그대로 유지시킵니다. 장(chapter) 또는 절(section) 번호나 이에 상당하는 것은 변경 불가 부분의 제목의 일부분으로 간주되지 않습니다.

M. 추천사(endorsements)라는 제목이 붙은 부분은 수정판에서 모두 누락시킵니다. 이러한 부분이 수정판에 포함되어서는 안됩니다.

N. 기존의 어떠한 부분도 수정판에서 추천사로 제목을 바꾸지 말고 제목을 개명하는 부분이 변경 불가 부분의 어떠한 제목과도 충돌되지 않도록 합니다.

만일 수정판이 문서에 포함되어 있지 않던 새로운 서두 부분이나 부록을 2차 구성부의 형태로 포함하게 되면, 이러한 부분의 전체나 일부를 선택에 따라 변경 불가 부분으로 설정할 수 있습니다. 변경 불가 부분을 새롭게 설정하기 위해서는 수정판의 사용권 허가 표시 부분에 포함되어 있는 변경 불가 부분 목록에 제목을 추가시킵니다. 이때 그 제목들은 다른 부분의 제목들과 구별되어야 합니다.

수정판에만 한정된 추천사가 다양한 주체들에 의해서 제공될 경우에는, 예를 들어 동료들의 비평문이나 수정판을 특정한 표준의 권위있는 정의로 인정한다는 관련 기관의 승인이 있을 경우에는 ``추천사''라는 제목의 글을 추가할 수 있습니다.

수정판의 표지 구절 목록 말미에는 앞 표지 구절과 뒷 표지 구절로 각각 5단어와 25단어 미만의 문장을 덧붙일 수 있습니다. 한 개인 또는 한 단체는 (또는 단체에 의해서 만들어진 협약을 통해서) 오직 한 개의 문장만을 각각 앞 표지 구절과 뒷 표지 구절에 추가할 수 있습니다. 만약 문서의 표지 구절에 이미 특정인이나 특정인이 대표하는 단체의 협약에 의해서 포함된 문장이 존재할 경우에는 동일인에 의해서 표지 구절 문장이 추가될 수 없습니다. 그러나 문서의 발행인으로부터 명시적인 승인을 받은 경우에는 기존의 문장을 수정판에서 새로운 문장으로 대체할 수 있습니다.

문서의 저작자(들)과 발행인(들)은 본 사용 허가서를 통해서 수정판을 선전하는데 그들의 이름이 사용되거나, 명시적 또는 묵시적인 형태로 그들의 이름이 수정판을 추천하는데 사용되는 것을 허용한 것은 아닙니다.

제5조. 문서의 결합

수정판에 대해서 정의된 제4조의 규정에 따라서 본 사용 허가서에 의해서 특정 문서를 다른 문서들과 결합할 수 있습니다. 단, 문서를 결합할 때는 결합 저작물을 구성하는 개별 문서들의 변경 불가 부분들을 결합 문서에 그대로 포함시켜야 하며 그 목록을 결합 저작물의 저작권 표시 부분에 명시해야 합니다.

결합 저작물에는 본 사용 허가서의 복제물 1부만 포함시키면 되며 여러 개의 동일한 변경 불가 부분 또한 하나로 통합될 수 있습니다. 만약, 동일한 이름을 갖는 변경 불가 부분이 여러 개 존재하지만 그 내용이 다른 경우에는 각각의 내용과 관련된 저작자와 발행자가 알려져 있을 경우에는 해당 정보를 각 부분의 말미에 괄호안에 명시하고 그렇지 않은 경우에는 숫자를 이용해서 구분합니다. 결합 저작물의 저작권 표시 부분에 있는 변경 불가 부분 목록에 포함된 제목도 같은 방식으로 조정합니다.

원문서에 존재하던 ``개정 이력'' 부분은 모두 통합하여, 단일한 ``개정 이력'' 부분을 결합 저작물 안에 유지해야 합니다. ``감사의 글''과 ``헌사''도 같은 방식으로 조정합니다. 단, ``추천사'' 부분은 모두 삭제해야 합니다.

제6조. 문서의 수집

본 사용 허가서에 의해서 배포된 문서들을 모아서 구성된 수집 저작물을 만들 수 있습니다. 또한 개별 문서에 포함되어 있던 본 사용 허가서의 복제물들을 한 개로 대체하여 수집 저작물에 포함시킬 수 있습니다. 이 경우, 다른 모든 부분들은 본 사용 허가서에 규정된 제2조 동일 복제 규정을 준수해야 합니다.

수집 저작물로부터 하나의 문서를 발췌해서 개별 배포할 경우에는 본 사용 허가서의 복제물을 발췌한 문서에 첨부하고 그 이외의 다른 부분들은 모두 제2조에 규정된 동일 복제 조항을 준수해야 합니다.

제7조. 독자적 저작물과의 집합 저작물 구성

문서 또는 문서의 2차적 저작물을 독자적인 문서나 저작물과 함께 대량 저장 매체 또는 배포 매체에 구성한 편집물을 만들 경우에는 저작물의 구성에 따른 편집 저작권이 주장되지 않는 한, 저작물 전체를 본 사용 허가서가 규정하는 수정판으로 간주하지 않습니다. 이러한 편집물을 집합 저작물이라고 부르며, 편집 과정에서 문서와 함께 구성된 독자적 저작물이 문서로부터 파생된 것이 아니라면 본 사용 허가서가 적용되지 않습니다.

제3조의 표지 구절에 대한 요구는 문서의 복제물에 적용됩니다. 따라서 문서의 양이 전체 편집물의 1/4 보다 작은 경우에는, 문서의 표지 구절은 편집물 안에서 문서가 위치해 있는 곳의 표지 부분에 포함되어도 무방합니다. 그렇지 않은 경우에는 표지 구절이 전체 편집물의 표지 부분에 나타나야 합니다.

제8조. 번역

번역은 일종의 개작으로 간주됩니다. 따라서 문서의 번역물은 제4조의 규정에 따라 배포될 수 있습니다. 변경 불가 부분을 번역물로 대체하기 위해서는 저작권자의 명시적인 승인을 얻어야 합니다. 그러나 변경 불가 부분의 전체 또는 일부에 대한 번역문을 원문과 함께 표시할 경우에는 저작권자로부터 별도의 승인을 얻을 필요가 없습니다. 본 사용 허가서의 번역판을 첨부할 경우에는 영어 원판을 함께 제공해야 합니다. 영어 원판과 번역판 사이에 충돌이 발생할 경우에는 영문 원판이 우선합니다.

제9조. 권리의 소멸

본 허가서에 의해서 명시적으로 이루어 지지 않는 한 문서에 대한 복제와 개작, 양도, 배포가 성립될 수 없습니다. 이와 관련된 어떠한 행위도 무효이며 본 허가서가 보장한 권리는 자동으로 소멸됩니다. 그러나 본 허가서의 규정에 따라 문서의 복제물이나 권리를 양도받았던 제3자는 본 허가서의 규정들을 준수하는 한, 배포자의 권리 소멸에 관계없이 사용상의 권리를 계속해서 유지할 수 있습니다.

제10조. 본 사용 허가서의 향후 개정

자유 소프트웨어 재단은 때때로 본 사용 허가서의 개정판이나 신판을 공표할 수 있습니다. 새롭게 공표될 판은 당면한 문제나 현안을 처리하기 위해서 세부적인 내용에 차이가 발생할 수 있지만, 그 근본 정신에는 변함이 없을 것입니다 http://www.gnu.org/copyleft/의 내용을 참고하시기 바랍니다.

각각의 판들은 판번호를 사용해서 구별됩니다. 특정한 판번호와 그 이후 판을 따른다는 사항이 명시된 문서에는 해당 판이나 그 이후에 발행된 어떠한 판을 선택해서 적용해도 무방하고, 판번호를 명시하고 있지 않은 경우에는 자유 소프트웨어 재단이 공표한 어떠한 판번호의 판을 적용해도 무방합니다.

문서에 GFDL을 적용하는 방법

작성한 문서에 본 사용 허가서를 적용하기 위해서는 본 사용 허가서의 복제물을 문서에 첨부하고 다음과 같은 저작권 및 사용 허가 표시를 제목 페이지 다음에 추가합니다.



Copyright (c) 연도, 본인 성명

GNU 자유 문서 사용 허가서 1.1판 또는 자유 소프트웨어 재단에서 발행한 이후 판의 규정에 따라 본 문서를 복제하거나 개작 및 배포할 수 있습니다. 본 문서의 변경 불가 부분은 ``xxx''이고 앞 표지 구절은 ``xxx'', 뒷 표지 구절은 ``xxx''입니다. 본 사용 허가서의 전체 내용은 ``GNU 자유 문서 사용 허가서'' 부분에 포함되어 있습니다.


만약, 변경 불가 부분이 없는 경우라면 변경 불가 부분을 명시하는 대신 ``변경 불가 부분 없음''이라고 표시합니다. 앞 표지 구절과 뒷 표지 구절이 없는 경우에도 각각 ``앞 표지 구절 없음''과 ``뒷 표지 구절 없음''이라는 사실을 명시합니다.

만약, 문서가 프로그램 코드의 예를 상당 부분 포함하고 있다면 GNU 일반 공중 사용 허가서와 같은 자유 소프트웨어 사용 허가서를 사용해서 프로그램 코드가 자유소프트웨어에서 사용될 수 있도록 사용 허가를 병행할 것을 추천합니다.

신고
Posted by naearu
연구_고민/리눅스2009.01.28 13:32
tar
- 여러개의 파일을 하나로 묶음 (압축은 아님)

#tar [option] file_name.tar file or directory

option
-c : 새로운 archive 파일을 생성(Creation)
-x : archive 파일을 풀어줌(eXtract)
-v : 작업내용을 출력(Verbose)
-p : 퍼미션을 그대로 유지
-f : 옵션 다음에 파일이름을 지정
-Z : compress를 이용해서 압축하여 묶어나 풀어줌
-z : gzip형식으로 압축하여 묶거나 풀어줌
-j : bzip2형식으로 압축하여 묶거나 풀어줌

------------------------------------------------------------------------------------------------------------------------

예)
# tar -cvf root.tar install.log.syslog ks.cfg
install.log.syslog
ks.cfg
- tar을 이용해 install.log.syslog, ks.cfg 파일을 root.tar이라는 파일로 묶어줌 (옵션 앞의 '-'는 생략가능)

# ls
install.log.syslog ks.cfg root.tar

# tar xvf root.tar -C /home
install.log.syslog
ks.cfg
- tar을 이용해 /home 폴더에 root.tar파일을 풀어줌 (-C 옵션은 폴더를 지정하는 옵션이다.)

# ls /home
install.log.syslog ks.cfg

예)
# tar tvf root.tar - root.tar 파일의 내용을 풀지 않고 본다.
# tar cvf cc.tar *.c - 현재 폴더에서 *.c로 된 모든 파일을 cc.tar로 묶는다.

# tar cvfZ ccc.tar.Z *.c
# tar xvfZ ccc.tar.Z *.c - tar로 묶어서 compress를 이용해 압축하거나 푼다.

# tar cvfz ccc.tar.gz *.c
# tar xvfz ccc.tar.gz *.c - tar로 묶어서 gzip를 이용해 압축하거나 푼다.

# tar cvfj ccc.tar.bz2 *.c
# tar cvfj ccc.tar.bz2 *.c - tar로 묶어서 bzip2를 이용해 압축하거나 푼다.

------------------------------------------------------------------------------------------------------------------------

compress
- 전통적인 유닉스 압축 프로그램으로 압축률이 낮아 현재는 잘 쓰이지 않는다.
- 확장자는 .Z를 갖는다.(설치 프로그램 명은 ncompress이다.)
- 압축 : compress [file_name].tar
- 압축 해제 : uncompress [file_name]tar.Z

gzip
- GNU에서 만튼 압축 프로그램으로 묶는 기능이 없으므로 tar과 같이 사용한다.
- 확장자는 .gz를 갖는다.
- 압축 : gzip [file_name].tar
- 압축 해제 : gunzip [file_name]tar.gz

bzip2
- 리눅스용 압축 프로그램으로 gzip보다 압축율이 뛰어나다.
- 확장자는 .bz2를 갖는다.
- 압축 : bzip2 [file_name].tar
- 압축 해제 : bunzip2 [file_name]tar.bz2

예)
# ls
word.tar word1.tar word2.tar word3.tar

# compress word1.tar
# gzip word2.tar
# bzip2 word3.tar

# ls -l
-rw-r--r-- 1 root root    10240 11월 17 14:59 word.tar
-rw-r--r-- 1 root root       409 11월 17 15:12 word1.tar.Z
-rw-r--r-- 1 root root       245 11월 17 15:10 word2.tar.gz
-rw-r--r-- 1 root root       242 11월 17 15:10 word3.tar.bz2

# uncompress word1.tar.Z
# gunzip word2.tar.gz
# bunzip2 word3.tar.bz2

예)
#tar cvfZ home.tar.Z /home
#tar cvfz home.tar.gz /home
#tar cvfj home.tar.bz2 /home

#ls -l
-rw-r--r-- 1 root root     71591 11월 17 15:57 home.tar.Z
-rw-r--r-- 1 root root     23219 11월 17 15:58 home.tar.bz2
-rw-r--r-- 1 root root     30949 11월 17 15:57 home.tar.gz

#tar xvfZ home.tar.Z
#tar xvfz home.tar.gz
#tar xvfj home.tar.bz2
신고
Posted by naearu
자료 출처 : http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/


ab를 포함하지 않는, bc를 포함하지 않는,cd를 포함한 행을 검색한다.

대상 데이터
abcdefg
acbdefg
ab
bc
cd
cdxxabxxbc
abcd
cdab
axbxcdxxx

정규 표현
^(?!.*ab)(?!.*bc)(?=.*cd).*$
별해
^(?!(?=.*(ab|bc)))(?=.*cd).*$



룩어라운드... 멋진기능이야 ㅠㅠ

(?<= ...)  하위 표현식이 왼쪽에 매치될때
(?<! ...) 하위 표현식이 왼쪽에 매치되지 않을때
(?= ....) 하위 표현식이 오른쪽에 매치될때
(?! ...) 하위 표현식이 오른쪽에 매치되지 않을때

신고
Posted by naearu
TAG 정규식
연구_고민2008.08.08 13:42
그냥 한번 만든겁니다..

API사용 연습이랄까 ㄱ-;;

http://naearu.com/mal


네이버 국어사전을 이용해서 만든건데.. 완전.. 바보입니다 ㄱ-;;;;;;
신고
Posted by naearu
연구_고민2008.07.01 17:31
Netscape 4 배제하기
<link rel="stylesheet" type="text/css" href="/css/style.css" media="all" />
Netscape 는 media 속성이 screen 이 아닌 경우 외부 스타일시트를 읽지 못하는 버그가 존재함.

Win IE 3~4, Mac IE 4~4.5, Netscape 4 배제하기
@import url("/css/style.css")
Win IE 4, Mac IE 4 는 인용부호가 "가 아니면 읽지 못하는 버그 존재. IE 3과 Netscape 4는 @import 지원하지 않음.

Mac IE 5 배제하기
H1 { /* \*/ color:red; /* */ }
Holly 핵이라 하며, 주석 안의 내용이 적용되지 않음.

Win IE 4~5 배제하기
H1/**/ { color:red; }
셀렉터 뒤에 /**/ 삽입.

Win IE 4~5, Mac IE 4.5~5 배제하기
H1 { color/* */:red; }
속성과 속성값을 구분하는 콜론(:) 앞에 /* */ 삽입.

Win IE 4~6, Mac IE 4, Netscape 4 배제하기
html>body H1 { color:red; }
셀렉터 앞에 html>body 삽입.

Win IE 6 제외시키기
H1 { color /**/:red; }
속성과 속성값을 구분하는 콜론(:) 앞에 스페이스와 /**/ 삽입.

언더스코어 핵 (_)
H1 { _color:red; }
Win IE 4~6 에 적용.

닷핵 (.)
H1 { .color:red; }
속성 앞에 . 삽입. Win IE 6~7 에만 적용. 타 브라우저는 정확히 확인하지 못했습니다.
이 핵에 대해선 계속 확인중인데 블로그스피어나 여타 서적에는 전혀 언급이 없는 이상한 핵(?)입니다.

해시 핵(#)
H1 { #color:red; }
속성 앞에 # 삽입. Win IE 4~6, Mac IE 5, Opera 7, Mozilla계열, Firefox 에 적용.

스타 핵
*HTML H1 { color:red; }
셀렉터 앞에 *html 삽입. Win IE 4~6, Mac IE 4~5 에 적용.

스타7 핵
HTML*H1 { color:red; }
셀렉터 앞에 html* 삽입(공백없이). Win IE 5.5~6, Mac IE 5, Safari 에 적용.

xmlns 속성 핵
HTML[xmlns] H1 { color:red; }
셀렉터 앞에 속성 선택자를 삽입. Mozilla, Firefox, Opera, Safari 등 속성 선택자를 지원하는 브라우저에 적용.

:root 가상클래스 핵
:root H1 { color:red; }
셀렉터 앞에 :root 가상클래스 삽입. Mozilla, Firefox, Mac IE 5, Safari 등 가상클래스를 지원하는 브라우저에 적용.

Tantek 박스모델 핵
H1 {
    width:500px;
    voice-family: ""}"";
    voice-family:inherit;
    width:400px;
}
Tantek Celik 이 고안한 유명한 박스모델 핵. Win IE 4~5, Mac IE 4, Netscape 4 에서는 voice-family 속성 이전의 스타일 적용. 그외의 브라우저는 뒤의 속성 적용.

단순 박스모델 핵
H1 {
    width:500px;
    w\idth:400px; //Win IE 6, Mac IE 5, Mozilla, Opera, Safari
    \width:450px; // only Win IE 5
}

속성의 첫번째, 두번째 글자 사이에 \를 삽입하면 Win IE 6, Mac IE 5, Mozilla, Opera, Safari 에 적용.
추가로 속성의 앞에 \를 삽입하면 Win IE 5 에만 적용.

IE 7, Opera 적용하기
*+html body H1 { color:red; }
셀렉터 앞에 *+html body 삽입. IE 7, Opera 8 이후 버전 적용. Opera를 배제한 IE7 전용으로 하고 싶을 때는 *+html>/**/body 로 Opera 전용 속성 기술.

IE 7 적용하기
*:first-child+html H1 { color:red; }
셀렉터 앞에 *:first-child+html 삽입. IE 7에만 적용되고, 이외의 브라우저는 앞에서 기술한 셀렉터의 속성 적용.

Win IE 5 패스필터
@media tty {
i{content:"";/*" "*/}}; @import '/css/style.css'; {;}/*";}
}/* */


Win IE 5.5 패스필터
@media tty {
i{content:"";/*" "*/}}@m; @import '/css/style.css';/*";}
}/* */


Win IE 6 패스필터(?)
<!--[if IE 6]><link rel="stylesheet" type="text/css" href="/css/style.css" media="all" /><![endif]-->

Win IE 7 패스필터(?)
<!--[if gte IE 7]><link rel="stylesheet" type="text/css" href="/css/style.css" media="all" /><![endif]-->

모던브라우저 패스필터 (Win IE 5.5 이하, Mac IE 5, Opera 8 이하, Netscape 4 이하 제외)
@import "null?"{";
@import "/css/style.css";
@import "null?"}"




  Windows Mac OS X Macintosh Other
IE Mz Ns Op iC IE Mz Ns Om Op Sf IE Mz Ns Op Ko
7 6 5.5 5 4 1 7 6 4 8 7 6 5 2 5 1 7 6 4 8 7 6 5 2 5 4 1 7 6 4 6 5 3
  7 6 5.5 5 4 1 7 6 4 8 7 6 5 2 5 1 7 6 4 8 7 6 5 2 5 4 1 7 6 4 6 5 3
IE Mz Ns Op iC IE Mz Ns Om Op Sf IE Mz Ns Op Ko
Windows Mac OS X Macintosh Other
voice-family:"\"}\"";
voice-family:inherit;
property:value;
Y Y N N N Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y N Y Y Y
p\roperty:value; Y Y N N N Y Y Y N Y Y Y N N Y Y Y Y N Y Y Y N Y Y N Y Y Y N Y N N
/*/*/property:value;/* */ Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y
/*/*//*/property:value;/* */ N N N N N N N N Y N N N Y N N N N N N N N N Y N N N N N N Y N Y N
div#test Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y
head:first-child+body div Y N N N N Y Y Y N Y Y N N N Y Y Y Y N Y Y N N Y Y N Y Y Y N N N Y
body>div Y N N N N Y Y Y N Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y
html[xmlns] div Y N N N N Y Y Y N Y Y Y Y N N Y Y Y N Y Y Y Y Y N N Y Y Y N Y Y Y
@import 'styles.css' Y Y Y Y N Y Y Y N Y Y Y Y Y N Y Y Y Y Y Y Y Y Y N N Y Y Y N Y Y Y
@import "styles.css" Y Y Y Y N Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y N Y Y Y
@import url(styles.css) Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y
@import url('styles.css') Y Y Y Y Y Y Y Y N Y Y Y Y Y N Y Y Y Y Y Y Y Y Y N N Y Y Y N Y Y Y
@import url("styles.css") Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y
@import "null?\"\{";
@import "styles.css";
Y Y Y N N Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y N Y Y Y
@media all{/* rules */} Y Y Y Y N Y Y Y N Y Y Y Y N N Y Y Y N Y Y Y Y Y N N Y Y Y N Y Y Y
<link media="all"> Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y
<link media="All"> Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y N Y Y Y
* html div N Y Y Y Y N N N N N N N N N Y N N N N N N N N N Y Y N N N N N N N
*+html div Y N N Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N
i{content:"\"/*"}
div{property:value}
Y Y N N N Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y N Y Y N
/* \*/
div{property:value}
/* */
Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y N Y Y Y Y Y Y Y Y
html*#test Y Y Y N N Y Y Y N N N N N N Y Y Y Y N N N N Y Y Y N Y Y Y N ? Y N
_property:value N Y Y Y Y N N N N N N N N N N N N N N N N N N N Y Y N N N N N N N
*property:value Y Y Y Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N
@media tty {
i{content:"\";/*" "*/}} @import 'styles.css'; /*";}
}/* */
N N Y Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N
@media tty {
i{content:"\";/*" "*/}}; @import 'styles.css'; {;}/*";}
}/* */
N N N Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N
@media tty {
i{content:"\";/*" "*/}}@m; @import 'styles.css'; /*";}
}/* */
N N Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N
/*\*//*/
@import "styles.css";
/**/
N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N N N N N N
신고
Posted by naearu
연구_고민/웹2008.06.24 14:41

HTTP 에러 코드

400 요청실패
문법상 오류가 있어, 서버가 요청사항을 이해하지 못함, 클라이언트는 수정없이 요청사항을 반복하지 않을 것이다.

401.1 권한 없음 (접속실패)
이 에러는 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지 않을 경우 발생한다. 이 경우, 여러분이 요청한 자원에 접근할 수 있는 권한을 부여받기 위해 서버 운영자에게 요청해야 할 것이다.

401.2 권한 없음(서버설정으로 인한 접속 실패)
이 에러는 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지않을 경우 발생한다. 이것은 일반적을 으로 적절한 www-authenticate head field를 전송하지 않아서 발생한다.

401.3 권한 없음(자원에 대한 ACL에 기인한 권한 없음)
이 에러는 클라이언트가 특정 자원에 접근할 수 없을 때 발생한다. 이 자원은 페이지가 될 수도 있고 , 클라이언트의 주소 입력란에 명기된 파일일 수도 있다. 아니면 클라이언트가 행당 주소로 들어갈 때 이용되는 또 다른 파일일 수도 있다. 여러분이 접근할 전체 주소를 다시 확인해 보고 웹 서버 운영자에게 여러분이 자원에 접근할 권한이 있는지를 확인해 본다.

401.4 권한 없음(필터에 의한 권한 부여 실패)
이 에러는 웹 서버가 서버에 접속하는 사용자들을 확인하기 위해 설치한 필터 프로그램이 있음을 의미한다. 서버에 접속한는 데 이용되는 인증 과정이 이런 필터 프로그램에 의해 거부되었다.

401.5 권한 없음(ISA PI/CGI 애플리케이션에 의한 권한부여 실패)
이 에러는 여러분이 이용하려는 웹 서버의 어드레스에 ISA PI나 CGI프로그램이 설치되어 있어 사용자의 권한을 검증하고 있음을 의미한다. 서버에 접속하는 데 이용되는 인증 과정이 이 프로그램에 의해 거부되었다.

403.1 금지(수행접근 금지)
이 오류는 CGI나 ISAPI,혹은 수행시키지 못하도록 되어있는 디렉토리 내의 실행 파일을 수행시키려고 했을 때 발생한다.

403.2 금지(읽기 접근 금지)
이 에러는 브라우저가 접근한 디렉토리에 가용한 디폴트 페이지가 없을 경우에 발생한다. 아니면 Eecute나 Script로 분한이 부여된 디렉토리에 들어있는 HTML페이지를 보려했을 때 발생한다.

403.4 금지(SSL 필요함)
이 에러는 여러분이 접근하려는 페이지가 SSL로 보안유지 되고 있는 것일 때 발생한다. 이것을 보기 위해서 여러분은 주소를 입력하기 전에 먼저 SSL을 이용할 수 있어야 한다.


403.5 금지 (SSL 128필요함)
이 에러는 접근하려는 페이지가 SSL로 보안유지 되고 있는 것일 때 발생한다. 이 자원을 보기 위해서는 여러분의 브라우저가 SSL의 행당 레벌을 지원해야 한다. 여러분의 브라우저가 128비트의 SSL을 지원하는 지를 확인해 본다.

403.6 금지(IP 주소 거부됨)
이 에러는 서버가 사이트에 접근이 허용되지 않은 IP주소를 갖고 있는데, 사용자가 이 주소로 접근하려 했을 때 발생한다.

403.7 금지(클라이언트 확인 필요)
이 에러는 여러분이 접근하려는 자원이 서버가 인식하기 위해 여러분의 브라우저에게 클라이언트 SSL을 요청하는 경우 발생한다. 이것은 여러분이 자원을 이용할 수 있는 상용자임을 입증하는데 사용된다.

403.8 금지 (사이트 접근 거부됨)
이 에러는 웹 서버가 요청사항을 수행하고 있지 않거나, 해당 사이트에 접근하는 것이 허락되지 않았을 경우 발생한다.

403.9 접근 금지(연결된 사용자수 과다)
이 에러는 웹서버 BUSY 상태에 있어서 여러분의 요청을 수행할수 없을 경우에 발생한다. 잠시 후에 다시 접근해 보도록 한다.

403.10 접근금지(설정이 확실 하지 않음)
이 순간 웹 서버의 설정쪽에 문제가 있다.

403.11 접근금지(패스워드 변경됨)
이 에러는 사용자 확인단계에서 잘못된 패스워드를 입력했을 경우 발생한다. 페이지를 갱신한 후 다시 시도해 본다.

403.12 접근금지(Mapper 접근 금지됨)
여러분의 클이언트 인증용 맵이 해당 웹 사이트에 접근하는 것이 거부되었다. 사이트 운영자에게 클라이언트 인증 허가를 요청한다. 또한 여러분은 여러분의 클라이언트 인증을 바꿀 수도 있다.

404 발견안됨
웹 서버가 요청한 파일이나 스크립트를 찾지 못했다. URL을 다시 잘 보고 주소가 올바로 입력되었는지 확인해본다.

405 메쏘드 허용안됨
Request 라인에 명시된 메쏘드를 수행하기 위해 해당 자원의 이용이 허용되지 않았다. 여러분이 요청한 자원에 적절한 MIME 타입을 갖고 있는지 확인해 본다.

406 받아들일 수 없음
요청 사항에 필요한 자원은 요청 사항으로 전달된 Acceptheader에 따라 "Not Acceptable"인 내용을 가진 Response 개체만을 만들 수 있다.

407 대리(Proxy) 인증이 필요함
해당 요청이 수행되도록 proxy 서버에게 인증을 받아야 한다. proxy서버로 로그온 한 후에 다기 시도해 본다.

412 선결조건 실패
Request-header field에 하나 이상에 선결조건에 대한 값이 서버에서 테스트 결과 FALSE로 나왔을 경우에 발생한다. 현재 자원의 메타-정보가 하나 이상의 자원에 적용되는 것을 막기 위한 클라이언트 선결조건이 의도되어졌다.

414 요청한 URI가 너무 길다
요청한 URI가 너무 길어서 서버가 요청 사항의 이행을 거부했다. 이렇게 희귀한 상황은 아래와 같은 경우에만 발생한다. 클라이언트가 긴 탐색용 정보를 가지고 POST 요청을 GET으로 부적절하게 전환했다. 클라이언트가 Redirection문제를 접하게 되었다. 서버가, 몇몇 서버가 사용하고 있는 요청한 URI 를 읽고 처리하는 고정된 길이의 메로리 버퍼를 이용해 보안체계에 들어가려는 , 클라이언트에 의한 공격을 받고 있다.

500 서버 내부 오류
웹 서버가 요청사항을 수행할 수 없다. 다시 한 번 요청해 본다.

501 적용안됨
웹 서버가 요청사항을 수행하는 데 필요한 기능을 지원하지 않는다. 에러가 발생한 URL을 확인한 후에, 문제가 지속될 경우에는 웹 서버 운영자에게 연락한다.

502 게이트웨이 상태 나쁨
Gateway나 proxy로 활동하고 있는 서버가 요구 사항을 접수한 upstream 서버로부터 불명확한 답변을 접수 했을 때 발생한다. 만약 문제가 지속된다면 웹 서버 운영자와 상의해 본다.

신고
Posted by naearu
연구_고민/리눅스2008.06.20 13:36

1. 먼저 압축하고자하는 디렉토리로 이동한다..
# cd /soruce


2. 다음과 같은 명령으로 압축을 실행한다.
# tar -cvf - ./ | split -b 1024m - target.tar

폴더의 권한까지 1기가로 압축을 하는 명령어입니다..
단순히 tar로 묶어줍니다..
(그냥 묶는것이 속도가 더 빠릅니다.그래서 저는 압축을 안하고 묶었습니다.)

만약 압축까지하려면 다음과 같은 명령어를 넣어줍니다.
# tar cvzf - 압축할디렉토리 | split -b 1024m - 압축파일.tar


3. 압축파일은 다음과 같은 형태로 저장되게 됩니다.
        압축파일.taraa
        압축파일.tarab
        압축파일.tarac
   뒤에 aa,ab,ac...가 붙게 됩니다..
   혹은
        압축파일.tar.gzaa

        압축파일.tar.gzab
        압축파일.tar.gzac


4. 압축풀기
 #cat target.tar* | tar -xvf -
혹은
 #cat target.tar.gz* | tar xvzf -

신고
Posted by naearu