<HTML>
<HEAD>
   <TITLE>BLUEB</TITLE>

<script language=javascript>
prog_sec   = 0.5; // Prosess time
length_bar = 300; // Bar length
cnt_img    = 15;  // Number of image
width_img  = length_bar/cnt_img; // width of image
height_img = 8;                  // height of image

var chk_cnt   = 0;
var prog_per  = 0;
var time_unit = (prog_sec*1000)/cnt_img;

function progress() {
       if(chk_cnt < cnt_img) {
               document.images["prog_img"+chk_cnt].src = "http://www.blueb.co.kr/SRC/javascript/image/prog_bar.gif";
               chk_cnt++;
              
               prog_per = Math.round((chk_cnt/cnt_img)*100);
               if(document.all) {                 // ie4+
                       document.all.prog_num.innerHTML = prog_per + "%";
               }
               else if(document.getElementById) { // nn6+
                       document.getElementById("prog_num").innerHTML = prog_per + "%";
               }
              
               if(chk_cnt == cnt_img) {
                       window.location.replace("http://www.blueb.co.kr");
               }
               setTimeout("progress();", time_unit);
       }
}
</script>

<body onLoad="progress();" >

<script language=javascript>
   for(i=0;i<cnt_img;i++) {
           document.write("<img src=http://www.blueb.co.kr/SRC/javascript/image/prog_bg.gif width="+width_img+" height="+height_img+" name=prog_img"+i+" border=0>");
   }
</script>
<div id=prog_num class=small></div>

2007/03/24 12:22 2007/03/24 12:22

stop();
var mc = this.createEmptyMovieClip("loading_mc",1);
mc.loadMovie("loading.swf");
♡불러들여지는 loading.swf
this.onEnterFrame = function(){
var loaded = this._parent.getBytesLoaded();
var total = this._parent.getBytesTotal();
//trace(loaded+"/"+total);
//로딩바 조절
bar_mc._xscale = (loaded/total)*100; //몇퍼센트 로딩되었는지
if(loaded == total && total > 0){
delete this.onEnterFrame;
//로딩이 끝나면 자기자신이 없어져야
this.removeMovieClip();
this._parent.play();
}
}

2007/03/24 12:20 2007/03/24 12:20

우루과이와의 A매치 평가전을 앞두고 소집된 축구대표팀 박지성-이영표가 22일 오후 서울 상암월드컵 보조경기장에서 열린 소집 훈련에서 '다정하게' 워밍업을 하고 있다.

최정예 멤버로 구성된 축구대표팀은 오는 24일 오후 8시 서울월드컵경기장에서 남미의 강호 우루과이와의 평가전을 치른다.

노컷뉴스 오대일 기자 kkorazi@cbs.co.kr


(대한민국 중심언론 CBS 뉴스FM98.1 / 음악FM93.9 / TV CH 412)
<저작권자 ⓒ CBS 노컷뉴스(www.nocutnews.co.kr) 무단전재 및 재배포 금지 >



24일에 열린다고 한다
그런데 난 중계를 볼수 있으려나...축구 경기를 할때

회사 MT를 간단다...ㅡㅜ;;

우리 지성이 뛰는 모습점 보고 싶은데~^^

어째든 징크스나 뭐 이런건 얘기를 하니까.징크스다..

하지만 그런거 버리고 열심히 뛰고 재밋는 경기 보고싶은 바램이...

암튼 한국 축구 화이팅!!~

2007/03/23 12:23 2007/03/23 12:23
한 보안 연구가가 웹 서퍼들의 PC에 영향을 미치지 않고 유저들이 인식하지도 못하는 사이에 PC를 웹 해킹에 이용할 수 있는 방법을 알아냈다.

이것을 가능하게 한 것은 「직토(Jikto)」라는 이름의 툴 덕분이다. 직토의 제작자인 웹 보안 연구 기업 SPI 다이내믹(SPI Dynamic)의 빌리 호프만(Billy Hoffman)에 의하면, 자바스크립트로 작성된 이 툴은 인터넷 이용자들이 인식하지 못하는 사이에 그들의 PC를 이용해 웹사이트의 허점을 찾아낼 수 있다고 한다.

웹 보안의 개선을 위해 이 툴을 개발한 호프만은 주말에 워싱턴 DC에서 열리는 해커 이벤트인 「ShmooCon」에서 직토를 정식으로 공개할 예정이다.

호프만은, "직토는 자바스크립트를 이용하여 저지를 수 있는 해킹의 범위를 획기적으로 변화시켜 줄 것이다. 직토를 이용하면 어느 누구의 PC라도 말 그대로 내 작은 일꾼으로 만들어 내 대신 웹사이트를 공격하고 그 결과를 내게 보고하게 만들 수 있다."라고 밝혔다.

온라인 응용 프로그램의 도래 이후 해커들은 웹 보안의 무력화에 지대한 관심을 보여 왔다. 크로스사이트 스크립팅 버그나 SQL 삽입 허용 등의 취약성들이 이미 수 년 전부터 알려졌음에도 불구하고 웹 보안의 문제는 점점 증가하고 있으며, 이를 악용한 사례도 늘고 있다.

호프만에 따르면, 직토는 취약한 웹 응용 프로그램을 스캔하는 프로그램이다. 공용 웹사이트에 소리 없이 침투해 보안 상태를 검열 하고 그 결과를 제 3자에 전송한다. 직토는 해커가 만들어 놓은 웹사이트에 설치될 수도 있고 크로스스크립팅 버그라고 알려진 웹 보안의 공통된 허점을 이용함으로써 다른 공신력 있는 웹사이트에 침투할 수도 있다.

취약성 탐지 기능 자체는 사실 별 새로운 게 아니다. 해커들은 종종 이러한 툴을 이용해 허점을 찾아내어 시스템으로 침투하게 만들어 왔다.

즉, 직토는 해커들 사이에 유명한 웹 응용 프로그램 버그 스캐닝 툴인 「닉토(Nikto)」와 마찬가지라고 볼 수 있다. 차이가 있다면, 닉토는 고전적인 PC 응용 프로그램인 반면, 직토는 웹 브라우저상에서 실행하고 복수의 PC에 버그 탐지 작업을 배포, 실행할 수 있다는 점이다.

호프만은 직토가 웹상에 공통된 여러 보안상의 허점들을 찾아내고 이를 공격자에게 보고하여 어떤 사이트를 공격하고 어떤 취약점들을 찾아내야 할지에 대한 지령을 받을 수 있다.

예를 들면 유수의 은행들이 운영하는 인터넷 뱅킹 웹 사이트들이 SQL 삽입과 관련하여 어떤 취약성을 가지고 있는지 찾아내도록 프로그래밍 할 수도 있는 것이다. 이러한 취약성들은 심각한 위험에 노출될 수 있으며, 데이터베이스를 해커들의 공격으로부터 무방비상태로 만들 수 있다.

이 툴은 자바스크립트를 이용한 해킹의 범위를 획기적으로 변화시켜준다.
-  직토 제작자 빌리 호프만
호프만은 "해킹하는 데 드는 시간의 절반은 사실 정보의 수집 및 분류에 소요된다. 해커들은 이제 이 작업을 다른 여러 사람들에게 대신 시킬 수 있는 것이다."라고 설명했다. 덧붙여 호프만은 직토가 침투해있는 웹사이트에 우연히 들른 웹 서퍼들을 이용해 사이트를 스캔하기 때문에 타깃이 된 웹사이트에서는 해커의 신원을 알아낼 수가 없게 된다고 말했다.

한편, 보안 업계에서 취약성 탐지에 널리 이용하는 「Nmap 시큐리티 스캐너(Nmap Security Scanner)」 의 제작자 표도르 바스코비치(Fyodor Vaskovich)는 직토는 어떻게 자바 스크립트가 악용될 수 있는지를 보여주는 흥미로운 예라고 할 수 있지만, 기존의 취약성 스캐닝 툴들은 훨씬 더 효율적이라고 말한다.

바스코비치는 "이미 손상된 PC를 스캔하는 해킹 프로그램에 비해 보통 자바스크립트 공격은 매우 속도가 느리다. 공격자를 감추고 스캐닝 작업을 제3자에게 배분한다는 것은 유용할 수도 있지만, 일반적으로 해커들은 법이 허용하는 한도 내에서 꽤 폭넓은 범위까지 취약성 스캔이 가능할 뿐 아니라 프록시 체인을 이용해 쉽게 이를 수행할 수 있다." 고 주장한다.

웹상에 널리 이용되는 스크립팅 언어인 자바스크립트로 제작되었기 때문에 직토는 대부분의 웹 브라우저에서 경고 없이 실행이 가능하다.

직토가 깔린 웹사이트를 방문하는 인터넷 유저들은 이를 전혀 알아챌 수 없을 것이다. 이 툴은 브라우저가 닫힐 때까지 실행되며, 브라우저가 닫히면 어떠한 흔적이나 피해를 남기지 않고 사라져버린다.

직토는 흔한 악성 도구인 봇이 타인의 PC를 조종하는 것과는 방식이 다르다. 보통 봇은 트로이 목마가 침투한 웹 브라우저나 이메일 메시지의 취약성을 이용해 PC를 손상시킨다. 패치가 깔린 브라우저를 사용하거나 이메일 관리를 똑똑하게 하고, 업데이트된 보안 소프트웨어를 사용하는 유저들은 봇 소프트웨어의 피해로부터 안전할 수 있다.

호프만은, "하지만, 직토나 다른 자바스크립트 기반의 해킹 프로그램의 경우, 이용자는 예방을 위해 별로 할 수 있는 게 없다. 트로이 목마 등을 몰래 침투시키지도 않고, 이용자의 컴퓨터 자체에는 어떠한 손상도 입히지 않는다. 그게 정말 무서운 것이다. 안티바이러스 프로그램도 별 도움이 안 된다." 라고 말했다.

웹 보안 전문가들은, 자바스크립트는 웹사이트가 수행할 수 있는 작업의 범위를 확대함으로써 문제를 야기하고 있는 「웹 2.0(Web 2.0)」의 붐의 일등공신이라고 할 수 있는데, 악성 자바스크립트, 특히 공용 웹사이트의 허점과 결합된 자바 스크립트는 잠복성 웹 해킹을 가능케 할 수 있다고 경고한다.

독자들이 이 글을 읽고 있는 바로 지금도 직토가 슬그머니 기어들어와 허점을 찾고 있을지도 모른다. 호프만은 취약점을 찾아 데이터를 빼돌릴 수 있는 직토의 다음 버전을 연구 중이다. 호프만에 따르면 아마도 올 여름 라스베거스에서 있을 블랙 햇(Black Hat) 보안 컨퍼런스에서 이 차기 버전이 선보이게 될 것이라고 한다.
2007/03/23 09:11 2007/03/23 09:11

Visual Studio 2005 IDE 팁과 트릭

 

출처 : http://www.microsoft.com/korea/msdn/library/ko-kr/bb245788(vs.80).aspx

James Lau
Microsoft 프로그램 관리자

2007년 2월

적용 대상: Microsoft Visual Studio 2005

요약: 개발자 도구 중에 가장 인기 있는 Visual Studio 2005를 더욱 효과적으로 활용할 수 있는 몇 가지 팁과 트릭을 소개하고자 합니다. 어떤 도구든 최대한 활용하려면 익숙해지는 것이 중요한데, 개발 도구와 IDE 역시 다르지 않습니다. 그러나 C# 2.0, ASP .NET 2.0, Windows Workflow Foundation, Windows Presentation Foundation, Windows Communication Foundation과 같은 신기술이 쏟아져 나오므로 정작 Visual Studio를 익힐 시간을 내기가 어렵습니다. 10분 정도만 시간을 내어 이 기사를 읽고 Visual Studio를 보다 즐겁고 생산적으로 사용할 수 있는 유용한 정보를 얻기 바랍니다.

목차


유용한 바로 가기 키

필자가 자주 사용하는 바로 가기 키

Visual Studio에서 프로그램을 개발할 때 키보드만 사용하면 더 편할 거라고 생각한 적이 있으십니까? 고급 사용자라면 분명히 키보드 바로 가기 키를 자주 사용하여 여러 가지 작업을 보다 빠르게 수행할 것입니다. 독자들도 대부분 Debug.Start를 실행하는 F5 키, Debug.StepOver를 실행하는 F10 키, View.Properties를 실행하는 F4 키 등에는 이미 익숙할 것이라 생각합니다. 그러나 그 밖에도 잘 알려져 있지 않았지만 유용한 바로 가기 키가 몇 가지 있습니다. 아래 표에는 필자가 자주 사용하는 몇 가지 바로 가기 키가 나와 있습니다.

바로 가기 키 설명
F7 디자인 보기와 코드 보기 사이를 전환합니다.
F9 중단점을 설정하거나 해제합니다.
F12 변수, 개체 또는 함수의 정의로 이동합니다.
Ctrl+Shift+7

Ctrl+Shift+8

정의로 이동 스택에서 앞/뒤로 빠르게 이동합니다.
Shift+F12 함수나 변수의 참조를 모두 찾습니다.
Ctrl+M, Ctrl+M 편집기에서 코드 개요를 확장하거나 축소합니다.
Ctrl+K, Ctrl+C

Ctrl+K, Ctrl+U

코드 줄에 주석을 추가하거나 제거합니다.
Shift+Alt+Enter 전체 화면 모드와 표준 모드 사이를 전환합니다.
Ctrl+I 증분 검색을 실행합니다.


바로 가기 키 참조표 만들기

대부분의 사람들이 모르고 있지만 사실 Visual Studio에는 450개가 넘는 기본 바로 가기 키가 있습니다. 그러나 Visual Studio의 모든 바로 가기 키를 손쉽게 찾을 수 있는 방법은 없습니다. 모든 바로 가기 키를 열거하는 간단한 매크로를 작성하면 기본 바로 가기 키를 모두 찾아볼 수 있습니다. 다음(코드 1)은 이러한 기능을 수행하는 코드입니다.

Public Module Module1

    Public Sub ListShortcutsInHTML()

        'Declare a StreamWriter
        Dim sw As System.IO.StreamWriter
        sw = New StreamWriter("c:\\demo\\Shortcuts.html")

        'Write the beginning HTML
        WriteHTMLStart(sw)

        ' Add a row for each keyboard shortcut
        For Each c As Command In DTE.Commands
            If c.Name <> "" Then
                Dim bindings As System.Array
                bindings = CType(c.Bindings, System.Array)
                For i As Integer = 0 To bindings.Length - 1
                    sw.WriteLine("<tr>")
                    sw.WriteLine("<td>" + c.Name + "</td>")
                    sw.WriteLine("<td>" + bindings(i) + "</td>")
                    sw.WriteLine("</tr>")
                Next

            End If
        Next

        'Write the end HTML
        WriteHTMLEnd(sw)

        'Flush and close the stream
        sw.Flush()
        sw.Close()
    End Sub
Public Sub WriteHTMLStart(ByVal sw As System.IO.StreamWriter)
        sw.WriteLine("<html>")
        sw.WriteLine("<head>")
        sw.WriteLine("<title>")

        sw.WriteLine("Visual Studio Keyboard Shortcuts")
        sw.WriteLine("</title>")
        sw.WriteLine("</head>")

        sw.WriteLine("<body>")
        sw.WriteLine("<h1>Visual Studio 2005 Keyboard Shortcuts</h1>")
        sw.WriteLine("<font size=""2"" face=""Verdana"">")
        sw.WriteLine("<table border=""1"">")
        sw.WriteLine("<tr BGCOLOR=""#018FFF""><td 
align=""center""><b>Command</b></td><td 
align=""center""><b>Shortcut</b></td></tr>")


    End Sub

    Public Sub WriteHTMLEnd(ByVal sw As System.IO.StreamWriter)
        sw.WriteLine("</table>")
        sw.WriteLine("</font>")
        sw.WriteLine("</body>")
        sw.WriteLine("</html>")
    End Sub

End Module

코드 1. HTML로 바로 가기 키를 생성하는 매크로

이 매크로를 사용하려면 도구에서 매크로를 선택한 다음 매크로 IDE. . .를 선택하여 매크로 IDE를 실행합니다. MyMacros 프로젝트, MyMacros 네임스페이스를 차례로 확장한 다음 Module1을 두 번 클릭합니다. 코드 1을 매크로 IDE에 복사하고 매크로를 실행하기만 하면 됩니다. 매크로를 실행하고 나면 Visual Studio에 사용할 바로 가기 키 참조가 생성됩니다. 결과물인 C:\demo\Shortcuts.html을 열어 보십시오. 그림 1은 이 페이지의 일부입니다. 페이지를 인쇄하여 컴퓨터 옆에 붙여 두고 바로 가기 키를 익혀 보십시오.

그림 1. Visual Studio 2005 바로 가기 키 목록의 일부


바로 가기 키 사용자 지정

기본적으로 매핑되어 있지 않은 바로 가기 키도 언제든지도구 > 옵션... > 환경 > 키보드 메뉴를 통해 사용자 지정할 수 있습니다(그림 2 참조). 그러나 많은 수의 바로 가기 키를 추가하는 경우에는 자동 저장 설정 파일을 직접 편집하는 방법으로 추가하는 편이 더 쉽습니다. 이 방법을 사용하려면 다음 단계를 수행하십시오.

그림 2. 옵션 대화 상자 - 바로 가기 키 사용자 지정

1단계: 현재 바로 가기 키를 내보냅니다. 도구 > 설정 가져오기 및 내보내기. . .로 이동하여 가져오기/내보내기 설정 마법사를 시작합니다. "선택한 환경 설정 내보내기"를 선택하고 다음을 클릭합니다. "모든 설정"을 클릭하여 모든 확인란의 선택을 취소한 다음 옵션, 환경 노드를 차례로 확장하여 "키보드" 확인란을 선택합니다(그림 3). 다음을 클릭하여 마법사의 마지막 페이지로 이동합니다. 새 설정 파일의 이름을 "MyKeyboardShorcuts.vssettings"로 지정하고 경로는 기본 디렉터리로 둡니다(그림 4). 마침을 클릭합니다..

그림 3. 내보낼 키보드 설정 범주만 선택


그림 4. 설정 파일 이름을 MyKeyboardShortcuts.vssettings로 변경

2단계: 설정 파일을 열어 편집합니다. 이 파일은 My Documents\Visual Studio 2005\Settings\MyKeyboardShortcuts.vssettings에 있습니다. Visual Studio 설정 파일은 XML 파일이므로 아무 텍스트 편집기에서나 열 수 있습니다. 하지만 구문 색 지정 기능과 문서 서식 지정 기능을 사용할 수 있도록 Visual Studio 자체에서 이 파일을 여는 것이 좋습니다. 파일을 연 후에는 "Ctrl+K, Ctrl+D"를 눌러 Visual Studio가 서식을 자동으로 지정하도록 합니다. 그런 다음 <UserShortcuts> 태그를 찾습니다. 이 XML 요소에 자신만의 바로 가기 목록을 추가할 수 있습니다. 아래 코드 2에서 예를 볼 수 있습니다.

...
<UserShortcuts>
   <Shortcut Command="View.CommandWindow" Scope="Global">
Ctrl+W, Ctrl+C
</Shortcut>
   <Shortcut Command="View.SolutionExplorer" Scope="Global">
Ctrl+W, Ctrl+S
</Shortcut>
   <Shortcut Command="View.ErrorList" Scope="Global">
Ctrl+W, Ctrl+E
</Shortcut>
   <Shortcut Command="View.TaskList" Scope="Global">
Ctrl+W, Ctrl+T
</Shortcut>
   <Shortcut Command="View.Output" Scope="Global">
Ctrl+W, Ctrl+O
</Shortcut>
</UserShortcuts>
...

코드 2. 설정 파일에 바로 가기 직접 추가

이 예의 XML은 이해하기 쉽습니다. 추가하려는 각 바로 가기에 대한 <Shortcut> 요소가 있을 뿐입니다. 바로 가기 자체를 이 요소의 내용으로 지정하고 Shift, Ctrl, Alt 등의 한정자 키를 "+" 문자로 연결하여 함께 사용할 수 있습니다(예: Ctrl+Alt+J). Command 특성에는 바로 가기에 바인딩할 명령의 정식 명령 이름을 지정합니다. Scope 특성은 거의 항상 Global로 사용되므로 이에 대해서는 자세히 다루지 않겠습니다. 이 과정에서 가장 어려운 부분은 아마도 특정 명령의 정식 이름을 알아내는 부분일 것입니다. 명령의 정식 이름은 최상위 메뉴 이름과 "." 문자, 그리고 공백 없이 대/소문자가 섞인 명령 이름이 연결된 형식입니다.

바로 가기를 모두 추가한 후 파일을 저장합니다.

3단계: 설정 파일을 가져옵니다. 설정 파일에 바로 가기를 추가했으므로 이제 사용 환경으로 다시 가져올 수 있습니다. 물론 설정 파일을 다른 사람과 공유할 수도 있습니다. 설정 가져오기 및 내보내기 마법사를 다시 시작하되, 이번에는 "선택한 환경 설정 가져오기"를 선택하고 다음을 클릭합니다. "아니요, 새 설정을 가져와 현재 설정을 덮어씁니다."를 선택하고 다음을 클릭합니다. "My Settings" 폴더에서 "MyKeyboardShortcuts.vssettings"를 선택하고 다음을 클릭합니다. 기본 선택 항목을 그대로 두고 마침을 클릭합니다.


도구 설명에 바로 가기 표시

도구 모음의 명령 위로 마우스를 이동할 때 도구 설명에 바로 가기가 표시되도록 환경을 설정할 수 있습니다. 도구 > 사용자 지정. . .에서 스크린 팁에 바로 가기 키 표시 옵션이 선택되어 있는지 확인합니다.

그림 5. 도구 설명에 바로 가기 키 표시 옵션 설정


창 레이아웃 선택기

Visual Studio는 여러 가지 작업과 용도에 사용되는 다양한 도구 창을 제공하는 강력한 환경입니다. 특히 VS 2005에서 새로 제공되는 Team System 기능이 이러한 측면을 잘 보여 줍니다. 많은 사용자들이 현재 수행 중인 작업에 맞게 여러 창 레이아웃 사이를 신속하게 전환할 수 있는 기능이 있으면 좋겠다는 의견을 전해 왔는데, 사실 VS 2005에서 직접 이 기능을 구현할 수 있지만 이를 위해서는 다음과 같은 단계를 수행해야 합니다.

1단계. 설정 파일을 만듭니다. Visual Studio 2005에는 사용자가 환경 설정을 가져오거나 내보낼 수 있는 새로운 기능이 있습니다. 환경에서 사용자 지정할 수 있는 항목은 거의 모두 파일로 내보내 다른 사람과 공유하거나 다른 컴퓨터로 가져오거나 백업 파일로 저장할 수 있습니다. 가져오거나 내보낼 수 있는 설정에는 창 레이아웃, 바로 가기 키, 메뉴 사용자 지정, 글꼴 및 색, 그리고 옵션 대화 상자(도구 > 옵션. . . )의 설정 대부분이 포함됩니다. 또한 언제든지 필요에 따라 환경 설정을 모두 내보내거나 일부만 내보낼 수 있습니다.

창 선택기를 만드는 첫 단계는 사용하려는 각 창 레이아웃마다 별도의 설정 파일을 만드는 것입니다. 이 예제에서는 사용할 3개의 창 레이아웃에 해당하는 CodeWriting, CodeBrowsing 및 FormsDesign이라는 3개의 설정 파일을 만듭니다.

먼저 코드를 작성할 때 선호하는 형태로 창 레이아웃을 배치합니다. 필자의 경우 도구 창을 모두 자동 숨김 모드로 설정하여 코딩 공간을 최대한 확보한 상태로 작업할 때가 많습니다. 그림 6은 필자가 이러한 창 레이아웃에 맞게 도구 창을 어떻게 배치했는지 보여 줍니다. 각자 선호하는 방식대로 수정하여 사용하면 됩니다. 다음으로 도구 > 설정 가져오기 및 내보내기로 이동하여 설정 가져오기 및 내보내기 마법사를 시작합니다. 선택한 환경 설정 내보내기를 선택하고 다음을 클릭합니다. 창 레이아웃 확인란만 선택하고 다음을 클릭합니다. 설정 이름을 CodeWritingWinLayout.vssettings로 지정하고 마침을 클릭합니다. 필요한 세 가지 설정 파일 중 첫 번째 파일을 만들었습니다. 위 단계를 반복하여 나머지 두 가지 설정 파일을 만듭니다. 물론 창 레이아웃을 변경하고 파일 이름을 서로 다르게 지정해야 합니다. 필자의 경우 CodeBrowsingWinLayout.vssettingsFormsDesignWinLayout.vssettings로 지정했습니다.

큰 이미지를 보려면 클릭하십시오.

그림 6. 코딩 작업에 적합한 창 레이아웃(큰 이미지를 보려면 클릭하십시오.)

2단계. 설정 파일을 가져오는 매크로를 만듭니다. 설정 파일을 만든 후에는 각 설정 파일을 가져오는 매크로를 3개 만들어야 합니다. 아래 코드 3을 보면 이 코드가 얼마나 간단한지 알 수 있습니다.

Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports System.IO

Public Module Module1

  Public Sub ImportWinLayoutCodeWriting()
    DTE.ExecuteCommand("Tools.ImportandExportSettings",
    "-import:c:\demo\settings\CodeWritingWinLayout.vssettings")
  End Sub

  Public Sub ImportWinLayoutCodeBrowsing()
    DTE.ExecuteCommand("Tools.ImportandExportSettings",
    "-import:c:\demo\settings\CodeBrowsingWinLayout.vssettings")
  End Sub

  Public Sub ImportWinLayoutFormsDesign()
    DTE.ExecuteCommand("Tools.ImportandExportSettings",
    "-import:c:\demo\settings\FormsDesignWinLayout.vssettings")
End Sub

End Module

코드 3. 설정 파일을 가져오는 매크로 코드

3단계. 도구 모음에 단추를 추가합니다. 이제 창 레이아웃을 변경하는 실제 단추를 만들어야 합니다. 도구 > 사용자 지정. . .을 차례로 클릭하고 명령 탭을 클릭합니다. 범주 목록 상자에서 매크로를 선택한 다음 목록을 아래로 스크롤하여 방금 작성한 세 가지 매크로를 찾습니다. 이 세 개의 매크로는 각각 MyMacros.Module1.ImportWinLayoutCodeWriting, MyMacros.Module1.ImportWinLayoutCodeBrowsing, 및 MyMacros.Module1.ImportWinLayoutFormsDesign으로 표시됩니다(그림 7 참조). 각 명령을 클릭하여 Visual Studio 도구 모음으로 끌어 놓습니다. 이제 도구 모음에 새로 추가한 명령을 마우스 오른쪽 단추로 클릭하고 명령의 이름을 좀 더 간단하게 바꿉니다.

그림 7. 사용자 지정 대화 상자를 사용하여 도구 모음에 매크로 추가

사용자 지정 대화 상자를 닫아 사용자 지정 내용을 저장합니다. 이제 여러분만의 창 레이아웃 선택기가 완성되었습니다. 도구 모음에서 새 단추를 클릭하여 사용해 보십시오. 도구 > 옵션. . . > 환경 > 키보드 페이지로 이동하여 이 명령에 바로 가기 키를 할당할 수도 있습니다..


코드 조각

코드 조각은 Visual Studio 2005에 새로 추가된 생산성을 크게 향상시키는 기능 중 하나로, 이를 통해 for 루프 입력과 같은 지루한 입력 작업 없이 코드 조각을 빠르게 추가할 수 있습니다. 또한 이 기능은 네트워크로 데이터를 전송하는 등의 특정 작업을 수행하는 방법을 보여 주는 템플릿을 제공합니다. 기본 제공 C# 조각은 대부분 반복적인 입력 작업을 최소화하는 데 도움이 되는 첫 번째 유형이고, 기본 제공 VB 조각은 대부분 특정 작업에 대한 코드를 보다 쉽게 작성할 수 있게 해 주는 두 번째 유형입니다.

코드 조각은 두 가지 방법으로 삽입할 수 있습니다. 코드 편집기에 코드 조각의 별칭을 입력하고 Tab 키를 두 번(VB의 경우 한 번) 누르면 코드 조각을 바로 삽입할 수 있습니다. 코드 조각을 삽입한 후에는 Tab 키와 Shift+Tab을 눌러 코드 조각의 여러 필드로 이동할 수 있습니다. 이 기능을 사용하면 수정이 필요한 코드 부분을 신속하게 변경할 수 있습니다. C#의 코드 조각 별칭에는 IntelliSense도 지원됩니다. IntelliSense 목록에서는 코드 조각 아이콘을 통해 코드 조각 항목을 구별할 수 있습니다.

그림 8. 코드 조각을 완벽하게 지원하는 IntelliSense

코드 조각을 삽입할 때 코드 조각의 별칭이 기억나지 않는 경우에는 코드 편집기에서 "Ctrl+K, Ctrl+X"를 누르거나 마우스 오른쪽 단추를 누르고 코드 조각 삽입...을 선택하면 됩니다. 그러면 코드 조각 선택기가 표시되며, 여기에서 현재 프로그래밍 언어에 사용할 수 있는 모든 코드 조각을 탐색하고 삽입할 코드 조각을 선택할 수 있습니다. 이 코드 조각 삽입 방법은 C#과 Visual Basic에서 모두 사용할 수 있습니다. Visual Basic 사용자는 이 방법 외에도 코드 조각 별칭의 앞부분 몇 글자와 "?"를 입력한 다음 Tab 키를 눌러 코드 조각을 삽입할 수도 있습니다. 그러면 모든 코드 조각 별칭이 사전순으로 나열된 목록이 표시되며 입력 항목과 가장 근접한 코드 조각 별칭이 강조 표시됩니다. 이 기능은 Visual Basic 사용자에게만 제공됩니다.

큰 이미지를 보려면 클릭하십시오.

그림 9. C#에서 코드 조각 삽입(큰 이미지를 보려면 클릭하십시오.)

필자는 코드 조각 기능에서 가장 흥미로운 부분은 자신만의 코드 조각을 만들어 개인적으로 사용하거나 커뮤니티와 공유할 수 있는 점이라고 생각합니다. 물론 다른 개발자가 만든 코드 조각을 다운로드할 수도 있습니다.

Visual Studio에서 손쉽게 자신만의 코드 조각을 만들 수 있습니다. 자세한 방법은 예제를 통해 살펴보도록 하겠습니다. 필자는 작업에 도움이 될 만한 간단한 유틸리티를 자주 작성합니다. 이러한 유틸리티 중 상당수는 파일을 열고 몇 가지 처리 작업을 수행한 후 파일을 닫는 공통적인 패턴을 가집니다. 필자가 코드 조각을 만드는 방법은 다음과 같습니다.

1단계: XML 파일을 만듭니다. 각 코드 조각은 XML 파일에 들어 있습니다. Visual Studio에서 파일 > 새로 만들기. . . > 파일. . .로 이동한 다음 XML 파일 형식을 선택합니다.

그림 10. 새 XML 파일 만들기

2단계: 코드 조각을 정의합니다. 흥미롭게도 코드 조각을 만들기 위한 코드 조각도 있습니다. 파일의 둘째 줄에서 Ctrl+K, Ctrl+X를 누르고 Snippet 코드 조각을 선택하면 코드 조각 파일의 템플릿이 자동으로 삽입됩니다.

큰 이미지를 보려면 클릭하십시오.

그림 11. XML 코드 조각을 사용하여 다른 코드 조각 만들기(큰 이미지를 보려면 클릭하십시오.)

제목, 만든 이, 바로 가기 및 설명 필드는 이름만으로도 쉽게 이해할 수 있으므로 자세히 설명하지 않겠습니다. <Snippet> 태그 내의 내용에 대해서는 설명이 필요한데, 아래 예제를 살펴보는 편이 가장 이해가 빠를 것입니다.

기본적으로 </Code> 태그 내에 있는 <![CDATA[...]]> 태그에 모든 코드를 삽입하게 됩니다. 사용자가 쉽게 필드를 바꿀 수 있도록 하려면 해당 필드를 "$" 문자 한 쌍으로 감싸면 됩니다. 아래의 예제에서는 코드 조각 사용자가 StrmReader, FilePath, Line의 세 가지 리터럴을 쉽게 바꿀 수 있도록 했습니다. 이 세 가지 리터럴은 CDATA 섹션 내에서 "$" 문자 쌍과 함께 사용되었습니다. 또한 이 세 개의 리터럴은 <Declarations> 요소 내에 각각 정의해야 합니다. 각 리터럴에는 ID와 기본값(옵션)을 지정합니다.

예리한 독자는 코드 조각에 $end$라는 정의되지 않은 리터럴이 있다는 점을 알아차렸을 것입니다. 이 리터럴은 사용자가 코드 조각 필드를 모두 채운 후에 Enter 키를 눌렀을 때 커서의 위치를 지정하는 특수 리터럴입니다. 예제에는 나와 있지 않지만 $selected$라는 특수 리터럴도 있습니다. $selected$ 리터럴은 코드 조각이 SurroundsWith 유형인 경우에만 의미가 있으며 코드 감싸기...를 사용하여 이러한 유형의 코드 조각을 삽입했을 때 선택한 코드 조각이 들어갈 위치를 정의합니다.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <Title>File Processing</Title>
    <Author>James Lau</Author>
    <Shortcut>fp</Shortcut>
    <Description>Opens a file, does some processing, and then closes the file.</Description>
    <SnippetTypes>
      <SnippetType>SurroundsWith</SnippetType>
      <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
      <Literal>
        <ID>StrmReader</ID>
        <Default>strmReader</Default>
      </Literal>
      <Literal>
        <ID>FilePath</ID>
        <Default>fPath</Default>
      </Literal>
      <Literal>
        <ID>Line</ID>
        <Default>strLine</Default>
      </Literal>
    </Declarations>
    <Code Language="CSharp">
      <![CDATA[         
   StreamReader $StrmReader$ = null;
   try
   {
      $StrmReader$ = new StreamReader($FilePath$);
      string $Line$;
      while (($Line$ = $StrmReader$.ReadLine()) != null)
      {
         // Perform some processing
         $selected$
         $end$
      }
   }
   catch (IOException ioex)
   {
      // Handle exception
   }
   finally
   {
      $StrmReader$.Close();
   }
    ]]>
    </Code>
  </Snippet>
</CodeSnippet>

코드 4. 샘플 코드 조각 내용


Visual Studio 시작 페이지 사용자 지정

Visual Studio 2005의 새로운 시작 페이지에는 MSDN 뉴스의 최신 정보를 제공하는 라이브 RSS 피드 외에 다른 기능도 포함되어 있습니다. 시작 페이지에서 다른 RSS 피드를 읽으려는 경우 도구를 선택하고 옵션. . ., 환경을 차례로 선택한 다음 시작 페이지를 선택하여 시작 페이지 뉴스 채널에서 URL을 편집하는 방법으로 RSS 뉴스 채널을 사용자 지정할 수 있습니다. Visual Studio를 실행할 때마다 자동으로 시작 페이지가 표시되지 않도록 하려면 같은 옵션 페이지의 시작 시에서 빈 환경 표시를 선택하여 이 동작을 변경하면 됩니다.


팀 설정

Visual Studio 2005에는 팀 설정이라는 잘 알려지지 않은 새로운 기능이 있습니다. 대부분의 개발자는 팀 환경에서 작업하는데, 이 경우 팀 설정 기능을 사용하면 보다 빠르게 팀 코딩 규칙을 적용하거나 Visual Studio를 설정할 수 있습니다.

팀 내에 코드 서식에 대한 기본 규칙 집합을 적용하려는 경우를 가정해 봅시다. 규칙을 지정하고 각 팀원이 해당 규칙에 맞게 IDE 옵션을 사용자 지정하도록 하는 대신 설정 파일을 만든 다음 팀원이 이 파일을 가리키도록 하면 간단히 해결됩니다. 팀 설정 파일이 업데이트되면 사용자가 다음 번 Visual Studio를 시작할 때 설정 파일이 자동으로 기존 설정을 덮어 씁니다. 이 기능을 활용하는 방법은 다음과 같습니다.

1단계: 설정 파일을 만듭니다. 팀 설정을 사용하여 원하는 모든 IDE 사용자 지정 내용을 적용할 수 있습니다. 개발자가 팀 설정 기능을 사용하는 가장 일반적인 설정은 코드 서식 지정 설정이겠지만 글꼴 및 색, SourceSafe 설정, 바로 가기 키, 메뉴 사용자 지정 등 내보낼 수 있는 모든 Visual Studio 설정에 이 기능을 사용할 수 있습니다. Visual Studio에서 원하는 설정을 사용자 지정한 다음 도구 > 설정 가져오기 및 내보내기. . .를 사용하여 알려진 위치로 내보내면 됩니다. 이때 다른 팀원과 공유하려는 설정 집합만 내보내는 것이 중요합니다.

2단계: UNC 경로에 설정 파일을 넣습니다. 팀원이 액세스할 수 있는 네트워크 경로에 1단계에서 내보낸 설정 파일을 복사합니다. 필자의 경우 \\jameslau\public\teamsettings.settings에서 팀 설정 파일을 공유했습니다.

3단계: 팀 설정 경로를 변경합니다. 팀원이 팀 설정 경로를 변경하여 팀 설정 파일을 가리키도록 합니다. 이 작업은 도구 > 옵션. . . > 환경 > 설정 가져오기 및 내보내기에서 수행할 수 있습니다. 팀 설정 파일 사용 확인란을 선택하고 팀 설정 파일의 경로를 지정하면 됩니다.

그림 12. 팀 설정 경로를 변경할 수 있는 옵션 대화 상자


/resetuserdata 스위치

필자가 소개할 마지막 팁은 /resetuserdata 스위치와 관련이 있습니다. 이 스위치는 Visual Studio가 복구할 수 없는 상태로 손상되었을 때 Visual Studio를 기본 상태로 재설정하는 데 사용됩니다. 이러한 문제의 예로는 창 레이아웃 파일 손상, 메뉴 사용자 지정 파일 손상 또는 바로 가기 키 파일 손상 등이 있습니다. 책임의 부인: 이 스위치를 사용하면 모든 환경 설정 및 사용자 지정이 손실됩니다. 따라서 이 스위치는 공식적으로 지원되지 않으며 Microsoft에서도 이 스위치를 공개적으로 알리지 않습니다. 즉, 명령 프롬프트에서 devenv.exe /?를 입력하더라도 이 스위치는 표시되지 않습니다. 이 스위치는 환경 문제가 발생한 경우 최후의 수단으로만 사용해야 하며, 스위치를 사용하는 경우 먼저 환경 설정을 내보내 백업해야 합니다.

이 스위치를 사용하려면 다음을 수행합니다.

  1. Visual Studio 2005의 인스턴스를 모두 종료합니다.
  2. 시작을 클릭하고 실행...을 선택합니다.
  3. "devenv.exe /resetuserdata"를 입력합니다.

이 명령을 사용하면 몇 분 동안 Visual Studio가 정리되고 처음 상태로 설정됩니다. 이때 작업 관리자를 열어 devenv.exe 프로세스가 실행 중인지 여부를 확인할 수 있습니다. 실행이 종료되면 Visual Studio를 다시 시작할 수 있습니다. 그러면 컴퓨터에서 Visual Studio를 처음으로 실행할 때처럼 처음 실행 대화 상자가 다시 표시됩니다.


결론

Microsoft는 Visual Studio에서 유용한 생산성 기능을 제공하기 위해 끊임없이 노력하고 있습니다. 여기에서 소개한 팁을 유용하게 사용하여 Visual Studio 고급 사용자가 될 수 있기를 바랍니다. Visual Studio IDE에 대한 의견이나 피드백 또는 제안 사항이 있는 경우 언제라도 jameslau@microsoft.com으로 연락하시기 바랍니다.

2007/03/20 17:30 2007/03/20 17:30

viso 로 도면 그리기~

etc 2007/03/20 12:49
메일 내용 발췌! 오피스 투어에서 보내준 메일 내용


주변에서 한번씩은 봄직한 설계 도면입니다.
위 설계도면이 Visio를 활용해 기려졌다면 믿으시겠습니까?

믿지 못하시겠다면, 지금부터 Visio가 들려주는
흥미로운 이야기에 귀 기울여 보세요~
비 전문가도 거침없이 설계 도면을 그려낼 수 있는 비법이 소개 됩니다.

Visio에는 설계를 위한 다양한 기능이 준비되어 있습니다. 템플릿 범주에 따른 확대/축소 범위의 변경, 페이지 설정에 있는 드로잉 배율 설정 및 설계 분야의 다양한 세이프를 제공하여 설계와 관련된 다양한 편의성을 제공 합니다.
이러한 기능은 기존의 오피스와는 확연히 구분되는 요소 이기 때문에 생소 할 수도 있지만, 설계 및 레이아웃의 변경, 측정에 있어 기존의 다른 오피스 프로그램에서는 할 수 없었던 기능을 제공 하는 것입니다.


[Visio의 시작 화면 – 템플릿 범주]

 

이사를 위해 집의 평수를 측정하거나, 사무실의 각 자산의 크기를 정확하게 측정하여 정확한 레이아웃을 제공 할 수도 있습니다. 또한 CAD에서만 가능 했던 설계에 관한 부분도 Visio를 통하여 사용 가능 합니다.
지금부터 Visio가 제공하는 설계 기능을 이용하여 집의 평면 설계를 직접 해 보도록 하겠습니다.

1. 템플릿 범주의 [지도 및 평면도]의 [집 설계]로 시작 합니다.

2. [파일]-[페이지 설정]-[드로잉 배율]에서 배율을 확인 합니다.

3. [벽, 골조] 스텐실의 [방], [벽] 도형을 사용하여 벽에 대한 설계를 구성 합니다.

벽의 양쪽 끝에 있는 연결점을 다른 도형의 벽으로 가져 가면 상황 별 풍선 도움말이 나타나는 것을 확인하여 조절 하면 각각의 도형이 서로 정확하게 일치 하도록 조절 할 수 있습니다.

4. [벽을 이용하여] 원하는 대로 설계를 합니다.

[보기 – 크기/위치 창] 메뉴를 사용하면 각 크기를 직접 입력하여 정확하게 조절 할 수 있습니다.

5. [문] 도형을 벽에 추가 하여 방에 문을 만들고, 크기를 조절 합니다.

문을 추가 할 때 벽에 맞추어 벽을 돌릴 필요가 없습니다. 설계에 관련한 대부분의 도형은 벽의 가로, 세로 방향을 인지 하여 자동으로 설정 됩니다.

6. [창] 도형을 추가 하여 방에 창을 만들고, 크기를 조절 합니다.

7. 가구에 관련한 여러 스텐실을 이용하여 원하는 위치에 도형을 추가 합니다.

8. [공간] 도형을 방에 추가하고, 마우스 오른쪽 버튼을 눌러 [자동으로 크기 조정]을 사용 합니다.

9. 모든 방에 같은 작업을 반복 하여 면적을 측정 합니다.

10. [치수 측정 – 공학]에 있는 도형을 사용하여 원하는 부분의 측정선을 추가 합니다.

[측정]에 관한 도형은 [정밀도 및 단위]라는 옵션을 사용하여 원하는 단위와 정밀도를 적용 할 수 있습니다.

11. 텍스트 서식을 조절 하여 정보를 보기 좋게 구성 합니다.


[참고] 기능에 대한 이해

설계에 관해서 Visio를 사용 할 때는 아래와 같은 간단한 사항들을 기억하면 더 쉽게 설계를 할 수 있습니다.

1. 템플릿 범주에 따라 확대/축소 배율의 범위가 달라진다.

Visio는 어떤 범주로 시작하는 가에 따라 확대 축소 배율의 한계 값이 달라 집니다.
Visio를 시작 하여 지도 및 평면도 범주의 단지 계획으로 최대 200000%까지 확대가 가능 하지만, 일반적인 다른 범주는 2915% 까지만 확대 됩니다. 확대에 관한 최대 범위는 H/W에 따라 달라 질 수 있습니다.

확대 축소와 관련 하여 몇 가지 단축키를 기억 하면 더욱 빠르게 편집이 가능 합니다.

Ctrl+마우스 휠 돌리기 화면 확대/축소
Crtl+W 작업 화면 전체 화면에 보여 주기
마우스 휠 돌리기 화면 아래/위 이동
Shift+마우스 휠 돌리기 화면 좌/우 이동

2. 확대 할수록 더 세밀하게 편집이 가능 합니다.

확대가 가지는 의미는 더욱더 정밀하게 볼 수 있다는 것뿐만이 아니라 한가지의 의미를 더 가지고 있습니다. 그것을 바로 확대가 될수록 도형을 더욱 세밀하게 조절 할 수 있다는 것 입니다. 물론 확대가 된 상태에서 마우스로 조절 하기란 매우 어렵습니다. 하지만 키보드 화살표 키를 사용 하면 확대 된 상태에서는 더욱 세밀 하게 움직이므로 정확한 조절 가능 합니다.

도형 선택 후 화살표

도형을 이동
[확대 비율에 따라 이동 간격이 달라짐]

3. 아주 정확하게 하고 싶을 때는 크기 및 위치 창을 사용 하시면 됩니다.

마우스를 이용한 도형의 조절은 쉽다는 반면에 정확한 조절이 어렵습니다. 이럴 때에는 필수적으로 [크기 및 위치창]을 사용 하면 쉽게 원하는 크기, 위치, 각도를 조절 할 수 있으므로 매우 유용 합니다.

[크기 및 위치 창]을 보기 위해서는 [보기-크기/위치 장] 메뉴를 사용 하시면 됩니다.

[크기 및 위치 장 보기]

[크기 및 위치 창]

이와 함께 크기 및 위치 창은 아래와 같은 Tip 이 있습니다.

크기/위치 창

작업 화면에 추가 되는 모든 도형 및 개체의 세밀하고 정확한 조절이 가능


4. 배율을 숙지 하셔야 합니다.

설계 부분에 필수적인 사항으로는 드로잉 배율을 사용 할 수 있어야 합니다.
배율이 크면 클수록 기존에 추가된 도형은 더욱 작게 보이고, 확대 배율의 범위가 늘어 납니다.

[페이지 설정의 드로잉 배율]

확대/축소에 관한 예로 1:10 배율에서 10cm의 도형을 그렸다면 이를 출력시에 10배 확대 하여 출력 하여 실제 자를 이용하여 측정하면 10cm 인 것을 확인 할 수 있습니다.

확대 출력은 방법은 아래의 Tip을 확인 하시기 바랍니다.

배율의 조절 화면 크기의 조절
즉, 작업 화면이 부족한 경우 도형을 축소 하는 것 보다 배율을 조절 하여 전체적인 크기를 일괄 조절 하는 것이 효과적
페이지 설정 – 인쇄 설정 – 자동 맞춤 자동 맞춤의 용이 너비/용지 높이의 조절을 통해 출력시 확대 축소를 쉽게 조절 할 수 있다.
확대 출력 하는 경우 각 장에 출력 되는 가장 자리 부분은 서로 겹쳐 지게 출력되어 쉽게 이어 붙일 수 있도록 출력 됩니다.


5. 설계에 관한 도형의 특수한 도형의 속성을 기억 하셔야 합니다.

Visio의 가장 큰 장점은 필요한 도형들은 미리 그려져 있다는 것과 그 도형을 중의 일 부분은 자동화된 기능을 가지고 있다는 겁니다. 물론 설계 부분도 예외는 아닙니다.

설계를 정확하게 할 수 있는 요소는 바로 측정 이라는 요소 입니다. 이러한 측정 도형은 아래와 같은 도형들이 있습니다.

[그리기 도구 스텐실]

[치수 측정 – 공학] 스텐실

측정과 치수 관련 도형을 사용 하면 쉽게 각 부분의 크기를 알 수 있습니다.
이중에서 가로 혹은 세로 라고 되어 있는 도형은 어떤 상황에서도 대각선의 길이가 아는 각각 가로 세로의 길이만을 측정하므로 특수한 용도에 사용 할 수 있습니다.

치수 스텐실

도형을 추가 하고 마우스 오른쪽 버튼으로 여러 가지 속성을 조절 할 수 있습니다.

6. 벽 및 골조라는 가장 기본 적인 스텐실이 기본이 됩니다.

건물 설계에 있어 벽이라는 요소는 설계의 기준점이 되는 매우 중요한 요소 입니다. 이에 설계에 가장 기본적인 방법으로 [벽 및 골조] 스텐실을 사용하여 설계의 기본을 잡아 주셔야 합니다.

[벽 및 골조]

방이라는 도형이 먼저 추가 되고 이후에 각 기능별 세이프가 추가 되면 회전 할 필요 없이 상황에 방의 벽 부분에 추가 됩니다. 또한 공간 이라는 도형은 방이라는 도형 안에 추가 하고 마우스 오른쪽 버튼을 눌러 추가 합니다.

7. 예제 파일을 사용 하면 쉽게 테스트 할 수 있습니다.

프로그램이 설치 될 때 같이 설치 되는 예제 파일의 위치는 아래와 같습니다.

예제 파일

C:\Program Files\Microsoft Office\Office12\SAMPLES\1042

이 중에서 설계 관련 부분의 아래의 예제 파일을 사용 할 수 있습니다.

BLDGPLAN.DWG 사무실 설계 도면, CAD 파일
BLDGPLAN.JPG 사무실 설계 도면 그림 파일

BLOCKS.DWG

사무실 설계 도면, CAD 파일
2007/03/20 12:49 2007/03/20 12:49
Tags:
디지털 워터마킹(Digital Watermarking)
 기술요약


워터마킹이란?


워터마크(Watermark)란?

- 고대 이집트 파피루스를 만드는 과정에서 섬유질을 물에 풀었다가 압착하기 위해 틀을 사용하여 물을 뺐는데 이 과정에서 자연발생한 고유의 무늬를 지칭.
- 이후 직접 보이지는 않지만 원재료의 변화, 파손 없이 빛을 통해 확인할 수 있는 특수 문양을 지칭.

워터마킹(Watermarking)이란?

- 빛을 통해서만 확인할 수 있는 고유의, 특징있는 무늬를 삽입하는 모든 기술적 방법을 지칭.
- 중세 제지업자들 사이에서 자신의 고유 제품임을 나타내는 방법으로 종이에 마크를 삽입하는 것에서 유래되었으며, 현재 워터마킹이 가장 흔하게 쓰이고 있는 분야는 화폐제조분야.


디지털 워터마킹의 등장


아날로그에서 디지털로 시대가 변화함에 따라 많은 인쇄물들이 디지털화되어 인터넷을 통해 널리 이용되게 되었다. 이런 과정에서 저작물에 대한 무단 변경이나 무단 사용의 폐해가 속출하게 되었고 이를 막기 위한 방법의 하나로 "디지털 워터마킹"이 주목을 받게 된 것이다.

디지털 워터마킹이란?


- 디지털 멀티미디어 컨텐츠의 저작권 보호를 위해 특별한 형태의 워터마크를 디지털 멀티미디어 컨텐츠의 변화없이 삽입하고 추출하는 모든 기술적 방법을 지칭.

디지털 워터마킹의 기본특성

비인지성

원천 데이터에 워터마킹으로 인해 어떠한 형태의 인식할만한 손상이 일어나서는 안된다.

안전성

허가 받은 상태하에서만 워터마크에 대한 접근이 가능해야 한다.

강인성

워터마크를 제거하려는 어떠한 공격에도 남아 있어야 한다.


       
                            출처: 마크애니(www.markany.com)


디지털 워터마킹의 분류

디지털 워터마킹은 크게 물리적인 특성에 따라, 사용되는 저작물에 따라 대강 다음과 같은 분류가 일반적이다.

물리적 특성에 따른 분류

인지여부에 따른 분류

가시적

컨텐츠 저작권 소유자의 로고, 심볼 등을 워터마킹하여 이미지, 혹은 영상에 중첩시켜 놓음으로써 한 눈에 식별이 가능토록 하는 방법.

비가시적

사람의 육안으로 식별할 수 없는 워터마크를 디지털 컨텐츠내에 삽입하는 것으로 특별한 과정을 거치지 않으면 저작권 소유자를 판별하기 어렵다.


워터마킹 삽입 방법에 따른 분류

공간 영역 방법

이미지의 화소와 같은 원데이터 값을 직접 변경하여 워터마킹하는 방법으로 밝기 값의 변화가 급격한 경계부분에 있어 LSB(Least Significant Transform)값을 조작하는 것.

주파수 변환 방법

컨텐츠에 워터마크를 삽입할 때 FFT(Fast Fourier Transform)나 DCT(Discrete Cosine Transform), Wavelet 변형을 하는 것.


                 

워터마크 활용용도에 따른 분류

연성
워터마킹

원 저작물에 대한 약간의 변형에도 워터마크가 쉽게 사라지도록 함으로써 무결성 확보 및 위조, 변조를 방지하기 위해 사용된다. 즉, 변형된 부분의 워터마크가 사라짐으로써 어떤 형태의 위조, 변조가 가해졌는지 파악하기 쉽고, 법정에서 무결성을 주장하는 근거가 될 수 있다.

강성
워터마킹

원 저작물의 데이터를 파괴하지 않고서는 도저히 삽입된 워터마크를 없앨 수 없도록 하는 것으로 저작물의 원 소유자 확인 및 불법 제공자의 신원 확인 등에 사용될 수 있다.

저작물에 따른 분류

오디오 워터마킹

-마스킹 현상을 이용하여 청각적으로 들을 수 없는 부분에 워터마크를 삽입.
-인간의 청각은 시각보다 훨씬 민감하기에 영상 워터마킹에 비해 넣을 수 있는 정보량이 제한됨.

이미지 워터마킹

-GIF, JPEG, PDF 등 다양한 이미지 파일에 워터마크를 삽입.
-공간영역방법, 주파수 변환방법, 확산 스펙트럼 방법 등을 사용.
-디지털 이미지에 저작자, 배포자, 생성 날짜 등의 정보를 삽입.

비디오 워터마킹

-MPEG, AVI, RM 등 주로 동영상 파일에 워터마크를 삽입.
-공간영역방법, 주파수 변환방법 등이 많이 사용되며, 주파수 변환방법에서 사용되는 특정 함수로 DCT(Discrete Cosine Transform), Wavelet Transform, DFT(Discrete Fouirer Transform) 등을 많이 사용.

벡터 워터마킹

-게임개발을 위한 오브젝트 파일, CAD 파일 등과 같이 벡터 기반 2,3차원 이미지 파일에 보이지 않게 저작권 정보를 삽입.
-특정 중요 정보를 바이너리 형태로 변환하여 삽입.

텍스트 워터마킹

-HWP, DOC 파일에 저작권 정보를 삽입
-줄간격의 미세한 변화를 이용하는 Line-Shift Coding Method와 폰트의 미세한 변화를 이용하는 Font Coding Method 등이 있다.


워터마킹 소프트웨어와 기술

워터마크 내장기술

주요 프로세싱 특성

개발자 또는 연구기관

워터마크를 영상 위에 덮어씌운다.움

보이는 워타마크를 영상에 입힘으로써 워터마크의 삽입여부를 바로 확인할 수 있고 연산이 빠르다. 그러나 영상의 질을 크게 저하시킨다.

영상을 주파수 변환하여 최하위 비트에 워터마크를 삽입한다.

연산이 간단하나 일반적인 영상 변형에 매우 약하다.

특정파형이나 픽셀을 샘플링하여 워터마크를 부여한다.

영상을 여러 작은 블록으로 나누고, 각 블록에 워터마크를 삽입한다. 워터마크는 1과 -1의 랜덤 패턴을 갖는다.

디지마크

영상을 여러 작은 블록으로 나누고 각 블록에 워터마크를 삽입한다. 이 때 각 블록에 들어가는 워터마크는 각각 다르다.

하이워터 시그넘

큰 루미넌스를 갖는 픽셀 다음의 작은 루미넌스를 갖는 픽셀은 보여지지 않는 마스킹 효과를 이용하여 워터마크를 영상에 넣는다.

University Catholique de Louvain

사람의 시작 특성을 이용한 비주얼 마스킹을 이용하여 영상에 워터마크를 삽입한다.

PRINCETON

FFR, DCT를 통하여 주파수 변환한 후 주파수 성분에 워터마크를 부여한다.

영상을 DCT한 후 스프레드 스펙트럼 기술을 이용하여 주파수 성분에 워터마크를 내장한다.

NEC Research Insititute

워터마크로써 PN코드를 이용하고 스프레드 스펙트럼 기술을 이용한다.

National Defence Academy(일본)

JPEG 압축 과정을 이용해 워터마크를 내장한다.

프라운호퍼 컴퓨터 연구센터

Wavelet 변환을 이용하여 워터마크를 내장한다.

미쓰비시 일렉트릭 및 큐슈대학

기타

MPEG Motion vector에 워터마크를 내장한다.

쿄토공업기술 및 텍스타일 대학

글자 사이의 간격, 줄 사이의 간격, 글자 모양을 약간씩 조정하여 문서에 워터마크를 삽입한다.

Brassil

오디오 신호의 스펙트럼을 통해 워터마크를 만들어 Pre-filtering을 거친 후 오디오 신호에 워터마크를 삽입한다.

Holt


표준화 동향


일반적으로 워터마킹 기술의 표준화에 대한 논의와 작업은 주로 오디오를 중심으로 진행되어 왔다고 볼 수 있다. 이는 MP3 등으로 세계 주요 음반사들이 막대한 피해를 보게 되자 자신들의 저작권을 보호하기 위해 오디오 워터마킹 기술 개발에 자금을 지원하고 표준화에 대한 논의를 활발히 진전시키고 있기 때문이다.

이처럼 전세계적으로 워터마킹 표준화에 대한 논의가 이루어지고 있는 그룹으로는 크게 다음 세가지를 들 수 있다.

1) SDMI(Secure Digital Music Initiative)
: 디지털 형태의 음악 판매를 원활히 하기 위해 필요한 Open Technology Specification을 만들기 위해 전세계 주요 음반 및 가전, 정보통신 분야의 170여개 업체들이 참여한 컨소시엄으로 디지털 음악을 재생하는 휴대형 장치가 갖춰야할 규격을 애플리케이션 레이어, 드라이버 또는 LCM(Licensed Compliant Module)레이어, 휴대형 장치 레이어 등 3가지 분야로 나누어 제시하고 있다.

2) MPEG(Motion Picture Exper Group)
: 인터넷과 Digital Storage, Communication 등의 효율적 응용을 위해 멀티미디어 소스에 대한 부호화 방법을 체계적으로 연구하고 표준화하기 위한 ISO/IEC 기술자문위원회 산하 전문가 그룹.

3) STEP2000

: 디지털 워터마킹 기술을 기반으로 본격적인 디지털 음악 유통의 성공적인 실현을 위한 중요한 열쇠가 되는 국제 평가 프로젝트로서 디지털 워터마킹 기술의 능력을 인정하고 향후 이들 기술의 이용 증진에 목적을 두고 있다. 현재 평가결과 IBM,
Markany(한국), Victor Company of Japan, Signum, BlueSpike 등 5개사가 선정되었다.


 관련벤처


국내

마크애니
(www.markany.com)
: 국내 28건, 해외 8건의 특허를 기초로 각종 워터마킹 제품을 출시중이며, 국내 회사로 유일하게 STEP2000에서 5개 업체중 IBM에 이어 2위로 선정되는 등 워터마킹 분야에 특화되어 있음.

실트로닉(www.sealtronic.com)
: 디지털 컨텐츠 보안 전문업체로 현재 저작권 보호 관리 제품군과 위/변조 인증 제품군 등의 제품군을 중심으로 컨텐츠 보안 컨설팅 등 다양한 방향으로 사업을 전문화하고 있음. 특히 최근 산업자원부에서 부품소재 개발사업의 일환으로 추진중인 "디지털 워터마킹 칩 개발 프로젝트"를 수주.

컨텐츠 코리아(www.contents.co.kr)
: "Contents Guardian"이라는 워터마킹 제품을 출시하고 있으며, 디지털 컨텐츠 보호기술로 암호화 알고리즘을 이용한 디지털 워터마킹 시스템을 연구, 개발하고 있음.

디지트리얼(www.digitreal.com)
: Key Word 방식의 디지털 이미지 워터마킹 솔루션 "WaterStamp"를 출시.

 용어해설

마스킹 현상

음원내에 큰 소리가 있을 때 작은 소리는 큰 소리에 묻혀 잘 들리지 않게 되는 현상.


SDMI(Secure Digital Music Initiative)

디지털 음악의 보급 및 이와 관련된 보안 시스템의 개발을 위해 결성된 단체로 BMG 엔터테인먼트, 소니뮤직, 유니버설 뮤직 등 세계 5대 메이저 음반사를 비롯, 소니, 삼성, LG 등의 가전사와 에릭슨 등의 정보통신 업체들이 참가하고 있다.


STEP2000

디지털 워터마킹 기술을 기반으로 본격적인 디지털 음악 유통의 성공적인 실현을 위한 중요한 열쇠가 되는 국제 평가 프로젝트를 지칭하는 것으로 일본 저작권 협회와 국제 저작권 관리 단체인 프랑스의 CISAC, BIEM에 의해 실시되고 있음.


Anti-Watermarking

컨텐츠, 데이터에 삽입된 워터마크를 다양한 방법으로 공격하여 무력화시키는 것을 지칭하는 것으로 안티 워터마킹의 목표는 공격과 방어라는 구도에서 공격 부분의 역할을
수행함으로써 디지털 워터마크 기술의 발전을 도모하는 것임.




출처 : http://www.game.or.kr/tech/data/data/22_WATERM~1.HTM

2007/03/20 11:17 2007/03/20 11:17
Tags:

This is a protected post. Please enter the password to view the article.
이 글은 비밀글입니다. 글을 보시려면 비밀번호를 입력하세요.

본문내 검색!!

2007/03/16 10:17

This is a protected post. Please enter the password to view the article.
이 글은 비밀글입니다. 글을 보시려면 비밀번호를 입력하세요.

다운로드 시 참고

2007/03/16 10:16

This is a protected post. Please enter the password to view the article.
이 글은 비밀글입니다. 글을 보시려면 비밀번호를 입력하세요.