<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>WEBDIR</title>
    <link>https://webdir.tistory.com/</link>
    <description>개발자모드 ON, 부스터 디자인</description>
    <language>ko</language>
    <pubDate>Tue, 7 Apr 2026 22:08:45 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>흉내쟁이</managingEditor>
    <image>
      <title>WEBDIR</title>
      <url>https://t1.daumcdn.net/cfile/tistory/271E36395688CC6C35</url>
      <link>https://webdir.tistory.com</link>
    </image>
    <item>
      <title>PHP 문자열</title>
      <link>https://webdir.tistory.com/531</link>
      <description>&lt;p&gt;PHP에서 사용되는 문자열을 자세히 들여다보고, 관련된 규칙들을 살펴봅니다.&lt;/p&gt;

&lt;h3&gt;문자열(String)&lt;/h3&gt;
&lt;p&gt;문자들을 표현할때 사용하며, 메모리 공간의 제약이 없다. 즉, 문자열의 길이에 상관없이 제한 없는 문자열을 지원한다.&lt;/p&gt;
&lt;p&gt;문자열은 큰따옴표(&quot;), 작은따옴표('), 히어닥문법(Heredoc), 나우닥문법(Nowdoc)을 이용하여 할당할 수 있다.&lt;/p&gt;

&lt;h4&gt;큰따옴표&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;&quot;Hello $name \n&quot;&lt;/code&gt; 와 같이 큰따옴표 사이에 문자열을 써넣으면 PHP는 문자열을 해석하는 절차를 거친다. 큰따옴표 내부에 변수가 있다는 이는 변수의 값을 출력하고 특수문자가 있다면 특수문자에 부여된 바를 행한다.&lt;/p&gt;
&lt;p&gt;큰따옴표 내부에서 사용될 수 있는 특수문자는 아래와 같다.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-striped table-bordered&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;특수문자&lt;/th&gt;
&lt;th&gt;의미&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;\n&lt;/td&gt;
&lt;td&gt;개행문자(줄 바꿈)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\r&lt;/td&gt;
&lt;td&gt;캐리지 리턴(현재 위치를 나타내는 커서를 맨 앞으로 이동시킨다)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\t&lt;/td&gt;
&lt;td&gt;수평 탭&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\&quot;&lt;/td&gt;
&lt;td&gt;따옴표&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\$&lt;/td&gt;
&lt;td&gt;달러 표시&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = 'World';
echo &quot;Hello $str&quot;;  //Hello World
echo &quot;Hello \n&quot;  //Hello 
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;작은따옴표&lt;/h4&gt;
&lt;p&gt;작은따옴표 안에서는 특수문자와 변수가 허용되지 않는다. 작은따옴표 및 역슬래시 자체를 출력하기 위한 역슬래시(\)만 해석된다. 작은따옴표는 문자열 해석절차를 거치지 않기때문에 큰따옴표보다 성능의 우위를 점하나 큰 차이가 있는 것은 아니다.&lt;/p&gt; 
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = 'World';
echo 'Hello $str';  //Hello $str
echo 'Hello \n'  //Hello \n 
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Heredoc&lt;/h4&gt;
&lt;p&gt;Heredoc 문법은 문자열의 시작과 종료를 알려 주는 방식을 이용하여 문자열을 보다 편리하게 표현하는 방법이다. 문자열의 시작을 알릴 때는 &lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/code&gt; 다음에 문자열에 대한 식별자를 표시하고 문자열이 종료될 때는 그 식별자를 다시 표시하는 방법이다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = &amp;lt;&amp;lt;&amp;lt;EOD
문자열을 넣습니다.
문자열을 반복합니다.
EOD;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;EOD&lt;/b&gt;라는 식별자를 사용하여 문자열을 표현했고 그 결과는 큰따옴표를 사용한 것과 같다. 큰따옴표에 비해 장점이 있다면 문자열 내부에 따옴표를 추가하고자 할때 굳이 역슬래시를 쓸 필요가 없다는 것이다.&lt;/p&gt;   

&lt;h4&gt;Nowdoc&lt;/h4&gt;
&lt;p&gt;PHP 5.3.0부터 Nowdoc 문법이 추가되었으며, 식별자에 작은따옴표가 붙으며, 변수를 해석하지 않는다. 작은따옴표 방식과 유사한 방식이다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$str = &amp;lt;&amp;lt;&amp;lt;'EOT'
Hello $name.
문자열이 해석되지 않습니다.
'EOT';
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;PHP 변수의 해석&lt;/h3&gt;
&lt;p&gt;큰따옴표와 Heredoc 문법에서는 문자열 내부의 변수를 해석하여 처리하는데 이는 이어지는 문자열에 따라 예상밖의 결과를 초래하기도 한다. 이를 안전하게 처리하기 위해 변수를 &lt;code&gt;{}&lt;/code&gt;를 이용해 감싸는 방식이 추천된다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$money = '1000';
echo &quot;수입이 $money 발생하였다.&quot;;  //수입이 1000 발생하였다.
echo &quot;수입이 $money원 발생하였다.&quot;;  //$money원 이라는 변수를 찾기에 올바르지 않다.
echo &quot;수입이 $money 원 발생하였다.&quot;;  //수입이 1000 원 발생하였다.
echo &quot;수입이 {$money}원 발생하였다.&quot;;  //수입이 1000원 발생하였다.
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;PHP 문자열 합치기&lt;/h3&gt;
&lt;p&gt;PHP에서는 마침표(.)를 사용해 다수의 문자열을 합쳐 하나의 문자열로 만들 수 있다. &lt;code&gt;echo&lt;/code&gt; 명령어 안에서 문자열 합치기를 사용하면 PHP가 여러 문자열을 하나로 합치고, 이 문자열을 브라우저에 출력하게 된다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
$name = '홍길동';

echo '나의 이름은'.$name.'입니다.'; 
?&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;</description>
      <category>웹코딩/PHP</category>
      <category>php</category>
      <category>string</category>
      <category>문자열</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/531</guid>
      <comments>https://webdir.tistory.com/531#entry531comment</comments>
      <pubDate>Thu, 7 Jun 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>PHP 상수</title>
      <link>https://webdir.tistory.com/534</link>
      <description>&lt;p&gt;PHP 상수에 대하여 알아봅니다.&lt;/p&gt;

&lt;h3&gt;PHP 상수&lt;/h3&gt;
&lt;p&gt;상수는 항상 같은 값을 지니는 변하지 않는 수이며, 한 번 설정하면 전역 변수처럼 사용할 수 있다. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;한번 설정된 값은 변경할 수 없다.&lt;/li&gt;
&lt;li&gt;대소문자 구별을 하지만 관례적으로 대문자로 표기한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;define()&lt;/code&gt; 함수를 사용해 상수를 정의한다.&lt;/li&gt; 
&lt;/ul&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
define (&quot;NAME&quot;,&quot;홍길동&quot;);
echo NAME;  //홍길동 출력
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;p&gt;상수도 변수와 마찬가지로 미리 정의된 상수가 존재한다. &lt;a href=&quot;http://php.net/manual/kr/reserved.constants.php&quot; target=&quot;_blank&quot;&gt;예약 상수&lt;/a&gt;를 참고하도록 하자.&lt;/p&gt;</description>
      <category>웹코딩/PHP</category>
      <category>php</category>
      <category>PHP 상수</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/534</guid>
      <comments>https://webdir.tistory.com/534#entry534comment</comments>
      <pubDate>Wed, 6 Jun 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>PHP 변수</title>
      <link>https://webdir.tistory.com/530</link>
      <description>&lt;p&gt;PHP의 변수에 대하여 알아봅니다.&lt;/p&gt;

&lt;h3&gt;PHP 변수&lt;/h3&gt;
&lt;p&gt;PHP에서 변수란, 어떤 값을 기록해 둘 수 있는 공간(메모리)에 이름을 붙여 둔 것이다. &lt;code&gt;$변수명&lt;/code&gt;과 같은 형식으로 정의하며, 대입연산자(=)를 사용하여 값을 할당할 수 있다.&lt;/p&gt;

&lt;h3&gt;PHP 변수 규칙&lt;/h3&gt;
&lt;p&gt;PHP에서 변수명은 아래에서 제시하는 변수명 규칙을 따르며, 이를 어긴다면 오류가 발생한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;변수명은 반드시 &lt;code&gt;$&lt;/code&gt;(달러표시)로 시작해야 한다.&lt;/li&gt;
&lt;li&gt;변수명은 적어도 하나 이상의 문자를 가져야 한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$&lt;/code&gt; 표시 다음에 오는 첫 번째 문자는 알파벳이거나 &lt;code&gt;_&lt;/code&gt;(언더바)여야 한다. 이후에는 알파벳, 언더바 또는 숫자가 가능하다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$&lt;/code&gt;와 &lt;code&gt;_&lt;/code&gt;를 제외한 모든 특수문자와 빈칸은 변수명에 포함되면 안된다.&lt;/li&gt;  
&lt;/ul&gt;

&lt;p&gt;또한, 기존의 프로그래머들이 관행적으로 사용해오던 규칙들도 있다. 이러한 규칙은 PHP 코딩을 좀 더 일관성있고, 가독성있게 해주지만 지키지 않더라도 오류를 발생시키진 않는다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;변수명에는 소문자를 사용하도록 하자(상수와 구분된다).&lt;/li&gt;
&lt;li&gt;합성어로 만들어진 변수명은 단어간 구분에 &lt;code&gt;_&lt;/code&gt;를 사용하자.&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;$name  //유효한 변수선언
$nick_name  //유효한 변수선언
nick_name  //달러표시로 시작하지 않아 유효하지 않음
$nick-name  //특수문자사용으로 유효하지 않음
$nick_name more  //빈칸이 포함되어 유효하지 않음
$this //$this는 특수 변수로, 할당할 수 없어 유효하지 않음
&lt;/code&gt;&lt;/pre&gt; 

&lt;p&gt;변수를 표현식으로 지정할때에 원래 표현식의 모든 값이 목표 변수로 복사된다. 즉, 어떤 변수 값을 다른 변수로 지정한 후에, 그 변수중 어떤 하나를 변경하는 것이 다른 변수에 영향을 미치지 못한다.&lt;/p&gt;
&lt;p&gt;또한, PHP에서는 참조에 의한 지정이 가능한데 새로운 변수가 원래 변수를 참조하여 새 변수의 변경은 원래 변수에 영향을 미치고, 그 반대도 가능하다. 참조에 의한 지정을 위해서는, 변수의 시작부분에 &lt;code&gt;&amp;amp;&lt;/code&gt;(엠퍼센트)를 덧붙이면 된다.&lt;/p&gt;

&lt;div class=&quot;alert alert-warning&quot;&gt;
&lt;h4&gt;PHP의 대/소문자 구분&lt;/h4&gt;
&lt;p&gt;PHP는 대부분 대/소문자를 구분하지 않기에 이를 혼용하지 않는 것으로 일관성을 유지하는 것이 좋다. 변수는 특별히 대/소문자를 구분하므로 $email 과 $EMAIL은 서로 다른 변수로 취급한다.&lt;/p&gt;
&lt;/div&gt;

&lt;h3&gt;변수의 종류&lt;/h3&gt;
&lt;p&gt;변수에는 직접 이름을 짓고 용도에 따라 만들어 사용하는 사용자 변수와 미리 정의된 변수인 슈퍼 전역 변수가 있다.&lt;/p&gt;

&lt;h4&gt;사용자 변수&lt;/h4&gt;
&lt;p&gt;사용자 변수는 식별자에 &lt;code&gt;$&lt;/code&gt; 기호를 붙여서 필요에 따라 사용할 수 있다.&lt;/p&gt;

&lt;h4&gt;슈퍼 전역 변수&lt;/h4&gt;
&lt;p&gt;프로그램 어디서든 해당 이름을 통해 접근이 가능하며, 웹서버의 설정값이나 서버 시스템의 환경, 사용자의 입력과 관련한 변수들이 지정되어 있고 인위적으로 값을 수정하거나 일반 변수로 사용할 수 없다.&lt;/p&gt;&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered table-striped&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;변수명&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$_GET&lt;/td&gt;
&lt;td&gt;GET 방식으로 넘어온 변수의 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$_POST&lt;/td&gt;
&lt;td&gt;POST 방식으로 넘어온 변수의 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$_COOKIE&lt;/td&gt;
&lt;td&gt;쿠키 변수의 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$_FILES&lt;/td&gt;
&lt;td&gt;파일 업로드시 파일 정보 변수의 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$_SESSION&lt;/td&gt;
&lt;td&gt;세션 변수의 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$_SERVER&lt;/td&gt;
&lt;td&gt;웹 서버와 PHP 환경에서의 환경 변수 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$_ENV&lt;/td&gt;
&lt;td&gt;서버 시스템의 환경 변수 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$_REQUEST&lt;/td&gt;
&lt;td&gt;사용자가 입력한 변수의 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt; 

&lt;p&gt;슈퍼 전역 변수는 모두 배열로 되어 있기 때문에 &lt;code&gt;$_ENV['OS']&lt;/code&gt;와 같은 방법으로 변수에 접근할 수 있다.&lt;/p&gt;

&lt;h3&gt;PHP 변수의 범위&lt;/h3&gt;
&lt;p&gt;변수의 범위란 특정 변수를 사용할 수 있는 구간을 말하며, 일정 영역에서만 적용되는 변수를 지역 변수, 어느 영역이든 사용 가능한 변수를 전역 변수라고 한다. &lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$a = 1;

function test() {
  echo $a;
}
test(); //출력안됨

function test2() {
  global $a;
  echo $a;
}
test2(); //1 출력

function test3() {
  static $b = 0;
  echo $b;
  $b++;
}
test3(); //0 출력
test3(); //1 출력
test3(); //2 출력

inclued 'b.php';  //$a는 b.php 파일에서도 유효하다.

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;전역 변수는 스크립트 내에서 정의된 변수로 스크립트 내에서 사용할 수 있지만 함수 안에서는 사용할 수 없다.&lt;/li&gt;
&lt;li&gt;슈퍼 전역 변수는 스크립트 전역에서 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;함수 안에서 정의된 변수는 지역 변수로서 함수 내에서만 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;함수 안에서 전역으로 정의된 변수는 함수 밖에서 사용할 수 없지만 매 사용 시마다 값이 저장되어 다음에 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;함수 안에서 사용된 변수는 함수가 끝나면 삭제된다.&lt;/li&gt;
&lt;li&gt;함수 안에서 사용된 변수의 값을 유지하기 위해서 &lt;strong&gt;static&lt;/strong&gt; 키워드를 사용한 정적 변수로 선언할 수 있다.&lt;/li&gt;
&lt;li&gt;함수 외부에서 선언된 변수를 함수 내부에서 사용하려면 &lt;strong&gt;global&lt;/strong&gt;로 선언해야 한다.&lt;/li&gt;
&lt;li&gt;변수의 유효영역은 include 되거나 required 된 파일로도 확장된다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;PHP 자료형&lt;/h3&gt;
&lt;p&gt;PHP는 8가지의 기본 자료형을 지원한다. 즉, 아래의 8가지 자료형중에 하나가 변수를 선언할때 할당되는 데이터에 따라 자료형이 결정된다(임의로 자료형을 변환시킬수 있는 함수들도 제공됨). 각각의 자료형들은 미리 부여된 크기를 가지고 있어 메모리를 효율적으로 사용할 수 있게 해준다.&lt;/p&gt;

&lt;p&gt; 또한, &lt;b&gt;NULL&lt;/b&gt; 이라는 특수한 데이터도 저장할 수 있으며, 이는 아무런 값도 지니지 않음을 의미한다. 데이터가 할당되지 않은 변수는 NULL로 간주하게 된다. &lt;/p&gt;

&lt;h4&gt;진리값(boolean)&lt;/h4&gt;
&lt;p&gt;boolean(불린) 형은 진리값,논리값 등으로 불리며, 참(True)과 거짓(False) 두 가지 값을 표현한다. PHP에서 거짓은 0을 뜻하고 0 이 아닌 다른 모두 값은 참을 뜻한다.&lt;/p&gt;
&lt;p&gt;실제로 1bit의 메모리 공간을 차지하나 지나친 공간절약보다 효율성을 우선시하여 1Byte의 공간을 사용한다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$has_lover = FALSE; 

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;명시적으로 진리값으로 변환시키기 위해서는 (bool) 또는 (boolean)을 사용하며, 아래의 값들은 &lt;b&gt;FALSE&lt;/b&gt;로 간주된다.&lt;/p&gt; 
&lt;ul&gt;
&lt;li&gt;진리값 FALSE&lt;/li&gt;
&lt;li&gt;정수 0&lt;/li&gt;
&lt;li&gt;실수 0.0&lt;/li&gt;
&lt;li&gt;빈 문자열(&quot;&quot;)과 문자열 &quot;0&quot;&lt;/li&gt;
&lt;li&gt;요소를 가지지 않는 배열&lt;/li&gt;
&lt;li&gt;멤버 변수를 가지지 않는 객체(PHP 4 에서만)&lt;/li&gt;
&lt;li&gt;특별한 타입 NULL(unset 변수 포함)&lt;/li&gt;
&lt;li&gt;빈 태그로부터 만들어진 SimpleXML 객체&lt;/li&gt;      
&lt;/ul&gt;

&lt;div class=&quot;alert alert-danger&quot;&gt;-1은 TRUE로 간주된다. 양수이든 음수이든 상관없이 0 이 아닌 다른 숫자들은 모두 TRUE.&lt;/div&gt;

&lt;h4&gt;정수(Integer)&lt;/h4&gt;
&lt;p&gt;정수를 표현하기 위해서 4Byte의 메모리 공간을 부여하며, 이는 0~4294967295 사이의 수와 -2147483648~2147483647 사이의 수를 표현한다. 총 32개의 bit 중에서 첫 번째 bit를 부호 bit로 사용하여 0일때 양수, 1일때 음수로 표현하기 때문에 실제 숫자는 31개의 bit로 표현하는 것이다.&lt;/p&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$a = 1234; // 10진수
$a = -123; // 음수
$a = 0123; // 8진수
$a = 0x1A; // 16진수
$a = 0b11111111; // 2진수

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;p&gt;명시적으로 정수값으로 변환시키기 위해서는 (int) 사용한다.&lt;/p&gt;

&lt;h4&gt;부동소수점(floating point numbers)&lt;/h4&gt;
&lt;p&gt;실수를 표현하면서 부동소수점 방식을 사용하는 수를 의미한다. PHP에서는 실수를 표현하기 위해서 8Byte의 공간을 사용하며, 소수점 이하 14자리까지의 정밀도를 제공한다(floats, doubles, real numbers 라고도 불림).&lt;/p&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;div class=&quot;alert alert-warning&quot;&gt;
&lt;p&gt;부동소수점은 서로 같은지 비교하는 등의 작업은 언제나 오류의 소지를 가지므로 되도록 사용하지 않는 것이 좋다.&lt;/p&gt;
&lt;/div&gt;

&lt;h4&gt;문자열(string)&lt;/h4&gt;
&lt;p&gt;문자들을 표현할때 사용하며, 메모리 공간의 제약이 없다. 즉, 문자열의 길이에 상관없이 제한 없는 문자열을 지원한다.&lt;/p&gt;
&lt;p&gt;문자열은 큰따옴표(&quot;), 작은따옴표('), 히어닥문법(Heredoc), 나우닥문법(Nowdoc)을 이용하여 할당할 수 있다. 관련하여 자세한 설명은 &lt;a href=&quot;http://webdir.tistory.com/531&quot;&gt;PHP 문자열&lt;/a&gt;에서 따로 다루기로 한다.&lt;/p&gt;

&lt;h4&gt;배열(array)&lt;/h4&gt;
&lt;p&gt;배열은 키(key)와 값(value)으로 이루어지며, 키는 정수 또는 문자열중에 하나이고, 값은 모든 자료형이 될 수 있다.&lt;/p&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$array = array(
    &quot;foo&quot; =&amp;gt; &quot;bar&quot;,
    &quot;bar&quot; =&amp;gt; &quot;foo&quot;,
);

// as of PHP 5.4
$array = [
    &quot;foo&quot; =&amp;gt; &quot;bar&quot;,
    &quot;bar&quot; =&amp;gt; &quot;foo&quot;,
];

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;리소스(resources)&lt;/h4&gt;
&lt;p&gt;리소스는 파일이나 데이터베이스 그리고 이미지 작업과 같은 외부적인 자원을 나타내는데 사용하는 자료형으로, 다른 값으로 변환이 불가능하다. 또한 자동으로 해제되기 때문에 수동으로 메모리를 해제하지 않아도 된다.&lt;/p&gt;

&lt;h4&gt;NULL&lt;/h4&gt;
&lt;p&gt;NULL 값은 변수에 값이 없음을 표현하는 특별한 값이며, 오직 null 타입의 값으로만 가능하다. 변수에 아직 아무런 값도 할당하지 않았을때나 상수로 NULL을 직접 할당했을때 그리고 unset 함수로 변수를 제거했을 때 해당 값을 NULL 이라고 한다.&lt;/p&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php

$var = NULL;

?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;객체&lt;/h4&gt;
&lt;p&gt;객체는 다른 페이지에서 다룬다.&lt;/p&gt; 






&lt;h3&gt;PHP 변수 처리 함수&lt;/h3&gt;
&lt;p&gt;변수에 할당된 값들을 활용해 여러가지 정보를 처리할 수 있는 함수들이 존재한다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://php.net/manual/kr/ref.var.php&quot; target=&quot;_blank&quot;&gt;Variable handling 함수 목록&lt;/a&gt;을 참고하도록 하자.&lt;/p&gt;</description>
      <category>웹코딩/PHP</category>
      <category>var</category>
      <category>변수</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/530</guid>
      <comments>https://webdir.tistory.com/530#entry530comment</comments>
      <pubDate>Tue, 5 Jun 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>PHP 기본 문법</title>
      <link>https://webdir.tistory.com/532</link>
      <description>&lt;p&gt;PHP의 기본적인 문법에 대하여 알아봅니다.&lt;/p&gt;

&lt;h3&gt;PHP 기본 구문&lt;/h3&gt;
&lt;p&gt;PHP는 HTML 모드를 기준으로 해석되다가 PHP의 시작을 알리는 시작태그를 만나면 PHP 모드로 전환하여 해석된다. 이런 방식의 해석은 시작과 끝 태그 밖에 있는 부분은 PHP 해석기가 무시하게 되므로, PHP가 어떠한 문서에도 포함될 수 있는 근거가 된다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;이 부분은 PHP 해석기가 무시한다.&amp;lt;/p&amp;gt;
&amp;lt;?php echo '이 부분은 PHP 해석기가 해석한다.'; ?&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;h4&gt;PHP의 시작태그 와 끝태그&lt;/h4&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;background:#f5f5f5&quot;&gt;
&lt;th&gt;시작태그&lt;/th&gt;
&lt;th&gt;끝태그&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;?php&lt;/td&gt;
&lt;td&gt;?&amp;gt;&lt;/td&gt;
&lt;td&gt;XML과 구분하기 위한 방법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;?&lt;/td&gt;
&lt;td&gt;?&amp;gt;&lt;/td&gt;
&lt;td&gt;간소화된 방법으로 PHP의 기본설정은 짧은 태그를 허용하지 않는다. php.ini 파일의 &lt;code&gt;short_open_tag = On&lt;/code&gt; 으로 변경하면 사용가능하다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;%&lt;/td&gt;
&lt;td&gt;%&amp;gt;&lt;/td&gt;
&lt;td&gt;ASP 방식&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;script language=&quot;php&quot;&amp;gt;&lt;/td&gt;
&lt;td&gt;&amp;lt;/script&amp;gt;&lt;/td&gt;
&lt;td&gt;스크립트 방식&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php echo 'XHTML나&amp;nbsp;XML&amp;nbsp;문서와&amp;nbsp;호환시키려면,&amp;nbsp;이렇게&amp;nbsp;쓰세요'; ?&amp;gt;

&amp;lt;script language=&quot;php&quot;&amp;gt;
    echo '어떤 에디터 (프론트페이지같은)는 
          처리 명령을 좋아하지 않습니다';
&amp;lt;/script&amp;gt;

&amp;lt;? echo '이런 형태가 제일 간단한 SGML 처리명령입니다'; ?&amp;gt;
&amp;lt;?= expression ?&amp;gt;은 &quot;&amp;lt;? echo expression ?&amp;gt;&quot;을 간단히 쓴 모양입니다

&amp;lt;% echo (&quot;ASP스타일 태그를 쓸 수도 있습니다&quot;); %&amp;gt;
&amp;lt;%= $variable; # 이것은 &quot;&amp;lt;% echo . . .&quot; %&amp;gt;을 간단히 쓴 모양입니다
&lt;/code&gt;&lt;/pre&gt;

&lt;div class=&quot;alert alert-info&quot;&gt;
&lt;p&gt;가장 보편적인 방식은, 첫번째 방식이며, 권장되는 방식이다.&lt;/p&gt;
&lt;/div&gt; 
&lt;br /&gt;
&lt;div class=&quot;alert alert-warning&quot;&gt;
&lt;p&gt;두번째의 단축형 태그를 사용할 경우, &lt;b&gt;php.ini&lt;/b&gt; 설정 파일 지시어 &lt;code&gt;short_open_tag&lt;/code&gt;를 활성화하거나, php를 &lt;code&gt;--enable-short-tags&lt;/code&gt; 옵션으로 설정해야 사용할 수 있다.&lt;/p&gt;
&lt;/div&gt; 
&lt;br /&gt;
&lt;div class=&quot;alert alert-warning&quot;&gt;
&lt;p&gt;ASP 형식 태그를 사용할 경우, &lt;b&gt;php.ini&lt;/b&gt; 설정 파일 지시어 &lt;code&gt;asp_tags&lt;/code&gt;를 활성화 했을 경우에만 사용할 수 있다.&lt;/p&gt;
&lt;/div&gt; 
&lt;br /&gt;
&lt;div class=&quot;alert alert-danger&quot;&gt;위 예제를 실행했을때, 아무것도 출력하지 않거나, 다운로드 할 것인지 묻거나, 모든 내용이 텍스트 문서처럼 보였다면, 해당 서버에서 PHP가 작동하지 않거나 제대로 설정되지 않은 것이다. &lt;/div&gt;

&lt;h3&gt;PHP 명령 구분&lt;/h3&gt;
&lt;p&gt;문장의 마지막에 &lt;b&gt;마침표(.)&lt;/b&gt;를 찍듯이 PHP도 각 명령 구문 끝을 &lt;b&gt;세미콜론(;)&lt;/b&gt;으로 종료해야 한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;명시적으로 문장의 끝을 표현해주면, 코드의 가독성과 명확성을 높여주며, PHP 해석기들이 문맥을 파악하지 않고도 쉽게 문장을 구분할 수 있게 된다.&lt;/li&gt;
&lt;li&gt;문장이 하나 뿐이거나 문장의 바로뒤에 끝 태그(?&amp;gt;)가 있다면 PHP는 자동으로 세미콜론을 적용한다.&lt;/li&gt; 
&lt;/ul&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
    echo 'This is a test';
?&amp;gt;

&amp;lt;?php echo 'This is a test' ?&amp;gt;

&amp;lt;?php echo '마지막 닫기 태그를 생략합니다';
&lt;/code&gt;&lt;/pre&gt;

&lt;div class=&quot;alert alert-info&quot;&gt;
파일의 마지막에서 PHP 블록의 끝맺음 태그를 생략할 수 있으며, 때로는 유용합니다. include나 require를 사용할 경우, 원하지 않은 공백이 파일 마지막에 들어가지 않게 함으로써, 나중에 추가 응답 헤더를 추가할 수 있습니다. 또한 출력 버퍼링을 사용할 경우에도 포함한 파일들에 의해서 각 파트의 마지막에 원하지 않은 공백을 피할 수 있으므로 도움이 됩니다.
&lt;/div&gt; 


&lt;h3&gt;PHP 주석&lt;/h3&gt;
&lt;p&gt;PHP는 C와 Perl과 같은 형식의 주석을 제공하며, PHP 해석기는 이를 만나면 무시한다.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-striped table-bordered&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;주석 방법&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;//&lt;/td&gt;
&lt;td&gt;한 줄 주석 처리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#&lt;/td&gt;
&lt;td&gt;한 줄 주석 처리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/* */&lt;/td&gt;
&lt;td&gt;여러 줄 주석 처리&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt; 

&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;?php
echo 'This is a test';  // 한줄짜리 c++ 스타일 주석

/* 여러줄의 주석
   이줄까지 주석처리 된다 */
echo 'This is yet another test';

echo 'One Final Test';  # 쉘 형식의 한줄짜리 주석
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;PHP 빈값으로 간주하는 것들&lt;/h3&gt;
&lt;p&gt;PHP의 조건문이나 그 밖의 경우에 변수에 담긴 값들을 검사하는 경우에 알아야 하는 것들이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&quot;&quot;&lt;/code&gt; : 빈문자열&lt;/li&gt;
&lt;li&gt;&lt;code&gt;0&lt;/code&gt; : 정수 0&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&quot;0&quot;&lt;/code&gt; : 문자열 0&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NULL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FALSE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;array()&lt;/code&gt; : 빈배열&lt;/li&gt;
&lt;li&gt;&lt;code&gt;var $var;&lt;/code&gt; : 클래스안에서 값없이 선언된 변수&lt;/li&gt;     
&lt;/ul&gt;</description>
      <category>웹코딩/PHP</category>
      <category>php</category>
      <category>PHP 기본문법</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/532</guid>
      <comments>https://webdir.tistory.com/532#entry532comment</comments>
      <pubDate>Mon, 4 Jun 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>PHP 기초</title>
      <link>https://webdir.tistory.com/528</link>
      <description>&lt;p&gt;PHP를 본격적으로 배우기에 앞서 기초적인 내용들을 정리하고 넘어갑니다.&lt;/p&gt;

&lt;h3&gt;웹의 동작 원리&lt;/h3&gt;
&lt;p&gt;웹 브라우저의 주소창에 도메인(www.php.net)을 입력했을때 발생하는 일련의 과정은 아래와 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 643px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/263D4C3458C1312015&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F263D4C3458C1312015&quot; width=&quot;643&quot; height=&quot;85&quot; filename=&quot;web_principal.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;클라이언트(웹 브라우저)에서 입력받은 도메인주소는 DNS 서버를 통해 IP로 변환된다.(&lt;a href=&quot;http://webdir.tistory.com/161&quot; target=&quot;_blank&quot;&gt;DNS 이해&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;변환된 IP 주소(64.71.164.5)의 목적지인 웹 서버에 접속하고 URL을 통해 요청(request) 파일의 정보를 전달한다(www.php.net 이라고 URL을 요청했을때 웹서버의 설정에 따라 www.php.net/index.html 혹은 www.php.net/index.php 등의 파일을 자동적으로 찾는다).&lt;/li&gt;
&lt;li&gt;웹 서버는 찾은 파일을 처리하고 그 결과를 웹 브라우저에 전달한다.&lt;/li&gt;
&lt;li&gt;웹 브라우저는 전달받은 결과를 해석해서 사용자에게 보여준다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;HTTP 프로토콜로 전달된 URL의 요청은 각각의 상태코드를 서버로부터 되돌려 받는데 이는 아래의 내용을 참고하자.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;background:#f5f5f5&quot;&gt;
&lt;th&gt;상태코드&lt;/th&gt;
&lt;th&gt;의미&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;200&lt;/td&gt;
&lt;td&gt;OK&lt;/td&gt;
&lt;td&gt;요청이 정상적으로 완료되었음을 나타낸다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;302&lt;/td&gt;
&lt;td&gt;Found&lt;/td&gt;
&lt;td&gt;요청된 리소스가 일시적으로 다른 URI에 속해 있음을 나타낸다. 리다이렉트에 이용된다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;401&lt;/td&gt;
&lt;td&gt;Unauthorized&lt;/td&gt;
&lt;td&gt;사용자 인증에 실패했음을 나타낸다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;403&lt;/td&gt;
&lt;td&gt;Forbidden&lt;/td&gt;
&lt;td&gt;접속 권한이 없기때문에 서버가 요청 실행을 거부했음을 나타낸다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;404&lt;/td&gt;
&lt;td&gt;Not Found&lt;/td&gt;
&lt;td&gt;요청 URI와 일치하는 리소스를 찾지 못했음을 나타낸다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;Internal Server Error&lt;/td&gt;
&lt;td&gt;서버측 프로그램 실행과정에서 에러가 발생했음을 나타낸다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;503&lt;/td&gt;
&lt;td&gt;Service Unavailable&lt;/td&gt;
&lt;td&gt;과도한 접속으로 인한 일시적 서비스 불가현상을 나타낸다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt; 


&lt;h3&gt;정적인 웹 페이지 vs 동적인 웹 페이지&lt;/h3&gt;
&lt;p&gt;웹 페이지는 HTML 만으로도 구성할 수 있지만, 이는 단순한 요청에 대한 응답만을 보여주기에 정적인 내용을 서비스한다고 말한다. 반면 PHP와 같은 서버측 스크립트를 활용하면 데이터베이스를 활용해 자료를 저장하고 출력하며, 요청에따라 동적으로 페이지에 HTML을 추가하거나 수정하는 재구성이 가능하기에 원하는 결과를 다방면으로 출력할 수 있게 된다. 즉, 동적인 웹 페이지 구현이 가능하다.&lt;/p&gt;

&lt;h3&gt;PHP의 역사&lt;/h3&gt;
&lt;p&gt;현재의 PHP 최신버전은 PHP 7 버전이다. 그렇다고 PHP 7이 가장 활발히 활용되고 있는 것은 아니고 PHP 5 버전대에서 7버전대로의 전환점의 시기에 있다고 생각하는 것이 옳을 것이다.  PHP의 역사에 관해서는 &lt;a href=&quot;http://php.net/manual/kr/history.php.php&quot;&gt;PHP와 PHP 관련 프로젝트의 역사&lt;/a&gt;에 자세히 기록되어 있다.&lt;/p&gt;

&lt;h3&gt;PHP 정의&lt;/h3&gt;
&lt;p&gt;PHP는 원래 &lt;b&gt;Personal Home Pages&lt;/b&gt;의 약어였으나 최근에는 &lt;b&gt;Hypertext Preprocessor&lt;/b&gt;(하이퍼텍스트 전처리기)라는 의미로 사용된다.&lt;/p&gt;

&lt;h4&gt;PHP 특징&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;PHP는 서버측에서 실행되는 스크립트 언어로서, 클라이언트(웹브라우저)의 요청에 따라 서버가 PHP를 해석하여 실행하고 그 결과를 다시 클라이언트에게 되돌려 준다.&lt;/li&gt;
&lt;li&gt;PHP는 PHP로만 작성된 페이지, PHP와 HTML로 이루어진 페이지, HTML로만 이루어진 페이지 모두를 확장자 .php 를 이용하여 PHP 페이지로 인식시킬 수 있다.&lt;/li&gt;
&lt;li&gt;PHP 문법은 C, Java, Perl 등의 문법과 유사하여 배우기 쉽다.&lt;/li&gt;
&lt;li&gt;PHP는 서버에서 실행되어 HTML로 변환되어 브라우저에 전송되기에 클라이언트에서는 PHP 코드를 볼 수 없고 실행결과인 HTML만 보게 된다.&lt;/li&gt;
&lt;li&gt;PHP는 커맨드 라인 스크립팅을 통하여 서버나 브라우저없이 PHP를 실행할 수 있다.&lt;/li&gt;
&lt;li&gt;PHP는 웹 서버의 모듈로 동작하는 것이 일반적인 방식이라 과거 CGI보다 빠른 속도를 가진다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>웹코딩/PHP</category>
      <category>php</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/528</guid>
      <comments>https://webdir.tistory.com/528#entry528comment</comments>
      <pubDate>Fri, 1 Jun 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>드라이브 아이콘 변경 최종</title>
      <link>https://webdir.tistory.com/536</link>
      <description>&lt;p&gt;https://www.howtogeek.com/291674/how-to-change-drive-icons-in-windows/&lt;/p&gt;</description>
      <category>윈도우즈/Windows 일반</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/536</guid>
      <comments>https://webdir.tistory.com/536#entry536comment</comments>
      <pubDate>Thu, 31 May 2018 13:42:00 +0900</pubDate>
    </item>
    <item>
      <title>윈도우즈 AppData 폴더에 대하여</title>
      <link>https://webdir.tistory.com/549</link>
      <description>&lt;p&gt;윈도우즈 응용 프로그램은 종종 데이터 및 설정내용을 &lt;strong&gt;AppData&lt;/strong&gt; 폴더에 저장합니다. 딱히 사용자계정 폴더에 접속할 일이 없어서 이를 눈치채지 못하고 있었는데 특정 프로그램의 설정프로그램을 백업할일이 있어서 이를 들여다보니 복잡한 구조가 눈에 띄어 이를 살펴봅니다.&lt;/p&gt;

&lt;h3&gt;AppData 폴더 소개&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;AppData&lt;/strong&gt;는 각각의 윈도우즈 사용자계정에 존재하며, 응용 프로그램의 데이터 및 설정 내용을 저장한다. 이는 숨김파일을 표시하는 경우에만 볼 수 있다(윈도우즈 탐색기의 상단메뉴중에 보기 &amp;gt; 숨긴 항목 체크).&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 876px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/992141435A93BEDD30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F992141435A93BEDD30&quot; width=&quot;876&quot; height=&quot;400&quot; filename=&quot;appdata.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;사용자계정 아래에 &lt;b&gt;AppData&lt;/b&gt;가 존재함으로써, 여러 사람이 컴퓨터를 사용하는 경우 각각의 사용자별 설정을 저장할 수 있다. 이 폴더는 &lt;strong&gt;Application Data&lt;/strong&gt;의 약자이고, 윈도우즈 비스타에서 도입되었으며 현재 윈도우즈 10까지 계속 사용되고 있다.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;C:\Users\사용자명\AppData&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;윈도우즈 탐색기의 주소표시줄에 &lt;code&gt;%APPDATA%&lt;/code&gt;를 입력하면 &lt;code&gt;AppData\Roaming&lt;/code&gt; 폴더로 이동할 수도 있다.&lt;/p&gt;

&lt;h4&gt;AppData 포함 폴더&lt;/h4&gt;
&lt;p&gt;AppData에는 세 개의 폴더 &lt;b&gt;Local&lt;/b&gt;, &lt;b&gt;LocalLow&lt;/b&gt;, &lt;b&gt;Roaming&lt;/b&gt;이 존재하며, 각기 다른 유형의 설정을 저장한다.&lt;/p&gt;

&lt;h4&gt;Roaming&lt;/h4&gt;
&lt;p&gt;Roaming(로밍) 폴더는 PC가 로밍 프로필이 있는 도메인에 연결되어 있는 경우(회사, 공공기간처럼 제공되는 도메인에 가입된 컴퓨터) 컴퓨터와 컴퓨터간에 사용자 계정으로 로밍할 수 있는 데이터가 존재하게 되며, 구글, 파이어폭스등과 같이 계정에 연결하여 관련설정을 받아와 이 곳에 저장하여 북마크 및 기타 검색 데이터가 PC에서 PC로 이동하도록 한다.&lt;/p&gt;   

&lt;h4&gt;Local&lt;/h4&gt;
&lt;p&gt;Local 폴더는 단일 컴퓨터의 특정한 데이터가 저장된다. 도메인간에 로그인하더라도 컴퓨터간에 절대 동기화되지 않으며, 이 곳의 데이터는 일반적으로 고유해야만 하는 데이터나 매우 큰 파일들이 포함한다(다운로드한 캐시 파일 및 기타 대용량 파일).&lt;/p&gt;
&lt;p class=&quot;alert alert-info&quot;&gt;Roaming 폴더에 저장할지 Local 폴더에 저장할지는 전적으로 해당 응용 프로그램 개발자에게 달려있다.&lt;/p&gt;
&lt;p&gt;도메인에 연결되어 있지 않은 경우, Roaming 과 Local 폴더간에는 실제 차이가 없으며, 모두 PC에 저장되어 있을 뿐이다. 그러나 응용 프로그램 개발자는 경우에 따라 다른 폴더간에 서로 다른 유형의 데이터를 분할한다.&lt;/p&gt;

&lt;h4&gt;LocalLow&lt;/h4&gt;
&lt;p&gt;LocalLow 폴더는 Local 폴더와 동일하지만, 제한된 보안 설정으로 실행되는 &quot;low intergrity&quot; 응용 프로그램을 위해 설계되었다. 예를 들어, 보호모드(Protected Mode)로 실행되는 인터넷 익스플로우는 LocalLow 폴더에만 접근할 수 있다. &lt;/p&gt;
&lt;p&gt;개인적인 용도에는 별 상관이 없지만 일부 응용 프로그램에서는 기본 Local 폴더에 대한 접근 권한이 없기 때문에 이 폴더를 사용하게 된다.&lt;/p&gt;

&lt;p class=&quot;alert alert-info&quot;&gt;프로그램에서 여러 사용자가 사용하는 단일 설정이나 파일집합을 원할 경우, 위의 세가지 폴더대신에 &lt;strong&gt;ProgramData&lt;/strong&gt; 폴더를 사용해야 한다. 이 폴더는 &lt;code&gt;C:\ProgramData&lt;/code&gt;에 위치하며(숨긴파일), 이전 버전의 윈도우즈들에서 모든 사용자용 AppData로 알려져 있다. 예를 들어, 바이러스 백신 프로그램은 ProgramData 폴더에 검사 로그와 설정을 유지하고 PC의 모든 사용자와 이를 공유할 수 있다.&lt;/p&gt;

&lt;p&gt;위에서 말한 폴더간 특성은 가이드라인일뿐 개발자들이 항상 이를 준수하진 않는다. 몇몇의 응용 프로그램들은 &lt;code&gt;C:\Users\사용자계정명&lt;/code&gt; 혹은 C:\Users\사용자계정명\Documents&lt;/code&gt;에 설정을 저장하기도 한다. 또한, registry에 데이터를 저장하기도 하며 시스템상의 어느 폴더에나 저장하기도 한다.&lt;/p&gt;

&lt;h3&gt;AppData 백업&lt;/h3&gt;
&lt;p&gt;대부분의 윈도우즈 사용자는 이 폴더가 어디에 있는지조차 알 필요가 없기때문에 기본적으로 숨겨져 있다. 이 폴더 전체를 백업할 필요는 없지만 모든 폴더를 백업에 포함하여 복원해야하는 경우에는 전체 폴더를 백업해야한다.&lt;/p&gt;
&lt;p&gt;그러나 특정 프로그램의 설정이나 컴퓨터 게임의 파일 저장을 원할 경우 AppData 폴더 안쪽의 프로그램 디렉토리를 찾아 다른 위치로 복사하여 파일을 저장해놓고, 해당 폴더를 새 컴퓨터의 같은 위치로 복사하여 이전과 같은 프로그램들의 동일한 설정을 사용할 수 있게 된다. 이 행동으로 인해 실제로 프로그램들이 정상적으로 작동하는지의 여부는 프로그램에 달려있다. 일부 프로그램들은 설정을 레지스트리에 저장하거나 시스템의 다른 위치에 저장하기 때문이다.&lt;/p&gt;

&lt;p&gt;많은 프로그램이 컴퓨터간에 데이터를 동기화하거나 적어도 이를 외부로 내보내는 방법을 제공하기에 그 방법을 이용하는 것이 추천된다.&lt;/p&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.howtogeek.com/318177/what-is-the-appdata-folder-in-windows/&quot; target=&quot;_blank&quot;&gt;What Is the AppData Folder in Windows?&lt;/a&gt;&lt;/li&gt;
     &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/Windows 일반</category>
      <category>AppData</category>
      <category>Windows</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/549</guid>
      <comments>https://webdir.tistory.com/549#entry549comment</comments>
      <pubDate>Fri, 2 Mar 2018 17:30:00 +0900</pubDate>
    </item>
    <item>
      <title>윈도우즈 콘솔 에뮬레이터 cmder</title>
      <link>https://webdir.tistory.com/548</link>
      <description>&lt;p&gt;기존의 윈도우즈 콘솔에 편의성과 가시성, 시각적으로 아름답게 만들어주는 &lt;srong&gt;cmder 라는 프로그램을 소개합니다.&lt;/srong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/990845495A8D3C6C2E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F990845495A8D3C6C2E&quot; width=&quot;1000&quot; height=&quot;540&quot; filename=&quot;cmder.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;cmder 소개&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;cmder&lt;/strong&gt;는 윈도우즈에서 사용 가능한 콘솔 에뮬레이터가 없다는 순수한 좌절로부터 만들어진 소프트웨어 패키지이다. &lt;a href=&quot;https://conemu.github.io/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Conemu&lt;/a&gt;를 기반으로 주요 설정을 하고,  Mononaki 색 구성표를 사용하며, 놀라운 &lt;a href=&quot;https://mridgers.github.io/clink/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Clink&lt;/a&gt; 기능의 추가와 사용자 정의 가능한 프롬프트 레이아웃을 제공한다.&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;HOME&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://cmder.net/&quot; target=&quot;_blank&quot;&gt;cmder&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;Repo&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://github.com/cmderdev/cmder&quot; target=&quot;_blank&quot;&gt;cmderdev/cmder&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt;

&lt;h4&gt;포터블 cmder&lt;/h4&gt;
&lt;p&gt;cmder의 강점은 포터블로서 제공된 다는 것이다. 어떠한 외부적 종속성없이 자체 설계되어 USB나 클라우드 스토리지에 적재하여, 콘솔, aliase(별칭), 바이너리(wget, curl, git)등을 어디에서나 휴대할 수 있다.&lt;/p&gt;

&lt;h3&gt;Cmder 설치&lt;/h3&gt;
&lt;p&gt;홈페이지에서 제공하는 다운로드 링크는 Git-for-Windows 가 포함된 Full 버전(압축된 7z버전도 존재)과 그렇지않은 Mini 버전을 다운로드할 수 있다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;홈페이지에서 원하는 버전을 다운로드하고 압축을 풀자.&lt;/li&gt;
&lt;li&gt;cmder 폴더를 원하는 위치로 이동시켜도 되는데 &lt;code&gt;C:\Program Files&lt;/code&gt; 나 관리자권한이 필요한 경로에는 위치시켜서는 안된다(필자는 리눅스 시스템의 홈디렉토리와 유사한 &lt;code&gt;C:\Users\사용자명&lt;/code&gt;에 위치시켰다).&lt;/li&gt;
&lt;li&gt;Cmder.exe로 실행한다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;alert alert-warning&quot;&gt;Cmder의 mini 버전은 Git-for-Windows가 포함되어 있지 않기 때문에 CMD에서 bash 명령어들을 사용할 순 없다. 이는 Full 버전을 이용하든가 Git-for-Windows를 따로 설치해줘야 한다.&lt;/p&gt;

&lt;h3&gt;Cmder 컨택스트 메뉴추가&lt;/h3&gt;
&lt;p&gt;윈도우즈 응용 프로그램들 중에는 설치시 마우스 우측버튼으로 통합되는 메뉴들이 있는데 cmder도 이를 제공한다. cmder의 경우는 선택한 폴더에서 cmder를 여는 기능을 추가한다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;관리자 권한으로 CMD를 연다.&lt;/li&gt;
&lt;li&gt;Cmder가 위치한 디렉토리로 이동한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.\cmder.exe /REGISTER ALL&lt;/code&gt; 실행한다(액세스가 거부된다면 관리자권한으로 CMD를 실행했는지 확인).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;윈도우즈 탐색기창에서 디렉토리를 마우스 우클릭하면 &lt;strong&gt;Cmder Here&lt;/strong&gt;이 등록되어 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 284px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99A6B0345A8D772231&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99A6B0345A8D772231&quot; width=&quot;284&quot; height=&quot;226&quot; filename=&quot;cmder_init.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Cmder 삭제&lt;/h3&gt;
&lt;p&gt;포터블로 제작되다보니 따로 언인스톨러가 제공되지 않는다. 다만 레지스트리가 남기에 이를 직접 삭제해주어야 한다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;만일, Cmder 컨택스트 메뉴추가를 했었다면 &lt;code&gt;cmder.exe /UNREGISTER ALL&lt;/code&gt;를 실행한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HKEY_CLASSES_ROOT\Directory\shell\Cmder&lt;/code&gt;를 제거한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HKEY_CLASSES_ROOT\Directory\Background\shell\Cmder&lt;/code&gt;를 제거한다.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Cmder 설정&lt;/h3&gt;
&lt;h4&gt;Cmder 한글설정&lt;/h4&gt;
&lt;p&gt;우리나라 대부분의 사람들이 한글 윈도우즈를 쓸테니 이 문제를 피해갈 수 없다. 기본 한글 윈도우즈는 ANSI로 설정되어 있기에 이를 변경해줘야 한다. 아래와같이 기본설정 상태에서는 한글이 제대로 표기되지 못한다.&lt;/p&gt;
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 751px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99C66B485A8D90B710&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99C66B485A8D90B710&quot; width=&quot;751&quot; height=&quot;381&quot; filename=&quot;cmder_hangul.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Cmder의 우측하단의 메뉴버튼을 눌러 메뉴를 띄우고 Setting(설정)을 선택하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 472px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9977A7485A8D90B716&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9977A7485A8D90B716&quot; width=&quot;472&quot; height=&quot;424&quot; filename=&quot;cmder_hangul3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Main&lt;/code&gt;의 font 부분을 원하는 글꼴로 선택해주고 Font charset 부분을 Hangul로 선택해주자. 코딩용 글꼴이 없다면 &lt;a href=&quot;https://github.com/naver/d2codingfont&quot; target=&quot;_blank&quot;&gt;D2 Coding 1.3&lt;/a&gt;라도 사용하도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 763px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991274485A8D90B83E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991274485A8D90B83E&quot; width=&quot;763&quot; height=&quot;510&quot; filename=&quot;cmder_hangul4.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Environment&lt;/code&gt;의 입력란에 &lt;code&gt;set LANG=ko_KR.UTF-8&lt;/code&gt;와 &lt;code&gt;chcp utf-8&lt;/code&gt;을 입력하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 763px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99A772405A8D948C0D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99A772405A8D948C0D&quot; width=&quot;763&quot; height=&quot;510&quot; filename=&quot;cmder_hangul5.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Cmder를 재시작하고 확인해보면 한글표기가 정상적으로 이루어진다.&lt;/p&gt;
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 505px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999F2C485A8D90B713&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999F2C485A8D90B713&quot; width=&quot;505&quot; height=&quot;344&quot; filename=&quot;cmder_hangul2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;WSL(bash) 추가&lt;/h4&gt;
&lt;p&gt;Windows Subsystem for Linux(WSL)를 사용하고 있다면 이를 추가해보도록 하자. 이 방법을 따라 다른 셸을 추가할 수도 있다.&lt;/p&gt;
&lt;p&gt;우선, &lt;kbd&gt;Win&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;T&lt;/kbd&gt; 로 &lt;code&gt;Tasks&lt;/code&gt; 창을 불러온다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 763px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99272D3A5A8FE53138&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99272D3A5A8FE53138&quot; width=&quot;763&quot; height=&quot;510&quot; filename=&quot;cmder_addtask.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;하단의 &lt;kbd&gt;+&lt;/kbd&gt; 버튼을 클릭하고 새로운 Task를 추가한다.&lt;/li&gt;
&lt;li&gt;Task 명을 입력한다. &lt;code&gt;bash::ubuntu&lt;/code&gt;라고 입력했는데 bash는 그룹명, ubuntu는 이름으로 인식한다. Cmder는 기본적으로 bash 그룹이 만들어져 있고 각각 mintty(Cygwin) 와 git-for-windows 가 속해있다. 자신의 입맛대로 그룹과 이름을 작성하도록 하자.&lt;/li&gt;
&lt;li&gt;Task parameters는 아이콘 설정을 할 수 있는데 &lt;code&gt;/icon &quot;%USERPROFILE%\AppData\Local\lxss\bash.ico&quot;&lt;/code&gt;라고 하면 WSL의 bash.ico 를 찾아올수 있어야하는데 필자는 실패했다. 그래서 따로 icon 드라이를 별도로 설정하고 &lt;a href=&quot;https://www.iconfinder.com/icons/337155/ubuntu_icon#size=48&quot; target=&quot;_blank&quot;&gt;ubuntu.ico&lt;/a&gt;를 다운로드하여 사용했다.&lt;/li&gt;
&lt;li&gt;명령 입력필드에는 이 작업을 시작할때 수행할 명령을 입력한다. bash 호출은 &lt;code&gt;%windir%\system32\bash.exe ~ -cur_console:p&lt;/code&gt;와 같이 한다.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Cmder 포터블용 셸 사용자설정&lt;/h4&gt;
&lt;p&gt;cmder에서 제공하는 셸 설정파일을 사용하여 사용자 전용 설정을 할 수 있다. 아래의 파일을 편집하여 자신의 구성을 추가할 수 있다.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;thead style=&quot;background: #f5f5f5&quot;&gt;
&lt;tr&gt;
&lt;th&gt;Shell&lt;/th&gt;
&lt;th&gt;Cmder Portable User Config&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cmder&lt;/td&gt;
&lt;td&gt;%CMDER_ROOT%\config\user-profile.cmd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PowerShell&lt;/td&gt;
&lt;td&gt;$ENV:CMDER_ROOT\config\user-profile.ps1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bash/Mintty&lt;/td&gt;
&lt;td&gt;$CMDER_ROOT/config/user-profile.sh&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h4&gt;리눅스의 'profile.d'와 같이 모든 셸 유형을 지원&lt;/h4&gt;
&lt;p&gt;.cmd|.bat, *.ps1, *.sh 스크립트를 작성하고 &lt;code&gt;%CMDER_ROOT%\config\profile.d&lt;/code&gt; 폴더에 넣음으로써 Cmder 시작 구성을 추가할 수 있다.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;thead style=&quot;background: #f5f5f5&quot;&gt;
&lt;tr&gt;
&lt;th&gt;Shell&lt;/th&gt;
&lt;th&gt;Cmder 'Profile.d' Scripts&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cmder&lt;/td&gt;
&lt;td&gt;%CMDER_ROOT%\config\profile.d\*.bat and *.cmd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PowerShell&lt;/td&gt;
&lt;td&gt;$ENV:CMDER_ROOT\config\profile.d\*.ps1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bash/Mintty&lt;/td&gt;
&lt;td&gt;$CMDER_ROOT/config/profile.d/*.sh&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h3&gt;키보드 단축키&lt;/h3&gt;
&lt;h4&gt;탭조작&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;`&lt;/kbd&gt; : 작업표시줄에 숨기기/보이기 토글&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;W&lt;/kbd&gt; : 탭닫기&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;T&lt;/kbd&gt; : 새탭 상자 띄우기 &lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;#Number&lt;/kbd&gt; : 빠른 새탭열기 &lt;kbd&gt;1&lt;/kbd&gt; - CMD, &lt;kbd&gt;2&lt;/kbd&gt; - PowerShell&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Tab&lt;/kbd&gt; : 다음 탭으로 변경&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;#Number&lt;/kbd&gt; : 탭 #Number로 탭 변경&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;Tab&lt;/kbd&gt; : 이전 탭으로 변경&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;Enter&lt;/kbd&gt; : 전체화면으로&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Shell&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;U&lt;/kbd&gt; : 상위(부모) 디렉토리로 이동&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;End&lt;/kbd&gt;, &lt;kbd&gt;Home&lt;/kbd&gt;, &lt;kbd&gt;Ctrl&lt;/kbd&gt; : 윈도우즈의 평소처럼 텍스트를 이동&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;R&lt;/kbd&gt; : 히스토리(지난 명령어) 찾기&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Shift&lt;/kbd&gt; + 마우스 : 버퍼에서 텍스트 선택 및 복사&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;V&lt;/kbd&gt; 혹은 마우스 우클릭 : 텍스트 붙여넣기&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Aliases&lt;/h3&gt;
&lt;h4&gt;Cmder(cmd.exe) Aliases&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;alias 원하는이름=명령어&lt;/code&gt;와 같은 명령을 사용하여 &lt;code&gt;cmd.exe&lt;/code&gt; 세션에 대한 간단한 alias(별칭)을 정의 할 수 있다. cmd.exe 별칭은 &lt;code&gt;$1-9&lt;/code&gt; 또는 &lt;code&gt;$*&lt;/code&gt; 특수문자를 통해 선택적 매개변수를 지원하므로 &lt;code&gt;vi [파일명]&lt;/code&gt;으로 입력된 별칭은 &lt;code&gt;vi=vim.exe $*&lt;/code&gt;로 작성해둔 별칭으로 인해 vim.exe에서 [파일명]을 불러오게 된다.&lt;/p&gt;
&lt;p&gt;cmd.exe 별칭은 좀 더 복잡해질 수도 있는데 &lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/doskey&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;DOSKEY.EXE documentation&lt;/a&gt;에서 복잡한 별칭/매크로에 대한 자세한 내용을 참조하자.&lt;/p&gt;
&lt;p&gt;alias.bat 명령을 사용하여 정의된 별칭은 자동으로 &lt;code&gt;%CMDER_ROOT%\config\user-aliases.cmd&lt;/code&gt;파일에 저장된다.&lt;/p&gt;
&lt;p&gt;별칭 및 다른 프로필 설정을 영구적으로 만들려면 다음 중 하나에 추가하자.&lt;/p&gt;
&lt;p class=&quot;alert alert-info&quot;&gt;이것들은 &lt;code&gt;$CMDER_ROOT/vendor/init.bat&lt;/code&gt;에 의해 순서대로 로드된다. &lt;code&gt;%CMDER_ROOT%&lt;/code&gt;에 저장된 것은 포터블(이식, 이동가능한)한 설정이며 다른 컴퓨터에 cmder를 따른다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;%CMDER_ROOT%\config\profile.d\*.cmd &lt;/strong&gt; 과 &lt;strong&gt;*.bat&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%CMDER_ROOT%\config\user-aliases.cmd&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;%CMDER_ROOT%\config\user-profile.cmd&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Bash.exe|Mintty.exe Aliases&lt;/h4&gt;
&lt;p&gt;Bash 셸은 선택적 매개변수를 사용하여 간단하고 복잡한 별칭을 기본적으로 지원하므로 약간 다르게 작동한다. &lt;code&gt;alias 원하는이름=명령어&lt;/code&gt;를 입력하면 현재 실행중인 세션에 대해서만 별칭을 만든다.&lt;/p&gt;
&lt;p&gt;별칭 및 다른 프로필 설정을 영구적으로 만드려면 다음 중 하나에 추가하자.&lt;/p&gt;
&lt;p class=&quot;alert alert-info&quot;&gt;이것들은 &lt;code&gt;$CMDER_ROOT/vendor/git-for-windows/etc/profile.d/cmder.sh&lt;/code&gt; 명령에의해 로드된다. &lt;code&gt;$CMDER_ROOT&lt;/code&gt;에 저장된 것은 포터블(이식, 이동가능한)한 설정이며 다른 컴퓨터에 cmder를 따른다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;$CMDER_ROOT/config/profile.d/*.sh&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$CMDER_ROOT/config/user-profile.sh&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$HOME/.bashrc&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;$CMDER_ROOT/config/user-profile.sh&lt;/code&gt;에 bash 별칭을 추가하면 다른 기기에 복사하면 cmder를 따라가지만 &lt;code&gt;$HOME/.bashrc&lt;/code&gt;에 정의된 별칭은 그렇지 않는다.&lt;/p&gt;

&lt;h4&gt;PowerShell.exe Aliases&lt;/h4&gt;
&lt;p&gt;PowerShell은 원래부터 &lt;code&gt;[new-alias | set-alias] alias 명령어&lt;/code&gt;와 같은 간단한 별칭을 지원해왔지만 선택적 매개변수를 사용하는 복잡한 별칭은 PowerShell 세션에서 지원되지 않는다. &lt;code&gt;get-help [new-alias|set-alias] -full&lt;/code&gt;를 입력해서 PowerShell 별칭에 대한 도움말을
 보도록하자.&lt;/p&gt;
&lt;p&gt;별칭 및 다른 프로필 설정을 영구적으로 만들려면 다음 중 하나에 추가하자.&lt;/p&gt;
&lt;p class=&quot;alert alert-info&quot;&gt;이것들은 &lt;code&gt;$ENV:CMDER_ROOT\vendor\user-profile.ps1&lt;/code&gt;에 의해 순서대로 로드된다. &lt;code&gt;$ENV:CMDER_ROOT&lt;/code&gt;에 저장된 것은 포터블(이식, 이동가능한)한 설정이며 다른 컴퓨터에 cmder를 따른다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;$ENV:CMDER_ROOT\config\profile.d\*.ps1&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$ENV:CMDER_ROOT\config\user-profile.ps1&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;SSH Agent&lt;/h3&gt;
&lt;p&gt;윈도우즈용 Git에 함께 포함된 SSH를 시작하려면 단순히 &lt;code&gt;vendor/git-for-windows/cmd&lt;/code&gt; 폴더에 있는 &lt;code&gt;start-ssh-agent&lt;/code&gt;를 호출하면된다.&lt;/p&gt;
&lt;p&gt;Cmder를 시작할때 SSH도 실행되기 원한다면 &lt;code&gt;%CMDER_ROOT%/config/user-profile.cmd안에 &lt;code&gt;@call &quot;%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd&quot;&lt;/code&gt;를 추가하도록하자.&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;Git이 포함된 버전&lt;/h3&gt;
&lt;p&gt;Cmder는 기본적으로 Git 설치가 적재되어 배포된다(Full 버전). Cmder를 시작하는 각 인스턴스에서 또 다른 Git 바이너리가 제공되고 있는지 찾으려하며, &lt;code&gt;git.exe&lt;/code&gt; 바이너리를 찾는다면, Cmder는 버전을 적재된 버전과 비교하게 된다. 적재된 &lt;code&gt;git.exe&lt;/code&gt; 바이너리는 사용자가 설치한 것보다 최신 버전인 경우에만 사용된다.&lt;/p&gt;
&lt;p&gt;Git의 선호하는 버전을 &lt;code&gt;%PATH%&lt;/code&gt; 환경변수에 포함시켜서 사용할수 있다.&lt;/p&gt;</description>
      <category>윈도우즈/Windows 일반</category>
      <category>cmder</category>
      <category>console</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/548</guid>
      <comments>https://webdir.tistory.com/548#entry548comment</comments>
      <pubDate>Thu, 1 Mar 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>윈도우즈의 SSH Key 와 WSL의 SSH Key 관리 - WSL</title>
      <link>https://webdir.tistory.com/547</link>
      <description>&lt;p&gt;Git, SSH연결등에는 SSH Key가 필요할 수 있습니다. 윈도우즈나 리눅스에 별도로 서로 다른 SSH Key를 마련한다면 관리에 어려움이 따를 수 있으니 하나의 SSH Key를 사용해보도록 합시다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/998DE24C5A8D3B801A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998DE24C5A8D3B801A&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem for Linux SSH Key설정&quot; filename=&quot;wsl_sshkey.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;SSH Key의 공유&lt;/h3&gt;
&lt;p&gt;처음에는 막연히 윈도우즈에 SSH Key를 생성하고 이를 WSL상에서 마운트한다거나 심볼릭 링크를 걸어주면 해결될 일이라고 생각했다. 문제는 윈도우즈에서 WSL로 마운트되거나 심볼릭 링크가 걸리는 디렉토리, 파일들이 권한 문제가 발생할 수 있다는 것이다. 특히나 SSH는 비공개(개인) 키에 대해 권한이 엄격하기에 윈도우즈로 심볼릭 링크되는 키를 무시해 버린다. SSH의 매뉴얼 페이지에는 다음과 같이 아주 명확하게 설명하고 있다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;~/.ssh/id_rsa&lt;/code&gt;&lt;/p&gt;&lt;p&gt;인증을 위한 개인(private) 키이다. 이러한 파일에는 중요한 데이터가 들어있어 사용자가 읽을 수 있어야하지만 다른 사용자가 접근할 수 없어야한다(읽기/쓰기/실행). SSH는 다른 사용자가 접근할 수 있는 경우 개인 키 파일을 무시한다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;즉, 처음 생각과는 달리 단순히 키 하나를 저장해두고 공유해서 쓰는 방법은 안되고, 해당 키를 복사해서 윈도우즈와 WSL 모두에 넣어두는 방식으로 전환해야 한다. 같은 키를 사용한다는 것에 위안을 삼자.&lt;/p&gt;

&lt;h3&gt;WSL에서 SSH Key 생성&lt;/h3&gt;
&lt;p&gt;사용 권한 문제로 &lt;code&gt;~/.ssh&lt;/code&gt;와 윈도우즈의 &lt;code&gt;C:\Users\사용자명/.ssh&lt;/code&gt;에 넣어둘 것이다. 우선은 WSL을 실행하여 SSH Key를 만들어보자.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ ssh-keygen -t rsa -b 4096

Generating public/private rsa key pair.
Enter file in which to save the key (/home/uzugoer/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/uzugoer/.ssh/id_rsa.
Your public key has been saved in /home/uzugoer/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:aFNdpdB2fEPGgEDLQZ8k0Lwc0aF5ddEAjYKAPLQZ8k uzugoer@LUNA-DEV
The key's randomart image is:
+---[RSA 4096]----+
|  *O+B+*O=o..o.o=|
|   +.=*+* E. O+= |
|    .o  =.o . o+*|
|       + .   o oo|
|        S   .   .|
|                 |
|                 |
|                 |
|                 |
+----[SHA256]-----+&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;생성할 경로와 비밀번호를 묻는데 엔터를 누르면 자신의 홈디렉토리에 &lt;code&gt;.ssh&lt;/code&gt; 디렉토리에 파일이 쌍으로 만들어진다. &lt;code&gt;id_rsa&lt;/code&gt;는 개인키, &lt;code&gt;id_rsa.pub&lt;/code&gt;은 공개키며 , known_hosts는 연결구성을 승락한 곳의 fingerprint 정보를 지니고 있다(원격 접속을
 시도하려는 서버에 처음접속하고 yes를 입력하면 생김)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ pwd
/home/uzugoer/.ssh

$ ll
total 8
drwx------ 0 uzugoer uzugoer  512 Feb 21 17:04 ./
drwxr-xr-x 0 uzugoer uzugoer  512 Feb 20 19:15 ../
-rw------- 1 uzugoer uzugoer 3243 Feb 21 17:04 id_rsa
-rw-r--r-- 1 uzugoer uzugoer  742 Feb 21 17:04 id_rsa.pub
-rw-r--r-- 1 uzugoer uzugoer  426 Feb 20 19:37 known_hosts&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;생성한 키파일들을 윈도우즈의 디렉토리로 복사하기위해&lt;code&gt;cp ~/.ssh/. -R /mnt/c/Users/사용자명/.ssh/&lt;/code&gt; 와 같은 명령을 사용한다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ cp ~/.ssh/. -R /mnt/c/Users/uzugo/.ssh/&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;정상적으로 복사되었다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 876px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99469C495A8D2FE42F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99469C495A8D2FE42F&quot; width=&quot;876&quot; height=&quot;427&quot; filename=&quot;wsl_sshkey.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;known_hosts&lt;/code&gt; 파일은 윈도우즈와 WSL 상에 심볼릭링크를 &lt;code class=&quot;language-bash&quot;&gt;ln -s /mnt/c/Users/사용자명/.ssh/known_hosts ~/.ssh/known_hosts&lt;/code&gt; 와 같이 걸어두어도 된다(윈도우즈와 WSL 연결설정을 따로따로 물으면 귀찮으니까...)&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;ln -s /mnt/c/Users/uzugo/.ssh/known_hosts ~/.ssh/known_hosts

$ cd .ssh |  ll
total 8
drwx------ 0 uzugoer uzugoer  512 Feb 21 17:45 ./
drwxr-xr-x 0 uzugoer uzugoer  512 Feb 20 19:15 ../
-rw------- 1 uzugoer uzugoer 3243 Feb 21 17:04 id_rsa
-rw-r--r-- 1 uzugoer uzugoer  742 Feb 21 17:04 id_rsa.pub
lrwxrwxrwx 1 uzugoer uzugoer   35 Feb 21 17:45 known_hosts -&amp;gt; /mnt/c/Users/uzugo/.ssh/known_hosts*
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;SSH Key를 제외한 다른것들은 윈도우즈에서 리눅스의 다이렉트 접근은 심볼릭링크나 마운트로 대체하고, 파일 생성, 수정, 이동등은 리눅스에서 윈도우즈로는 제한이 없다는 것을 다시 한번 유념하도록 하자.&lt;/p&gt;  

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://florianbrinkmann.com/en/3436/ssh-key-and-the-windows-subsystem-for-linux&quot; target=&quot;_blank&quot;&gt;SSH key and the »Windows Subsystem for Linux«&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://superuser.com/questions/1183176/can-i-share-my-ssh-keys-between-wsl-and-windows&quot; target=&quot;_blank&quot;&gt;can I share my SSH keys between WSL and Windows?&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>SSH Key</category>
      <category>WSL</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/547</guid>
      <comments>https://webdir.tistory.com/547#entry547comment</comments>
      <pubDate>Wed, 28 Feb 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>터미널(CMD, WSL) 컬러셋 변경 - WSL</title>
      <link>https://webdir.tistory.com/546</link>
      <description>&lt;p&gt;WSL 터미널의 색상을 변경하는 방법을 알아봅니다. 기본 윈도우즈 터미널에서 제공하는 방법과 이를 좀 더 간편화해서 제공하는 ColorTool도 사용해봅니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99159B3E5A8D39B603&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99159B3E5A8D39B603&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem Linux colorset&quot; filename=&quot;wsl_color.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;WSL 터미널을 우분투처럼&lt;/h3&gt;
&lt;p&gt;WSL로 사용하는 우분투 배포판의 터미널(콘솔)을 우분투처럼 색상과 폰트를 맞추어 인터페이스를 전환해보도록 한다. 사실 WSL을 설치하면서 터미널을 열어보면 윈도우즈의 CMD(명령프롬프트)의 그것이기에 원시 리눅스들을 사용하던 사람들이라면 이질감이 들기에 인터페이스의 전환은 좀 더 몰입감을
 준다.&lt;/p&gt;

&lt;h4&gt;터미널 색상 변경&lt;/h4&gt;
&lt;p&gt;윈도우즈에서 실행되는 터미널들은 윈도우즈에서 제공하는 기능을 이용하여 설정을 변경할 수 있다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 718px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/992FD44C5A8A7E6936&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F992FD44C5A8A7E6936&quot; width=&quot;718&quot; height=&quot;258&quot; filename=&quot;wsl_terminal.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;만약, 속성이 아닌 기본값을 변경해버리면 WSL 터미널뿐만 아니라 CMD 창도 변하게 되므로 기호에 따라 선택하자. 여기서는 우분투 WSL만을 변경하기 원하기에 윈도우즈 앱에 등록된 우분투 WSL을 실행시켜 해당 터미널만 변경한다.&lt;/p&gt;&lt;p&gt;아래와 같이 창이 열리면 색 - 화면배경 - 슬롯 - RGB 색상값을 입력하면 된다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 453px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/997C17505A8A893A0A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F997C17505A8A893A0A&quot; width=&quot;453&quot; height=&quot;533&quot; filename=&quot;wsl_terminal2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;슬롯마다 아래와 같이 각각 정해진 RGB 값을 입력해준다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#300A24;&quot;&gt;슬롯#1&lt;/span&gt; : Red: 48, Green: 10, Blue: 36&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#3465A4;&quot;&gt;슬롯#2&lt;/span&gt; : Red: 52, Green: 101, Blue: 164&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#4E9A06;&quot;&gt;슬롯#3&lt;/span&gt; : Red: 78, Green: 154, Blue: 6&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#06989A;&quot;&gt;슬롯#4&lt;/span&gt; : Red: 6, Green: 152, Blue: 154&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#CC0000;&quot;&gt;슬롯#5&lt;/span&gt; : Red: 204, Green: 0, Blue: 0&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#75507B;&quot;&gt;슬롯#6&lt;/span&gt; : Red: 117, Green: 80, Blue: 123&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#C4A000;&quot;&gt;슬롯#7&lt;/span&gt; : Red: 196, Green: 160, Blue: 0&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#D3D7CF;&quot;&gt;슬롯#8&lt;/span&gt; : Red: 211, Green: 215, Blue: 207&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#555753;&quot;&gt;슬롯#9&lt;/span&gt; : Red: 85, Green: 87, Blue: 83&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#729FCF;&quot;&gt;슬롯#10&lt;/span&gt; : Red: 114, Green: 159, Blue: 207&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#000;background:#78AE234;&quot;&gt;슬롯#11&lt;/span&gt; : Red: 138, Green: 226, Blue: 52&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#34E2E2;&quot;&gt;슬롯#12&lt;/span&gt; : Red: 52, Green: 226, Blue: 226&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#EF2929;&quot;&gt;슬롯#13&lt;/span&gt; : Red: 239, Green: 41, Blue: 41&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#FCE94F;&quot;&gt;슬롯#14&lt;/span&gt; : Red: 173, Green: 127, Blue: 168&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#fff;background:#AD7FA8;&quot;&gt;슬롯#15&lt;/span&gt; : Red: 252, Green: 233, Blue: 79&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;display:inline-block;padding: 5px;color:#000;background:#EEEEEE;&quot;&gt;슬롯#16&lt;/span&gt; : Red: 238, Green: 238, Blue: 238&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;터미널 글꼴 변경&lt;/h4&gt;
&lt;p&gt;우분투는 공식글꼴을 배포하고 있기에 이를 다운로드하여 설치하면 될것 같지만 현재 CMD, PowerShell, WSL등의 터미널(콘솔)에서 글꼴변경이 정상적으로 이루어지지 않는다. 저장이 안되고 한글 윈도우즈의 터미널 굴림 기본체로 변경되어 버린다.&lt;/p&gt;&lt;p&gt;관련하여 &lt;a href=&quot;https://github.com/Microsoft/WSL/issues/757&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://github.com/Microsoft/WSL/issues/757&lt;/a&gt;에서 이슈가 다뤄지고 있다. 이는 한글, 중국어, 일본어 같이 특정 로케일을 사용하는 언어체계에서 발생하는 문제이며 레지스트리를 변경한다든지 하는 대체방법이 있다. 관련해서는 검색을 통해서도 정보를 얻을 수 있지만 정식으로 패치가 다뤄지기 전에는 그냥 윈도우즈가 인정하는 mono 타입의 글꼴을 설치해서 대체하는 것이 나아보인다. 아래에서 &lt;b&gt;Bitstream Vera Sans Mono&lt;/b&gt;의 글꼴을 다운받고 설치하도록 하자.&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;Ubuntu Font&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://design.ubuntu.com/font/&quot; target=&quot;_blank&quot;&gt;Ubuntu font&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;Fallback Font&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://www.dafont.com/bitstream-vera-mono.font&quot; target=&quot;_blank&quot;&gt;Bitstream Vera Sans Mono&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt;

&lt;p&gt;터미널에서 속성을 선택하고 글꼴탭을 선택한다. 원하는 글꼴과 크기를 선택해보고 터미널을 종료해보고 다시 실행해보도록 한다. 윈도우즈 터미널에서 인식하지 못하는 글꼴이면 재실행시에 다시 기본글꼴로 변경되어 버린다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 453px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9914204C5A8A8BD12A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9914204C5A8A8BD12A&quot; width=&quot;453&quot; height=&quot;533&quot; filename=&quot;wsl_terminal3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;변경을 완료한 터미널은 아래와 같다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 718px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9973E23B5A8A8E5413&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9973E23B5A8A8E5413&quot; width=&quot;718&quot; height=&quot;258&quot; filename=&quot;wsl_terminal4.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Windows Console Colortool&lt;/h3&gt;
&lt;p&gt;MS가 공식으로 윈도우즈 콘솔관련 툴(ColorTool)을 배포하고 있다.&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;Repo&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://github.com/microsoft/console&quot; target=&quot;_blank&quot;&gt;Welcome to the official Windows Console issues &amp;amp; samples repo!&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;Down&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://github.com/Microsoft/console/releases/tag/1708.14008&quot; target=&quot;_blank&quot;&gt;Color Tool Initial Release&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;Doc&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://github.com/Microsoft/Console/tree/master/tools/ColorTool&quot; target=&quot;_blank&quot;&gt;ColorTool - colortool.exe&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt;

&lt;p&gt;다운로드받은 폴더로 이동하여 CMD창을 띄우자.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 651px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9990AF495A8AA76114&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9990AF495A8AA76114&quot; width=&quot;651&quot; height=&quot;426&quot; filename=&quot;wsl_colortool.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;colortool&lt;/code&gt;을 입력하고 도움말을 호출해보면 &lt;code&gt;colortool.exe [옵션] 스키마명&lt;/code&gt;과 같은 사용형식인것을 알 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\MyConfig\colortool&amp;gt; colortool

Usage:
    colortool.exe [option] &amp;lt;schemename&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;colortool 폴더에는 schemes 폴더가 동봉되어 있고 그 안에 &lt;code&gt;xxxx.itermcolors&lt;/code&gt;라는 파일들을 볼 수 있는데 xxx 부분을 스키마명으로 입력하면 된다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;colortool.exe deuteranopia&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/995594445A8AB5A315&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F995594445A8AB5A315&quot; width=&quot;1000&quot; height=&quot;939&quot; filename=&quot;wsl_colortool3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;원하는 스키마를 찾았다면 터미널 상단에서 마우스 우측 &amp;gt; 속성을 누르고 띄어진 창에서 확인을 눌러 저장하면 된다. 위에서 살펴봤듯이 글꼴도 변경해주자.&lt;/p&gt;&lt;p&gt;위의 예에서는 윈도우 탐색기에서 CMD창에 접근해서 설정했기에 같은 방식으로 여는 CMD, &lt;kbd&gt;Win + R&lt;/kbd&gt;이후 &lt;code&gt;cmd&lt;/code&gt; 입력에 한해서만 설정한 내용이 저장되고 단축아이콘을 따로 만들어 실행한다든가 한다면 해당 CMD에서도 따로 적용해야 된다. 이것이 귀찮을때 colortool 옵션 &lt;code&gt;-b&lt;/code&gt; 를 이용하면 기본값과 현재 터미널을 변경하게 되어 터미널을 실행하는 모든 것들이 일괄적으로 적용될 것이다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;colortool.exe -b solarized_dark&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;더 많은 스키마 얻기&lt;/h4&gt;
&lt;p&gt;schemes 폴더를 보면 알수 있듯이 &lt;code&gt;xxx.itermcolors&lt;/code&gt; 형식이라면 다른 스키마들도 작동한다. 한 예로 &lt;a href=&quot;https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/schemes&quot;&gt;iTerm2-Color-Schemes&lt;/a&gt;에서 제공하는 스키마들도 다운로드하여 schemes 폴더에 넣어두면 사용할 수 있다. 색상 스키마를 사용하는 다른 많은 곳들에서도 테마형으로 제공하는 스키마들을 발견할 수 있을것이다.&lt;/p&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://blogs.msdn.microsoft.com/commandline/2017/08/11/introducing-the-windows-console-colortool/&quot; target=&quot;_blank&quot;&gt;Introducing the Windows Console Colortool&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>ColorSet</category>
      <category>WSL</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/546</guid>
      <comments>https://webdir.tistory.com/546#entry546comment</comments>
      <pubDate>Tue, 27 Feb 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>윈도우즈에서 리눅스 활용팁 - WSL</title>
      <link>https://webdir.tistory.com/542</link>
      <description>&lt;p&gt;WSL 관리 및 유용한 도구들에 대한 몇가지 팁을 작성합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99998F3C5A8A437732&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99998F3C5A8A437732&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem for Linux 팁&quot; filename=&quot;wsl_tip.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;WSL 배포판 패키지 업데이트&lt;/h3&gt;
&lt;p&gt;배포판마다 다르지만 우분투 사용자들이라면 아래와 같이 업데이트 및 업그레이드가 가능하다. 처음설치했다면 한번쯤은 해두도록 하자.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ sudo apt-get update
$ sudo apt-get upgrade&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;WSL 배포판 정보확인&lt;/h3&gt;
&lt;p&gt;우분투 사용자라면 아래의 명령어로 배포판 관련정보를 얻을수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;screenFetch&lt;/h4&gt;
&lt;p&gt;만일, 좀더 자세한 정보와 배포판로고까지 첨부되는 화면을 원한다면 &lt;a href=&quot;https://github.com/KittyKatt/screenFetch&quot; target=&quot;_blank&quot;&gt;screenFetch&lt;/a&gt;를 설치해보자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/993E9F4B5A895B5132&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F993E9F4B5A895B5132&quot; width=&quot;1000&quot; height=&quot;666&quot; filename=&quot;wsl_tip_screenfetch.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display: block; max-width:100%; &quot;&gt;출처: https://www.anandtech.com/show/11401/microsoft-build-2017-recap-expecting-windows/5&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;Repo&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://github.com/KittyKatt/screenFetch&quot; target=&quot;_blank&quot;&gt;screenFetch&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt;

&lt;p&gt;우분투 사용자라면 아래와 같이 설치가능하다. 그외 사용자는 위의 Repo에 들려 설치법을 참고하자.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ sudo apt install screenfetch&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;실행화면은 아래와 같다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ screenfetch&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 641px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991580335A8957E708&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991580335A8957E708&quot; width=&quot;641&quot; height=&quot;307&quot; alt=&quot;screenfetch ubuntu&quot; filename=&quot;wsl_tip.png&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;디렉토리 위치에서 CMD 혹은 PowerShell  실행 및 마운트&lt;/h3&gt;
&lt;p&gt;현재 디렉토리위치에서 Powershell을 열기위해서는 윈도우즈 탐색기의 &lt;code&gt;파일&lt;/code&gt; 메뉴로 접근하면 된다. CMD의 경우는 윈도우즈 탐색기의 디렉토리 경로부분에 &lt;code&gt;cmd&lt;/code&gt;라고 입력하고 엔터를 누르면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 811px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/994820455A896AF70F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F994820455A896AF70F&quot; width=&quot;811&quot; height=&quot;536&quot; filename=&quot;wsl_cmd.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;위와 같은 방식으로 접근한 Powershell 혹은 CMD는 아래처럼 자동으로 현재 경로를 인식하고, 이 상태에서 &lt;code&gt;bash&lt;/code&gt;를 입력한다면 해당 드라이브는 자동으로 WSL에 마운트된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 530px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/994C55455A896E5F0F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F994C55455A896E5F0F&quot; width=&quot;530&quot; height=&quot;194&quot; filename=&quot;wsl_cmd.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;WSL에서 디렉토리 마운트 및 이동&lt;/h4&gt;
&lt;p&gt;WSL 콘솔에서는 &lt;code&gt;/mnt/드라이브문자&lt;/code&gt;와 같이 원하는 드라이브를 마운트 시킬수 있고 &lt;code&gt;/mnt/드라이브문자/디렉토리명&lt;/code&gt;과 같이 하위 디렉토리에도 접근이 가능하다. &lt;code&gt;cd /mnt/c&lt;/code&gt;라고 입력하면 마운트와 동시에 해당 드라이브(디렉토리)로 이동 가능하다.&lt;/p&gt;

&lt;h3&gt;WSL에서 윈도우즈 파일사용&lt;/h3&gt;
&lt;p&gt;리눅스 응용 프로그램에서 윈도우즈 파일에 접근해야 하는 경우는 &lt;code&gt;/mnt/c/Users/윈도우즈 사용자명/Documents/Projects/파일명&lt;/code&gt;과 같이 접근할수 있다. 다만 모든 리눅스 응용 프로그램이 &lt;code&gt;/mnt&lt;/code&gt;를 사용하여 파일에 접근할 수 있는 것은 아니다.&lt;/p&gt;
&lt;p&gt;이 문제는 심볼릭링크(symbolic link)를 이용하여 해결할 수 잇는데, 윈도우즈 디렉토리가 &lt;code&gt;C:\Users\윈도우즈 사용자명\Documents\Projects&lt;/code&gt;와 같다면 아래와 같이 원하는 리눅스 디렉토리로 심볼릭링크를 설정하고 접근이 가능해진다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ ln -s &quot;/mnt/c/Users/윈도우즈 사용자명/Documents/Projects&quot; /home/리눅스 사용자명(홈디렉토리명)/Projects&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;콘솔(터미널) 색상 및 글꼴변경&lt;/h3&gt;
&lt;p&gt;관련해서는 &lt;a href=&quot;http://webdir.tistory.com/546?category=754606&quot;&gt;터미널(CMD, WSL) 컬러셋 변경 - WSL&lt;/a&gt;을 참고하자.&lt;/p&gt;

&lt;h3&gt;WSL에서 호스팅서버에 접속&lt;/h3&gt;
&lt;p&gt;근래에 서비스되는 웹호스팅들은 ssh 접속이 지원되는 경우가 많다. 많이들 사용하는 cafe24의 경우도 이를 지원한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;웹에서 자신의 계정으로 cafe24에 접속&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;나의서비스 관리&lt;/strong&gt; &amp;gt; &lt;strong&gt;호스팅관리&lt;/strong&gt; &amp;gt; &lt;strong&gt;보안관리&lt;/strong&gt; &amp;gt; &lt;strong&gt;FTP/Shell 접속설정&lt;/strong&gt;으로 이동해서 &lt;strong&gt;Shell 접속 설정&lt;/strong&gt;을 &lt;strong&gt;허용&lt;/strong&gt;으로 변경한다.&lt;/li&gt;
&lt;li&gt;WSL을 실행하고 &lt;code&gt;ssh 자신의 호스팅ID@호스팅주소&lt;/code&gt;로 연결합니다. 도메인을 가지고 있다면 도메인으로 연결해도 되고 그렇지 않다면 &lt;code&gt;호스팅ID.cafe24.com&lt;/code&gt; 으로 연결해도 된다.
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ ssh uzugoer@uzuro.com&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;첫 연결때는 연결을 물으니 yes를 입력하고, 비밀번호는 FTP접속비밀번호를 입력하면 된다. 기본 명령어를 이것 저것 입력해보도록 하자.
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;The authenticity of host 'uzuro.com (183.111.174.88)' can't be established.
ED25519 key fingerprint is SHA256:XM0Bu/blKrwAlXR6oy8MF6FSRTj8PJGRJD3FyHeILmk.
Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'uzuro.com' (ED25519) to the list of known hosts.

uzugoer@uzuro.com's password:
Last login: Tue Feb 20 19:28:33 2018 from 121.139.132.56

[uzugoer@uws64-184 ~]$ pwd
/home/hosting_users/uzugoer

[uzugoer@uws64-184 ~]$ ls -la
합계 124
drwx------   3 uzugoer uzugoer  4096  2월 20 19:37 .
drwx-----x 995 root    root    36864  2월  1 10:10 ..
-rw-------   1 uzugoer uzugoer    52  2월 20 19:37 .bash_history
-rw-------   1 uzugoer uzugoer   356  7월 21  2015 .bash_profile
-rw-r--r--   1 uzugoer uzugoer 23474  2월 20 07:02 .ftpaccess
-rw-r--r--   1 uzugoer uzugoer 28689  2월 20 07:02 .ftpaccess2
-rwxr-x---   1 uzugoer uzugoer    66  7월 21  2015 .htaccess
-rw-r--r--   1 uzugoer uzugoer    11  2월 20 19:37 .lastlogin
-rw-r--r--   1 uzugoer uzugoer     6  2월 20 19:37 .logincount
-rwxr-x---   1 uzugoer uzugoer    35  7월 21  2015 .my.cnf
drwxr-xr-x   4 uzugoer uzugoer  4096  2월 12 09:20 www
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;mysql도 접속해볼 수 있다. &lt;code&gt;mysql -u호스트ID -p&lt;/code&gt; 입력후 DB 비밀번호를 입력하면 된다.&lt;/li&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;[uzugoer@uws64-184 ~]$ mysql -uuzugoer -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is ******
Server version: 5.1.45p1-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| uzugoer            |
+--------------------+
2 rows in set (0.01 sec)&lt;/code&gt;&lt;/pre&gt;
&lt;/ul&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>WSL</category>
      <category>WSL 팁</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/542</guid>
      <comments>https://webdir.tistory.com/542#entry542comment</comments>
      <pubDate>Mon, 26 Feb 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>윈도우즈와의 상호 운용성 - WSL</title>
      <link>https://webdir.tistory.com/545</link>
      <description>&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99723C495A894D8A0C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99723C495A894D8A0C&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem for Linux 상호운용성&quot; filename=&quot;wsl_interoperability.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;윈도우즈 명령프롬프트에서 리눅스 도구 실행&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;wsl.exe 명령어&lt;/code&gt;를 사용하여 윈도우즈 명령 프롬프트(CMD 또는 PowerShell)에서 리눅스 바이너리를 실행한다. 바이너리는 아래와 같이 호출된다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;현재 CMD 또는 PowerShell 프롬프트와 동일한 작업 디렉토리 사용&lt;/li&gt;
&lt;li&gt;WSL 기본 사용자(default user)로 실행&lt;/li&gt;
&lt;li&gt;호출 프로세스 및 터미널과 동일한 윈도우즈 관리 권한을 가진다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;예를 들면,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\temp&amp;gt; wsl ls -la
&amp;lt;- contents of C:\temp -&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;리눅스 명령에서&lt;code&gt;wsl.exe&lt;/code&gt;는 WSL에서 실행되는 명령처럼 처리된다(sudo, piping, 파일 리다이렉션과 같은 것들).&lt;/p&gt;&lt;p&gt;예를 들면,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\temp&amp;gt; wsl sudo apt-get update
[sudo] password for username:
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;WSL 및 윈도우즈 명령을 섞은 예&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\temp&amp;gt; wsl ls -la | findstr &quot;foo&quot;
-rwxrwxrwx 1 root root     14 Sep 27 14:26 foo.bat

C:\temp&amp;gt; dir | wsl grep foo
09/27/2016  02:26 PM                14 foo.bat

C:\temp&amp;gt; wsl ls -la &amp;gt; out.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;wsl.exe&lt;/code&gt;에 전달 된 명령은 수정하지 않고 WSL 프로세스로 전달된다. 파일 경로는 WSL 형식으로 지정해야 한다. 예를 들면&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\temp&amp;gt; wsl ls -la /proc/cpuinfo
-r--r--r-- 1 root root 0 Sep 28 11:28 /proc/cpuinfo

C:\temp&amp;gt; wsl ls -la &quot;/mnt/c/Program Files&quot;
&amp;lt;- contents of C:\Program Files -&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;WSL에서 윈도우즈 도구 실행&lt;/h3&gt;
&lt;p&gt;WSL은 &lt;code&gt;[binary name].exe&lt;/code&gt;를 사용하여 WSL 명령줄에서 윈도우즈 바이너리를 직접 호출할 수 있다. 윈도우즈 실행 파일을 보다 쉽게 실행하기 위해 윈도우즈 경로는 리눅스의 &lt;code&gt;$PATH&lt;/code&gt;에 포함되어 있다.&lt;/p&gt;&lt;p&gt;이 방식으로 실행되는 응용 프로그램에는 다음과 같은 속성을 가지게 된다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;작업 디렉토리(working directory)를 WSL 명령 프롬프트로 유지(예외는 아래에 설명되어 있다).&lt;/li&gt;
&lt;li&gt;WSL 프로세스와 동일한 권한을 가짐&lt;/li&gt;
&lt;li&gt;활성 윈도우즈 사용자로 실행&lt;/li&gt;
&lt;li&gt;CMD 프롬프트에서 직접 실행한 것처럼 윈도우즈 작업 관리자에 나타난다.&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ notepad.exe&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;WSL에서 실행되는 윈도우즈 실행파일은 원시 리눅스 실행 파일과 비슷하게 처리된다(piping, redirect, background 작업을 예상대로 수행할 수 있음). pipe 예제를 들어보면&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ ipconfig.exe | grep IPv4 | cut -d: -f2
172.21.240.1
10.159.21.24&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;윈도우즈 명령 및 WSL 명령을 섞어 사용한다면&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ ls -la | findstr.exe foo.txt

$ cmd.exe /c dir
&amp;lt;- contents of C:\ -&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;윈도우즈 바이너리는 파일 확장명을 포함하고 파일 대소문자와 일치하며 실행 가능해야한다. 배치 스크립트를 포함한 비 실행 파일. &lt;code&gt;dir&lt;/code&gt;과 같은 CMD 기본 명령은 &lt;code&gt;cmd.exe /C&lt;/code&gt; 명령으로 실행할 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ cmd.exe /C dir
&amp;lt;- contents of C:\ -&amp;gt;

$ PING.EXE www.microsoft.com
Pinging e1863.dspb.akamaiedge.net [2600:1409:a:5a2::747] with 32 bytes of data:
Reply from 2600:1409:a:5a2::747: time=2ms&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;매개변수(parameter)는 수정되지 않은 윈도우즈 바이너리로 전달된다. 예를들어, 다음 명령은 &lt;code&gt;notepad.exe&lt;/code&gt;에서 &lt;code&gt;C:\temp\foo.txt&lt;/code&gt;를 연다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ notepad.exe &quot;C:\temp\foo.txt&quot;
$ notepad.exe C:\\temp\\foo.txt&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;WSL에서 윈도우즈 응용 프로그램과 함께 VoIF(/mnt/&amp;lt;x&amp;gt;에 없는 파일)에 있는 파일을 수정하는 것은 지원되지 않는다.&lt;/p&gt;&lt;p&gt;기본적으로, WSL은 윈도우즈 바이너리의 작업 디렉토리를 현재 WSL 디렉토리로 유지하려고 시도하지만 작업 디렉토리가 VoIFs인 경우 인스턴스 생성 디렉토리로 되돌아간다. 예를들면, &lt;code&gt;wsl.exe&lt;/code&gt;는 처음에 &lt;code&gt;C:\temp&lt;/code&gt;에서 시작되고 현재 WSL 디렉토리가 사용자의 홈으로 변경된다. 사용자의 홈 디렉토리에서 &lt;code&gt;notepad.exe&lt;/code&gt;가 호출되면 WSL은 자동으로 &lt;code&gt;C:\temp&lt;/code&gt;를 notepad.exe 작업 디렉토리로 되돌리게된다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;C:\temp&amp;gt; wsl
/mnt/c/temp/$ cd ~
~$ notepad.exe foo.txt
~$ ls | grep foo.txt
~$ exit

exit
C:\temp&amp;gt;dir | findstr foo.txt
09/27/2016  02:15 PM                14 foo.txt&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;윈도우즈와 WSL 간의 환경변수 공유&lt;/h3&gt;
&lt;p class=&quot;alert alert-warning&quot;&gt;윈도우즈 인사이더 빌드 17063 이상에서 사용가능&lt;/p&gt;&lt;p&gt;17063 이전버전에는 WSL이 접근할 수 있는 윈도우즈 환경변수만 PATH(WSL 아래에서 Win32 실행파일을 시작할 수 있었음).&lt;/p&gt;&lt;p&gt;17063 버전부터는 WSL과 윈도우즈는 WSL에서 실행되는 윈도우즈 및 리눅스 배포판을 연결하기 위해 만들어진 특수 환경변수인 &lt;code&gt;WSLENV&lt;/code&gt;를 공유한다.&lt;/p&gt;

&lt;h4&gt;WSLENV의 속성&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;공유됨, 윈도우즈와 WSL 환경 모두에 존재한다.&lt;/li&gt;
&lt;li&gt;윈도우즈와 WSL간에 공유할 환경 변수목록이다.&lt;/li&gt;
&lt;li&gt;윈도우즈 및 WSL에서 잘 작동하도록 환경 변수를 형식화 할 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;WSLENV&lt;/code&gt;에는 환경변수 변환방법에 영향을 주는 네가지 플래그(flag)가 있다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/p&lt;/code&gt; : WSL/리눅스 스타일 경로와 Win32 경로 사이의 경로를 변환한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/l&lt;/code&gt; : 환경변수가 경로 목록임을 나타낸다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/u&lt;/code&gt; : Win32에서 WSL을 실행할 때만이 환경변수가 포함되어야 함을 나타낸다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/w&lt;/code&gt; : 이 환경변수는 WSL에서 Win32를 실행할 때만 포함되어야 함을 나타낸다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;필요한 경우 플래그를 결합할 수 있다.&lt;/p&gt;

&lt;h3&gt;상호운용성(interop) 비활성화&lt;/h3&gt;
&lt;p&gt;사용자는 root로 다음 명령을 실행하여 단일 WSL 세션에 대한 윈도우즈 바이너리를 실행할 수 있는 기능을 비활성화 할 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ echo 0 &amp;gt; /proc/sys/fs/binfmt_misc/WSLInterop&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;윈도우즈 바이너리를 다시 활성화하려면 모든 WSL 세션을 종료하고 bash.exe를 다시 실행하거나 root로 다음 명령을 실행하면 된다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;echo 1 &amp;gt; /proc/sys/fs/binfmt_misc/WSLInterop&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;상호운용성(interop)을 비활성화하면 WSL 세션간에 유지되지 않는다(새 세션이 시작되면 상호운용성이 다시 활성화됨).&lt;/p&gt;&lt;p class=&quot;alert alert-info&quot;&gt;사용하는 버전이 Creators Update and Anniversary Update 버전이라면 위에서 설명한 것들과 다르게 작동하는 부분이 있을수 있다. &lt;a href=&quot;https://docs.microsoft.com/ko-kr/windows/wsl/interop#creators-update-and-anniversary-update&quot;&gt;Creators Update and Anniversary Update&lt;/a&gt;를 확인하도록 하자.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/ko-kr/windows/wsl/interop&quot; target=&quot;_blank&quot;&gt;WSL interoperability with Windows&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>interoperability</category>
      <category>WSL</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/545</guid>
      <comments>https://webdir.tistory.com/545#entry545comment</comments>
      <pubDate>Fri, 23 Feb 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>관리 및 구성 - WSL</title>
      <link>https://webdir.tistory.com/544</link>
      <description>&lt;p&gt;Applies to Windows 10 Fall Creators Update 와 그 이후버전들에서 사용가능하다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99450E385A890D7109&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99450E385A890D7109&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem for Linux 관리 및 구성&quot; filename=&quot;wsl_manage.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;


&lt;h3&gt;멀티 리눅스 배포판 관리&lt;/h3&gt;
&lt;p&gt;WSL Config(&lt;code&gt;wslconfig.exe&lt;/code&gt;)는 WSL에서 실행되는 리눅스 배포를 관리하기위한 명령줄(command-line) 도구이다. 이 도구를 이용하여 이용가능한 배포판을 나열하고 기본 배포판을 설정하고, 배포판을 제거할 수 있다.&lt;/p&gt;&lt;p&gt;WSL Config는 배포판들에 대한 확장, 조정하는 설정에 유용하지만, 각각의 배포판은 자체 설정(구성, configuration)을 독립적으로 관리한다. 리눅스 배포판별 명령을 보려면 &lt;code&gt;배포만명.exe /?&lt;/code&gt;(ex. &lt;code&gt;ubuntu /?&lt;/code&gt;)를 실행하자.&lt;/p&gt;&lt;p&gt;&lt;code&gt;wslconfig /?&lt;/code&gt;를 입력하면 WSL Config에 사용할 수 있는 모든 옵션을 확인할 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\Users\uzugo&amp;gt;wslconfig /?
Linux를 위한 Windows 하위 시스템의 관리 작업을 수행합니다.

사용 방법:
    /l, /list [/all] - 등록된 배포를 나열합니다.
        /all - 현재 설치되어 있거나 제거된 배포를 포함하여
               선택적으로 모든 배포를 나열합니다.
    /s, /setdefault &lt;distributionname&gt; - 지정된 배포를 기본으로 설정합니다.
    /u, /unregister &lt;distributionname&gt; - 배포의 등록을 취소합니다.&lt;/distributionname&gt;&lt;/distributionname&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;배포판 목록확인&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wslconfig /list&lt;/code&gt; : WSL에서 사용하고 있는 리눅스 배포판 목록을 표시한다. 배포판이 나열되면 설치되어 사용할 준비가 된 것이다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wslconfig /list /all&lt;/code&gt; : 현재 사용할 수 없는 것을 포함해서 모든 배포판을 나열한다. 설치중이거나 설치 제거중이거나 손상된 상태일 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;기본 배포판(default distribution) 설정&lt;/h4&gt;
&lt;p&gt;WSL을 시작하고 실행하는 세 가지 방법이 있다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;wsl.exe&lt;/code&gt; 혹은 &lt;code&gt;bash.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;명령 프롬프트에서 &lt;code&gt;wsl&lt;/code&gt; 혹은 &lt;code&gt;bash -c&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;배포판명칭(ex. ubuntu) : 윈도우즈 메뉴에서 설치된 앱을 실행하는 것과 같다(리눅스 콘솔에서 실행한 것과 같으며 이는 명령프롬프트나 파워셸에서 실행한 것과는 다르다).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;1, 2번의 경우는 WSL을 실행을 위한 기본 배포판(default distribution)이 선택되어 있어야 한다. 명시적으로 기본값을 설정하지 않은 경우, 처음 설치시에 설정된다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wslconfig /setdefault 배포판명&lt;/code&gt; : 기본 배포판을 설정한다. 예를 들어, 우분투 배포판을 사용한다면 &lt;code&gt;wslconfig /setdefault Ubuntu&lt;/code&gt;와 같이 기본 배포판을 설정한다. &lt;code&gt;wsl -c npm init&lt;/code&gt;을 실행하면 우분투에서 실행될 것이다. &lt;code&gt;wsl&lt;/code&gt;을 실행하면 우분투 세션이 열린다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;배포판 재설치 및 등록취소(unregister)&lt;/h4&gt;
&lt;p&gt;리눅스 배포판은 윈도우즈 스토어를 통해 설치할 수 있지만 제거는 불가능하다. WSL Config를 사용하면 배포판을 등록해제/제거할 수 있다.&lt;/p&gt;&lt;p&gt;또한, 등록을 해제하면 배포판을 다시 설치할 수 있다.&lt;/p&gt;&lt;p class=&quot;alert alert-warnning&quot;&gt;등록을 취소하면 해당 배포판과 관련된 모든 데이터, 설정 및 소프트웨어가 영구적으로 손실된다. 스토어에서 다시 설치하면 배포판의 깨끗한 사본이 설치된다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wslconfig /unregister 배포판명&lt;/code&gt; : WSL에서 배포판을 등록취소하여 다시 설치하거나 정리할 수 있다. 예를들어, 우분투 배포판을 사용한다면 &lt;code&gt;wslconfig /unregister Ubuntu&lt;/code&gt;는 WSL에서 사용 가능한 배포판에서 우분투를 제거한다. &lt;code&gt;wslconfig /list&lt;/code&gt;를 실행하면 나열되지 않는다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;재설치는 윈도우즈 스토어에서 해당 배포판을 찾아 설치하면 된다.&lt;/p&gt;

&lt;h3&gt;WSL 실행 설정&lt;/h3&gt;
&lt;p class=&quot;alert alert-info&quot;&gt;윈도우즈 버전 17093 과 그 이후 버전들에서 이용가능하다.&lt;/p&gt;&lt;p&gt;&lt;code&gt;wsl.conf&lt;/code&gt;를 사용하여 WSL을 시작할때마다 적용될 WSL의 특정 기능을 자동으로 구성한다. 현재로서는 자동 마운트 옵션과 네트워크 구성이 포함된다.&lt;/p&gt;&lt;p&gt;&lt;code&gt;wsl.conf&lt;/code&gt;는 리눅스 배포판의 &lt;code&gt;/etc/wsl.conf&lt;/code&gt;에 위치하며, 만일 파일이 없다면 직접 만들어도 된다. WSL은 파일의 존재를 감지하고 그 내용을 읽어들이며, 파일이 없거나 잘못된 형식(부적절한 마크업)인 경우 WSL은 이를 무시하고 정상적으로 계속 실행된다.&lt;/p&gt;&lt;p&gt;아래는 배포판에 추가할 수 있는 샘플 &lt;code&gt;wsl.conf&lt;/code&gt;파일이다.
&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;# Enable extra metadata options by default
[automount]
enabled = true
root = /windir/
options = &quot;metadata,umask=22,fmask=11&quot;
mountFsTab = false

# Enable DNS – even though these are turned on by default, we’ll specify here just to be explicit.
[network]
generateHosts = true
generateResolvConf = true&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;설정 옵션&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;.ini&lt;/code&gt; 작성 규칙을 준수하여, 키(key)는 섹션에서 선언한다. WSL은 두가지 섹션을 지원하고 있다(automount, network).&lt;/p&gt;

&lt;h5&gt;[automount]&lt;/h5&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;key&lt;/th&gt;
&lt;th&gt;value&lt;/th&gt;
&lt;th&gt;default&lt;/th&gt;
&lt;th&gt;notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;enabled&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;이면 고정 드라이브(ex. c:/ 혹은 d:/)가 &lt;code&gt;/mnt&lt;/code&gt; 아래 DrvFs 파일시스템으로 자동 마운트된다. &lt;code&gt;false&lt;/code&gt;이면 드라이브가 자동적으로 마운트되지 않지만 수동으로 또는 fstab을 통해 마운트 할 수 있음을 의미한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;root&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/mnt/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;자동적으로 마운트되어 고정적인 드라이브로 사용될 디렉토리를 설정한다. 예를들어, &lt;code&gt;/windir/&lt;/code&gt;에 WSL 디렉토리가 있고 그 디렉토리를 루트로 지정한 경우 고정된 드라이브가 &lt;code&gt;/windir/c&lt;/code&gt;처럼 마운트되는 것을 알 수 있다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mountFsTab&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;이면 &lt;code&gt;/etc/fstab&lt;/code&gt;을 WSL 시작에서 처리하도록 설정한다. /etc/fstab은 SMB 공유와 같은 다른 파일 시스템을 선언할 수 있는 파일이다. 따라서 시작할때 WSL에서 파일시스템을 자동으로 마운트할 수 있게된다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;option&lt;/td&gt;
&lt;td&gt;comma-separated list of values (쉼표로 구분된 값의 나열)&lt;/td&gt;
&lt;td&gt;empty string (빈 문자열)&lt;/td&gt;
&lt;td&gt;이 값은 기본 DrvFs 마운트 옵션 문자열에 추가된다. 오직 DrvFs 전용 옵션만 지정할 수 있다. 옵션은 일반적으로 플래그(flag)로 구문분석되는(parse) 마운트 바이너리는 지원되지 않는다. 이러한 옵션을 명시적으로 지정하려면 /etc/fstab에 원하는 드라이브를 포함시켜야 한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;기본적으로, WSL은 &lt;strong&gt;uid&lt;/strong&gt;와 &lt;strong&gt;gid&lt;/strong&gt;를 기본 사용자(default user)의 값으로 설정한다(우분투 배포판에서는 기본 사용자가 uid=1000, gid=1000). 만일 사용자가 이 키를 통해 명시적으로 gid 또는 uid 옵션을 지정하면, 관련 값을 덮어쓰게된다. 그렇지 않다면 기본값이 항상 추가된다.&lt;/p&gt;&lt;p class=&quot;alert alert-warning&quot;&gt;이 옵션들은 자동으로 마운트된 모든 드라이브의 마운트 옵션으로 적용된다. 특정 드라이브에 대한 옵션만 변경하려면 /etc/fstab을 대신 사용하도록 하자.&lt;/p&gt;

&lt;h5&gt;[network]&lt;/h5&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;key&lt;/th&gt;
&lt;th&gt;value&lt;/th&gt;
&lt;th&gt;default&lt;/th&gt;
&lt;th&gt;notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;generateHosts&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;이면 WSL이 &lt;code&gt;/etc/hosts&lt;/code&gt;를 생성하도록 설정된다. &lt;code&gt;hosts&lt;/code&gt; 파일에는 해당 IP 주소에 해당하는 호스트 이름의 정적맵(static map)이 들어있다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;generateResolvConf&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;이면 WSL이 &lt;code&gt;/etc/resolv.conf&lt;/code&gt;를 생성하도록 설정된다. &lt;code&gt;resolv.conf&lt;/code&gt;는 지정된 호스트 이름을 해당 IP주소로 확인할 수 있는 DNS 목록이 들어 있다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;hhttps://docs.microsoft.com/ko-kr/windows/wsl/wsl-config&quot; target=&quot;_blank&quot;&gt;Manage and configure WSL&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>configure</category>
      <category>manage</category>
      <category>WSL</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/544</guid>
      <comments>https://webdir.tistory.com/544#entry544comment</comments>
      <pubDate>Thu, 22 Feb 2018 10:00:00 +0900</pubDate>
    </item>
    <item>
      <title>사용자계정과 권한 - WSL</title>
      <link>https://webdir.tistory.com/543</link>
      <description>&lt;p&gt;WSL의 기본 사용자의 비밀번호 재설정, 비밀번호를 잃어버렸을때의 대체방안, WSL의 기본적인 윈도우와 리눅스간의 권한에 대하여 알아봅니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/992CAD455A88FBA41E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F992CAD455A88FBA41E&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem for Linux 사용자계정과 권한&quot; filename=&quot;wsl_account.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;WSL 설치시 설정하게되는 계정&lt;/h3&gt;
&lt;p&gt;WSL 설치시에 사용자 계정을 입력하도록 요구받는데, 이때 이 계정은 몇가지 특수 속성을 자동으로 부여받는다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WSL을 실행하면 자동으로 로그인하는 기본 사용자(default user)로 구성된다.&lt;/li&gt;
&lt;li&gt;기본적으로 리눅스 관리자(administrator) sudo 그룹에 포함된다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WSL 설치시 배포판을 선택할수 있듯이 각각의 배포판마다 자체적인 리눅스 사용자 계정과 암호를 설정하며, 배포판을 추가, 재설치 또는 재설정할 때마다 리눅스 사용자 계정을 구성해야한다.&lt;/p&gt;&lt;p class=&quot;alert alert-info&quot;&gt;리눅스 사용자 계정은 배포판마다 독립적이며, 윈도우즈 사용자 계정과도 독립된 계정이다.&lt;/p&gt;

&lt;h3&gt;리눅스 사용자 계정 비밀번호 재설정&lt;/h3&gt;
&lt;p&gt;리눅스 계정의 비밀번호를 알고 있다면 &lt;code&gt;passwd&lt;/code&gt; 명령어를 입력하여 변경할 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;passwd&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;만일, 비밀번호를 잃어버렸다면 배포판마다 다르지만 root 유저를 기본 사용자로 등록하는 방법을 활용한다.&lt;/p&gt;
&lt;h4&gt;우분투 배포판 사용자&lt;/h4&gt;
&lt;p&gt;기본 사용자계정이 tester 라고 가정하에 진행해보자&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;윈도우즈상에서 CMD(명령 프롬프트)창을 연다.&lt;/li&gt;
&lt;li&gt;기본 사용자(default user)를 root로 설정한다.
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;c:\&amp;gt; ubuntu config --default-user root&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;WSL을 실행하면 root로 로그인된다.&lt;/li&gt;
&lt;li&gt;사용자 계정의 비밀번호를 재설정한다.
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ passwd tester(사용자명)&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;다시 윈도우즈로 돌아와 CMD창을 열고 기본 사용자를 재설정한다.
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\&amp;gt; ubuntu config --default-user tester(사용자명)&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;다른 배포판 사용자&lt;/h4&gt;
&lt;p&gt;다른 배포판을 사용한다면 CMD창을 열고 &lt;code&gt;배포판명.exe /?&lt;/code&gt;와 같은 명령어로 기본 사용자를 설정하는 방법을 알아낼수 있다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 815px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/994109375A86C28F01&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F994109375A86C28F01&quot; width=&quot;815&quot; height=&quot;512&quot; filename=&quot;wsl_passwd.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more543_0&quot; data-id=&quot;543_0&quot;&gt;윈도우즈 10 크리에터즈 업데이트 혹은 그 이전 버전을 사용자 더보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content543_0&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less543_0&quot; data-id=&quot;543_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;h4&gt;윈도우즈 10 크리에터즈 업데이트 혹은 그 이전 버전을 사용자&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;CMD창을 열고 기본 사용자를 아래의 명령어로 변경한다.
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\&amp;gt; lxrun /setdefaultuser root&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;bash를 실행해 root로 로그인한다.
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\&amp;gt; bash.exe&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;비밀번호를 재설정하고 리눅스 콘솔창을 닫는다.
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ passwd 사용자명
$ exit&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;윈도우즈에서 다시 CMD창을 열고 기본 사용자를 원상태로 되돌린다.
&lt;pre&gt;&lt;code class=&quot;language-cmd&quot;&gt;C:\&amp;gt; lxrun.exe /setdefaultuser 사용자명&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less543_0&quot; data-id=&quot;543_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;h3&gt;WSL 권한(permission)&lt;/h3&gt;
&lt;p&gt;WSL 사용에 있어 유의해야할 두 가지 중요한 개념은 아래와 같다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;윈도우즈 권한 모델은 윈도우즈 자원(resource)에 대한 프로세스를 통제한다.&lt;/li&gt;
&lt;li&gt;리눅스 권한 모델은 리눅스 자원(resource)에 대한 프로세스를 제어한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;WSL에서 리눅스를 실행할때 리눅스는 실행하는 프로세스와 동일한 윈도우즈 권한을 가진다.&lt;/p&gt;&lt;p&gt;리눅스는 다음 두 가지 권한 수준 중 하나로 시작할 수 있다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Normal (non-elevated)&lt;/strong&gt; : 리눅스는 로그인 한 사용자의 권한으로 실행된다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elevated/admin&lt;/strong&gt; : 리눅스는 elevated/admin 윈도우즈 권한으로 실행된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
높은(elevated) 프로세스는 시스템 전반의 설정과 데이터를 변경/손상시킬 수 있으며 보호된 파일과 폴더에 접근/수정할수 있기때문에, 윈도우즈 또는 리눅스 응용 프로그램/도구/셸(shell)인지 여부에 상관없이 높은 프로세스를 시작하지 마십시오!
&lt;/blockquote&gt;

&lt;p&gt;위의 윈도우즈 권한은 리눅스 인스턴스 내의 권한과는 별개이다. 이는 리눅스 &quot;루트 권한&quot;은 리눅스 환경 및 파일시스템내에서 사용자의 권한에만 영향을 주며 윈도우즈 권한에 아무런 영향을 미치지 않는다. 따라서 리눅스 프로세스를 루트(ex. sudo를 통해)로 실행하면 리눅스 환경에서 해당 프로세스 관리자 권한만 부여된다.&lt;/p&gt;&lt;p&gt;예를 들어, Administrator 권한이 없는 Bash 세션에서는 &lt;code&gt;cd /mnt/c/Users/Administrator&lt;/code&gt;로 Administrator 폴더에 접근하면 &quot;Permission Denied&quot; 에러를 접하지만, 윈도우즈 Administrator 권한이 있는 Bash 세션에서는 접근이 가능하다.&lt;/p&gt;&lt;p&gt;리눅스에서는 윈도우즈내의 권한이 윈도우즈에 의해 관리되므로 &lt;code&gt;sudo cd /mnt/c/Users/Administrator&lt;/code&gt;를 입력해도 Administrator 디렉토리에 대한 접근 권한이 부여되지 않는다.&lt;/p&gt;&lt;p&gt;리눅스 사용권한 모델은 사용자가 현재 리눅스 사용자를 기반으로 권한을 가진 리눅스 환경에서 중요하다. 예를들어, sudo 그룹의 사용자가 &lt;code&gt;sudo apt update&lt;/code&gt; 실행할 수 있다.&lt;/p&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/ko-kr/windows/wsl/user-support&quot; target=&quot;_blank&quot;&gt;User Accounts and Permissions&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>permission</category>
      <category>User Account</category>
      <category>WSL</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/543</guid>
      <comments>https://webdir.tistory.com/543#entry543comment</comments>
      <pubDate>Wed, 21 Feb 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>윈도우즈에서 리눅스 설치 - WSL</title>
      <link>https://webdir.tistory.com/541</link>
      <description>&lt;p&gt;윈도우즈10에서 WSL 설치방법에 대하여 알아봅니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/992A1A4A5A88F3241A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F992A1A4A5A88F3241A&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem for Linux 설치&quot; filename=&quot;wsl_install.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;WSL 시스템 요구사항&lt;/h3&gt;
&lt;p&gt;아래의 요구사항을 충족시키지 못한다면 아쉽지만 WSL을 설치할 수 없다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OS&lt;/strong&gt; : Windows 10 버전 1607이상&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;아키텍처&lt;/strong&gt; : x64&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;계정&lt;/strong&gt; : 이메일 계정으로 PC로그인 (로컬사용자 제외 - MS스토어 사용을 위해)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;윈도우즈 버전확인&lt;/h4&gt;
&lt;p&gt;윈도우즈 작업표시줄의 검색 상자에 &lt;kbd&gt;PC 정보&lt;/kbd&gt;라고 입력하여 검색하고 이를 선택한다(&lt;b&gt;설정 &amp;gt; 시스템 &amp;gt; 정보&lt;/b&gt;). 아래와 같이 해당 항목들을 살펴보고 자신의 시스템을 확인하자.&lt;/p&gt;&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999F903B5A852A4921&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999F903B5A852A4921&quot; width=&quot;1000&quot; height=&quot;668&quot; filename=&quot;win_version.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;만일, 버전이 낮다면 &lt;b&gt;'설정 &amp;gt; 업데이트 및 복구 &amp;gt; Windows 업데이트'&lt;/b&gt;를 통해 해결하자.&lt;/p&gt;

&lt;h3&gt;WSL 설치&lt;/h3&gt;
&lt;p&gt;아래와 같이 &lt;b&gt;'제어판 &amp;gt; 프로그램 &amp;gt; 프로그램 및 기능 - Windows 기능 켜기/끄기'&lt;/b&gt;를 선택하고 &lt;strong&gt;Linux용 Windows 하위 시스템&lt;/strong&gt;의 체크박스를 활성화하면 재부팅이되면서 기능설치가 이루어진다.&lt;/p&gt;&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 911px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99DAA1385A85340C0E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99DAA1385A85340C0E&quot; width=&quot;911&quot; height=&quot;680&quot; filename=&quot;wsl_init.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;혹은 관리자 권한으로 &lt;b&gt;PowerShell&lt;/b&gt;을 띄우고 아래의 명령어를 실행해도 된다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;리눅스 배포판 선택 및 설치&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Store&lt;/strong&gt;로 이동해서 linux로 검색어를 입력하면 배포판링크로 이동할 수 있다.&lt;/p&gt;&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99FA6D345A8538781D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99FA6D345A8538781D&quot; width=&quot;1000&quot; height=&quot;483&quot; filename=&quot;wsl_init2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;원하는 배포판을 선택할 수 있는데 필자는 우분투를 선택했다.&lt;/p&gt;&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99C1C53D5A8538D713&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99C1C53D5A8538D713&quot; width=&quot;1000&quot; height=&quot;628&quot; filename=&quot;wsl_init3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;다운로드를 받자.&lt;/p&gt;&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/996FBB355A8539B91C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996FBB355A8539B91C&quot; width=&quot;1000&quot; height=&quot;397&quot; filename=&quot;wsl_init4.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;다운로드가 완료되어 실행을 선택하면 콘솔 창이 열리며 WSL 설치작업이 진행된다. 설치진행중에 사용자계정의 입력을 요하는데 이때의 계정은 윈도우즈와는 전혀 상관없는 계정이므로 자유롭게 설정하고 비밀번호를 입력하도록 하자.&lt;/p&gt;&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 979px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/995A73425A853E0119&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F995A73425A853E0119&quot; width=&quot;979&quot; height=&quot;512&quot; filename=&quot;wsl_init5.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;기본적인 리눅스 명령어를 입력해보고 결과를 확인해보도록 하자.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;lsb_release -a
pwd
ls -al
date&lt;/code&gt;&lt;/pre&gt;

&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 625px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9924ED355A85433C1D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9924ED355A85433C1D&quot; width=&quot;625&quot; height=&quot;393&quot; filename=&quot;wsl_init6.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;아래는 시작메뉴에 추가된 모습이다.&lt;/p&gt;&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 449px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/996539415A853C681F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996539415A853C681F&quot; width=&quot;449&quot; height=&quot;332&quot; filename=&quot;wsl_init_result.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;서버 제품군을 사용하는 유저는 &lt;a href=&quot;https://docs.microsoft.com/ko-kr/windows/wsl/install-on-server&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Windows Server Installation Guide&lt;/a&gt;를 참고하길 바란다.&lt;/p&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/ko-kr/windows/wsl/install-win10&quot; target=&quot;_blank&quot;&gt;Windows 10 Installation Guide&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>WSL</category>
      <category>설치</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/541</guid>
      <comments>https://webdir.tistory.com/541#entry541comment</comments>
      <pubDate>Tue, 20 Feb 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>WSL(Windows Subsystem for Linux ) 소개</title>
      <link>https://webdir.tistory.com/540</link>
      <description>&lt;p&gt;MS는 개발자들의 발걸음을 되돌리기 위한 노력의 일환으로 Windows Subsytem for Linux(WSL)를 발표하였습니다. 맥과 리눅스의 개발환경의 편의성을 고려했다는 것은 그것들에 익숙해져있는 개발자들에게는 희소식이 아닐수 없습니다. 아래의 내용에선 WSL의 간단한 소개와 유의사항에 대하여 알아봅니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 972px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999B1C485A88F43D20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999B1C485A88F43D20&quot; width=&quot;972&quot; height=&quot;450&quot; alt=&quot;Windows Subsystem for Linux 소개&quot; filename=&quot;wsl_intro.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;WSL 소개&lt;/h3&gt;
&lt;p&gt;윈도우즈 10과 윈도우즈 서버군에 새롭게 포함된 WSL은 윈도우즈에서 리눅스 명령을 cmd, powershell 등을 통해 직접 실행할 수 있는 새로운 기능이다. 다시말하면 리눅스용으로 제공되는 각종 프로그램과 편리한 도구들을 윈도우용으로 포팅하거나 윈도우용 버전을 구할 필요가 없어지는 것이다. 특히나 IT쪽 개발자들은 윈도우에서 개발을 진행하면서 각종 가상머신과 에뮬레이터를 통해 불필요한 자원을 소모해가며 대체해오던 많은 것들을 실제 리눅스에서 개발하듯 윈도우에서 리눅스를 넘나들수 있게 된 것이다.&lt;/p&gt;
&lt;p&gt;WSL에 대한 깊숙한 정보는 &lt;a href=&quot;https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/&quot; target=&quot;_blank&quot;&gt;Windows Subsystem for Linux Overview&lt;/a&gt;를 읽어보도록 하자.

&lt;/p&gt;&lt;h4&gt;개발자 중점&lt;/h4&gt;
&lt;p&gt;WSL의 개발목적이 그러하듯 주로 개발자들이 사용하기위한 도구로써의 기능을 갖추고 있다. 특히 웹개발자 및 오픈소스 프로젝트에서 작업하는 사람들에게 중점이 맞추어져 있는데 Bash, 일반적인 Linux 명령어(sed, awk, etc)와 많은 Linux-first 도구들(Ruby, Pyton, etc)을 윈도우에서 사용하고자 하는 사람들에게 유용하다.&lt;/p&gt;
&lt;p&gt;MS는 웹서버 및 가상머신, 컨테이너(Docker)등의 기능까진 지원하지 않을 작정이었나 본데 웹서버는 지금도 구현가능하고 지원하는 방향으로 선회했는지 정식버전에는 지원사항에 포함되었다. 가상머신은 Hyper-V와 Docker 같은 컨테이너도 MS 자체적으로 개발진행중이기에 포함되긴 힘들듯 싶다.&lt;/p&gt;
&lt;p&gt;필자와 같은 웹개발자를 위한 최상의 구현방식은 아래와 비슷하지 않을까 싶다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;윈도우에서 작동하는 편집기(SublimeText, phpStorm등)를 설치하고 프로젝트를 담아둘 폴더를 만든다.&lt;/li&gt;
&lt;li&gt;WSL에서 프로젝트 폴더를 마운트한다.&lt;/li&gt;
&lt;li&gt;기본적인 로컬서버 혹은 PHP를 WSL에 환경에 구성한다.&lt;/li&gt;
&lt;li&gt;각종 개발툴들 Composer, node.js, Git등을 WSL에 설치한다.&lt;/li&gt;
&lt;li&gt;추가적인 테스트서버는 윈도우에서 Docker 컨테이너를 이용한다.&lt;/li&gt;
&lt;li&gt;Hyper-V를 이용한 가상머신으로 IE8, IE9, IE10 등의 테스트를 진행한다.&lt;/li&gt;
&lt;li&gt;WSL은 구동시키지 않으면 작동하지 않기에 많은 개발자툴들을 설치해도 윈도우상에서는 깨끗이 관리되는 장점을 가지게 된다. 또한 각종 리눅스 패키지들이 꼬여도 간단히 설치한 리눅스 배포판의 앱을 초기화 시킴으로써 재설치의 고단함도 날려버릴 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;윈도우와 WSL간의 변경사항 추적&lt;/h4&gt;
&lt;p&gt;윈도우에서 리눅스의 파일의 경로를 추적해 열어보거나 수정하는 것은 금지하고 있다. 가능이 하더라도 시스템상에 문제를 주기에 MS는 만류하고 있다.&lt;/p&gt;
&lt;p&gt;반대로 리눅스에서 윈도우의 파일을 마운트하고 생성,수정,삭제하는 모든 행동들은 윈도우와 문제없이 서로 호환이 되고 실시간으로 변경점들이 반영된다. 즉, 여러 리눅스도구들을 WSL에 설치하고 작업중인 프로젝트에 반영하고 그것들을 윈도우상의 편집기등에서 업데이트되어 작업을 진행할수 있다는 것이다.&lt;/p&gt;

&lt;h3&gt;어디까지 가능한가?&lt;/h3&gt;
&lt;p&gt;리눅스에서 제공하는 모든 것이 가능하진 않지만 점차 지원을 확대하고 있다(처음엔 단순한 Bash 툴을 사용하는 것에서 많은 요구로 더 확장해가는 MS의 의외의 행보).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;레포지토리의 이용이 가능하기에 apt-get과 같은 패키지 관리자들을 통해 여러 도구들을 다운로드 및 설치하여 사용가능하다.&lt;/li&gt;
&lt;li&gt;TUI의 대표적인 편집기인 vim, emacs, tmux 등을 사용 가능하다.&lt;/li&gt;
&lt;li&gt; Javascript/node.js, Ruby, Python, C/C++, C# &amp;amp; F#, Rust, Go, 등의 개발언어들을 지원한다.&lt;/li&gt;
&lt;li&gt;GUI의 호환을 정식으로 보장하지 않은체 배포하였으나 GUI를 구현하는 X윈도우서버의 추가(Xming)로 구현이 가능하다.&lt;/li&gt;
&lt;li&gt;sshd, MySQL, Apache, lighttpd 등의 웹서버 구축에 필요한 것들도 지원한다.&lt;/li&gt;
&lt;li&gt;리눅스 콘솔에서 윈도우즈용 프로그램을 실행할 수 있다.&lt;/li&gt;
&lt;li&gt;윈도우즈에서 리눅스 프로그램을 실행할 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;불가능한 것&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt; Docker와 같은 컨테이너류와 가상화 기술은 지원하지 않을것으로 보인다. WSL 조차도 실시간 상호 연동가능한 가벼운 가상머신정도로 생각할 수 있겠다(Docker 기술과 가장 유사하다).&lt;/li&gt;
&lt;li&gt;커널 드라이브, 커널 컴파일 및 업데이트는 불가능하다.&lt;/li&gt;
&lt;li&gt;그 밖의 OpenGL, SDL등의 멀티미디어 기능이 불가능하다.&lt;/li&gt;
&lt;li&gt;윈도우즈상에서 WSL상의 리눅스파일들에 대한 수정, 삭제를 금하고 있다. 이는 아래에서 좀 더 자세히 다룬다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;윈도우즈 응용 프로그램과 도구들로 리눅스 파일을 수정하지 말것&lt;/h3&gt;
&lt;p&gt;아래의 내용은 &lt;a href=&quot;https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/&quot; target=&quot;_blank&quot;&gt;Do not change Linux files using Windows apps and tools&lt;/a&gt;이 원문이다.&lt;/p&gt;
&lt;p class=&quot;alert alert-danger&quot;&gt;어떤 경우에도 윈도우즈 응용 프로그램, 도구, 스크립트, 콘솔등을 사용하여 Linux 파일을 작성 및 수정하지 마십시오!&lt;/p&gt;
&lt;p&gt;일부 윈도우즈 도구를 사용하여 파일을 열면 열려있는 파일 혹은 폴더를 읽기잠금으로 설정하여 파일 내용 혹은 메타 데이터를 업데이트하지 못하게하여 파일 및 폴더가 손상될 수 있다.&lt;/p&gt;
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 600px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99D94C465A8504E823&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99D94C465A8504E823&quot; width=&quot;600&quot; height=&quot;464&quot; filename=&quot;wsl_intro2.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display: block; max-width:100%; &quot;&gt;출처: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;alert alert-warning&quot;&gt;윈도우즈에서 리눅스파일을 생성/변경하면 리눅스 환경이 손상되어 배포판을 제거하고 다시 설치해야 할 수 있습니다!&lt;/p&gt;
&lt;p&gt;리눅스파일은 &lt;code&gt;%localappdata%\lxss&lt;/code&gt; 아래에 있는 파일 및 폴더이며, 이 곳에 리눅스 파일 시스템(배포판과 사용자파일)이 저장되어있다.&lt;/p&gt;
&lt;p&gt;OS들은 서로 다른 메타데이터(사용권한, 소유권, 생성,수정시간정보등)를 포함하고 있으며 윈도우즈 또한 리눅스의 이런 메타 데이터 정보를 알수가 없다. WSL을 실행하지 않는 대다수의 윈도우즈 사용자에게 불필요한 오버헤드를 줄이기 위해 윈도우즈도 자동적으로 메타데이터를 갱신하지 않는다.&lt;/p&gt;
&lt;p&gt;리눅스 파일시스템 루트 아래의 모든 파일에 대해 리눅스 파일 메타데이터를 작성/업데이트하고 각 파일의 NTFS 확장 특성에 리눅스 메타데이터를 저장하는 것은 WSL의 임무이다. WSL은 또한 윈도우즈 파일시스템의 대부분의 파일에 대해 의사(pseudo) 메타데이터를 종합한다.&lt;/p&gt;
&lt;p&gt;문제는 윈도우즈 애플리케이션 및 도구들을 이용해서 열거나, 생성하거나 수정한다면 이 행위에 대한 메타데이터는 윈도우용으로 작성되어 지고, 어떠한 리눅스 파일 메타데이터를 포함하지 않기 때문에 리눅스는 파일이 비어있거나 존재하지 않거나 메타 데이터가 있을수도 있지만 메타데이터가 파일의 세부정보를 반영하지 못해 파일 내용이 손상되게 되는 것이다. 이외에도 윈도우즈에서도 문제점이 있고...(중략).&lt;/p&gt;

&lt;h4&gt;윈도우즈와 WSL의 상호연동작업시&lt;/h4&gt;
&lt;p&gt;윈도우즈에서 해당 파일을 저장 및 작업하고 Bash(리눅스)에서 &lt;code&gt;/mnt/드라이브문자/경로&lt;/code&gt;와 같은 방식으로 접근하도록하자(예. /mnt/c/dev/project).&lt;/p&gt;
&lt;p&gt;Bash에서 윈도우즈 파일 시스템에 있는 파일에 접근하면 WSL은 NT 파일 시스템 동작, 사용권한등을 존중하며 이런식으로 시스템간 복사나 이동없이 동일한 파일에 접근할 수 있다.&lt;/p&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/ko-kr/windows/wsl/about&quot; target=&quot;_blank&quot;&gt;About the Windows Subsystem for Linux&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/&quot; target=&quot;_blank&quot;&gt;Windows Subsystem for Linux Overview&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>윈도우즈/WSL</category>
      <category>WSL</category>
      <category>윈도우10 리눅스</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/540</guid>
      <comments>https://webdir.tistory.com/540#entry540comment</comments>
      <pubDate>Mon, 19 Feb 2018 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>그누보드5 작업준비</title>
      <link>https://webdir.tistory.com/537</link>
      <description>&lt;p&gt;그누보드5를 이용해서 원하는 테마를 만들때 우선적으로 수행하고 있는 몇가지 팁을 작성합니다. 이것은 필자의 편의를 위해 추가하는 것이니 참고정도로 생각하시길 바랍니다.&lt;/p&gt;

&lt;h3&gt;jQuery Migrate&lt;/h3&gt;
&lt;p&gt;그누보드5에서 사용하고 있는 jQuery 버전은 1.8.3버전으로 구버전의 jQuery를 기준으로 작성되어 있다. 이 버전으로 인해 미묘한 차이가 발생할 수 있는데 가령 대중적인 jQuery 플러그인들이 1.9 버전 이후대를 지원하고 있는 등 최신의 플러그인들과 호환성 문제를 야기시킬 수 있다.&lt;/p&gt;
&lt;p&gt;필자는 jQuery Migrate를 이용해 1.12.4 버전을 사용하고 있으며, &lt;code&gt;theme/js&lt;/code&gt; 폴더를 만들어두고 그 곳에 자바스크립트 및 jQuery 소스를 넣어둔다. 경로 접근방법은 &lt;code&gt;G5_THEME_JS_URL&lt;/code&gt; php 상수로 지정할 수 있다&lt;/p&gt;
&lt;p class=&quot;alert alert-warning&quot;&gt;theme/테마명/head.sub.php의 jQuery 링크를 변경한다(기존의 링크를 주석처리하거나 삭제하자).&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-php&quot;&gt;/* 기존 */
&amp;lt;script src=&quot;&amp;lt;?php echo G5_JS_URL ?&amp;gt;/jquery-1.8.3.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

/* 변경 */
&amp;lt;script src=&quot;&amp;lt;?php echo G5_THEME_JS_URL ?&amp;gt;/jquery-1.12.4.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;&amp;lt;?php echo G5_THEME_JS_URL ?&amp;gt;/jquery-migrate-1.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p class=&quot;alert alert-info&quot;&gt;자세한 정보는 &lt;a href=&quot;http://webdir.tistory.com/468&quot;&gt;jQuery 구버전과 최신버전의 혼용 - jQuery Migrate&lt;/a&gt;를 참고하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/994002335A0ABF5E38&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;jquery-1.12.4.min.js&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/99E178335A0ABF5E0B&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;jquery-migrate-1.4.1.min.js&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;기능검사 및 브라우저 체크&lt;/h3&gt;
&lt;p&gt;브라우저별 기능검사 및 브라우저 버전체크등을 위해 Modernizr 과 Detectizr 를 혼합해서 사용하고 있다. 두 소스를 단순 붙여넣어 하나의 support.min.js로 만들어 &lt;code&gt;theme/js&lt;/code&gt;에 넣어둔다.&lt;/p&gt;
&lt;p&gt;Modernizr의 경우 원하는 검사기능이 다를 수 있기에 스스로가 &lt;a href=&quot;https://modernizr.com/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://modernizr.com/&lt;/a&gt; 에서 만들어 쓰도록하자.&lt;/p&gt;
&lt;p class=&quot;alert alert-warning&quot;&gt;theme/테마명/head.sub.php의 html 시작부분을 수정하고 기능검사 파일을 링크한다.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-php&quot;&gt;/* 기존 */
&amp;lt;html lang=&quot;ko&quot;&amp;gt;

/* 변경 */
&amp;lt;html lang=&quot;ko&quot; class=&quot;no-js&quot;&amp;gt;
.....
&amp;lt;script src=&quot;&amp;lt;?php echo G5_THEME_JS_URL ?&amp;gt;/jquery-1.12.4.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;&amp;lt;?php echo G5_THEME_JS_URL ?&amp;gt;/jquery-migrate-1.4.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;&amp;lt;?php echo G5_THEME_JS_URL ?&amp;gt;/support.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;정상적으로 추가하였다면 아래와 같이 각종 기능검사 및 브라우저 체크 결과를 html의 class명으로 확인할 수 있게 된다.&lt;/p&gt;
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 938px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/993EC4335A0AC47008&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F993EC4335A0AC47008&quot; width=&quot;938&quot; height=&quot;87&quot; filename=&quot;support.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/995F94335A0AC22F27&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;support.min.js&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;페이지명 및 유저상태명 붙이기&lt;/h3&gt;
&lt;p&gt;디자인적으로 편리함을 위해서 &lt;code&gt;body&lt;/code&gt; 요소에 class 명으로 현재 상태를 표기한다. 가령, 게시판일경우에는 &lt;code&gt;bc-board&lt;/code&gt;의 공통 클래스와 &lt;code&gt;bc-board-게시판 테이블명&lt;/code&gt;의 각각을 구분하는 클래스가 붙게된다. 또한, 로그인여부에 따라 guest, user, super로 각각을 구분한다.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-php&quot;&gt;/* 기존 */
&amp;lt;?php
if(G5_IS_MOBILE) {
    echo '&amp;lt;script src=&quot;'.G5_JS_URL.'/modernizr.custom.70111.js&quot;&amp;gt;&amp;lt;/script&amp;gt;'.PHP_EOL; // overflow scroll 감지
}
if(!defined('G5_IS_ADMIN'))
    echo $config['cf_add_script'];
?&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

/* 변경 */
&amp;lt;?php
if(G5_IS_MOBILE) {
    echo '&amp;lt;script src=&quot;'.G5_JS_URL.'/modernizr.custom.70111.js&quot;&amp;gt;&amp;lt;/script&amp;gt;'.PHP_EOL; // overflow scroll 감지
}
if(!defined('G5_IS_ADMIN')) {
    echo $config['cf_add_script'];
}

//body class name add
$page_name = basename($_SERVER['PHP_SELF'],&quot;.php&quot;);
    switch ($page_name) {
        case &quot;board&quot; :
            $bclass .= &quot;bc-board bc-board-&quot;.$bo_table;
            break;
        case &quot;content&quot; :
            $bclass .= &quot;bc-coid bc-coid-&quot;.$co_id;
            break;
        default :
            $bclass .= &quot;bc-&quot;.$page_name;
            break;
    }

    if ($is_member) {
       if ($is_admin == 'super') {
           $bclass .= &quot; super&quot;;
       } else {
           $bclass .= &quot; user&quot;;
       }
    } else {
        $bclass .= &quot; guest&quot;;
    }
?&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body class=&quot;&amp;lt;?php echo $bclass ?&amp;gt;&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>그누보드/GNU 팁</category>
      <category>Browser Check</category>
      <category>GNUBOARD</category>
      <category>jQuery Migrate</category>
      <category>Setting</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/537</guid>
      <comments>https://webdir.tistory.com/537#entry537comment</comments>
      <pubDate>Wed, 15 Nov 2017 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>AMD 라이젠(RYZEN) 정보모음</title>
      <link>https://webdir.tistory.com/535</link>
      <description>&lt;p&gt;PC 업계가 &lt;b&gt;AMD&lt;/b&gt;의 &lt;b&gt;라이젠(RYZEN)&lt;/b&gt; 출시로 한창 떠들석한 요즘입니다. 한 동안 &lt;b&gt;인텔사&lt;/b&gt;에 못미치는 성능으로 대중에게 외면받던 AMD사가 &lt;b&gt;가성비&lt;/b&gt;와 &lt;b&gt;성능&lt;/b&gt;을 앞세워 반격에 나섰기 때문이죠. 이에 여러 하드웨어 포럼에서 먼저 출시된 라이젠 7 제품군들에 대한 벤치마크를 통한 성능 테스트 및 오버클럭 효율등에 대하여 많은 리뷰가 작성되고 있습니다.&lt;/p&gt;
&lt;p&gt;필자 또한, 컴퓨터 교체를 염두에 두고 있던 터라 라이젠과 관련된 정보를 모아보던 중 이에 혼선을 초래하는 정보들로 인해 판단의 어려움을 겪었습니다. 많은 분들이 비슷한 입장이라 생각되어 관련 정보를 취합해 봅니다. &lt;/p&gt;    


&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/227EDB4658E3C29115&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F227EDB4658E3C29115&quot; width=&quot;1000&quot; height=&quot;562&quot; filename=&quot;ryzen_featured.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;AMD 라이젠(RYZEN) 소개&lt;/h3&gt;
&lt;p&gt;라이젠은 &lt;b&gt;14nm&lt;/b&gt;(나노) 공정의 &lt;b&gt;젠(Zen) 아키텍처&lt;/b&gt;로 생산되며, 코드네임은 &lt;b&gt;서밋 릿지(Summit Ridge)&lt;/b&gt;이다. 브랜드명이 &lt;b&gt;라이젠(Ryzen)&lt;/b&gt;이며, 해당 제품명을 AMD 라이젠 7 1700 (서밋 릿지)와 같이 코드네임을 함께 표기하기도 한다.&lt;/p&gt;
&lt;p&gt;서밋 릿지는 데스크톱 &lt;b&gt;CPU&lt;/b&gt;로 생산되며, &lt;b&gt;레이븐 릿지(Raven Ridge)&lt;/b&gt;는 &lt;b&gt;APU(CPU+GPU)&lt;/b&gt;로 2017년 하반기에 출시될 예정이다. 즉, 현재 출시 및 출시예정인 라이젠 제품군들은 그래픽카드를 따로 준비해야 하며, 이것은 인텔사가 내장그래픽을 CPU에 넣은 제품만을 내놓는 현재의 방식과 비교될 수 있는 방식이라 외장 그래픽을 사용하는 사람들의 선택지가 될 수 있다.&lt;/p&gt;
&lt;p&gt;라이젠 제품군들은 모두가 오버클럭이 가능하다(인텔사의 제품군들은 K 버전의 제품군들만이 오버클럭이 가능). 또한, &lt;b&gt;XFR(Extended Frequency Range)&lt;/b&gt;이라 불리는 기능이 포함된 라이젠의 X 버전의 제품군들은 CPU 온도와 전력에 여유가 있다면 부스트 클럭을 높이는 자동오버클럭이 작동하여 100Mhz 의 성능향상을 기대할 수 있다. 이 기능이 X 제품군들에만 작동된다고 알려졌으나 현재는 X 제품군 이외의 제품들도 50Mhz 성능향상을 기대할 수 있다고 알려져 있다. &lt;/p&gt; 


&lt;h4&gt;AMD 라이젠(RYZEN) 출시&lt;/h4&gt;
&lt;p&gt;지난 2017년 2월 23일 AMD가 'ZEN' 마이크로 아키텍처 기반의 차세대 CPU &lt;strong&gt;라이젠(RYZEN)&lt;/strong&gt;을 공식 발표했으며, 약 10일 정도 후인 3월 2일부터 라이젠 7의 정식 판매를 시작했다.&lt;/p&gt;

&lt;iframe src=&quot;https://www.youtube.com/embed/X-byHrNIxAQ&quot; width=&quot;1280&quot; height=&quot;720&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;영상의 내용을 간추리면 아래와 같다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;브랜드명은 &lt;strong&gt;라이젠(RYZEN)&lt;/strong&gt;이며, 라이젠 7은 익스트림 1800X, 1700X, 1700으로 라인업되었으며, 모두 8코어 16쓰레드이다.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-striped table-bordered&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;브랜드&lt;/th&gt;
&lt;th&gt;제품명&lt;/th&gt;
&lt;th&gt;코어(쓰레드)&lt;/th&gt;
&lt;th&gt;클럭/부스터 클럭&lt;/th&gt;
&lt;th&gt;L2 캐시&lt;/th&gt;
&lt;th&gt;L3 캐시&lt;/th&gt;
&lt;th&gt;TDP&lt;/th&gt;
&lt;th&gt;가격&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ryzen 7&lt;/td&gt;
&lt;td&gt;1800X&lt;/td&gt;
&lt;td&gt;8(16)&lt;/td&gt;
&lt;td&gt;3.6GHz/4.0GHz&lt;/td&gt;
&lt;td&gt;4MB&lt;/td&gt;
&lt;td&gt;16MB&lt;/td&gt;
&lt;td&gt;95W&lt;/td&gt;
&lt;td&gt;$499&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ryzen 7&lt;/td&gt;
&lt;td&gt;1700X&lt;/td&gt;
&lt;td&gt;8(16)&lt;/td&gt;
&lt;td&gt;3.4GHz/3.8GHz&lt;/td&gt;
&lt;td&gt;4MB&lt;/td&gt;
&lt;td&gt;16MB&lt;/td&gt;
&lt;td&gt;95W&lt;/td&gt;
&lt;td&gt;$399&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ryzen 7&lt;/td&gt;
&lt;td&gt;1700&lt;/td&gt;
&lt;td&gt;8(16)&lt;/td&gt;
&lt;td&gt;3.0GHz/3.7GHz&lt;/td&gt;
&lt;td&gt;4MB&lt;/td&gt;
&lt;td&gt;16MB&lt;/td&gt;
&lt;td&gt;65W&lt;/td&gt;
&lt;td&gt;$329&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;지난 4년의 노력이 담긴 결과물로, 목표였던 IPC 40% 향상을 뛰어넘은 52% 향상되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/227B3E3758E7B55E01&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F227B3E3758E7B55E01&quot; width=&quot;900&quot; height=&quot;261&quot; filename=&quot;ryzen_portpolio_goal.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;강력한 성능의 플래그십 프로세서 1800X와 인텔 i7 6900K와의 비교&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2476553458E7B5720E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2476553458E7B5720E&quot; width=&quot;900&quot; height=&quot;263&quot; filename=&quot;ryzen_portpolio_1800x.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2367B13758E7B58108&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2367B13758E7B58108&quot; width=&quot;900&quot; height=&quot;262&quot; filename=&quot;ryzen_portpolio_1800x_price.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;게이머와 콘텐츠 제작자등을 위한 1700X와 인텔 i7 6800K와의 비교&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21431B3458E7B5BA28&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21431B3458E7B5BA28&quot; width=&quot;900&quot; height=&quot;263&quot; filename=&quot;ryzen_portpolio_1700x.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2414A93358E7B5C52B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2414A93358E7B5C52B&quot; width=&quot;900&quot; height=&quot;261&quot; filename=&quot;ryzen_portpolio_1700x_price.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;가성비와 적은 전력소모량의 1700과 i7 7700K와의 비교&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2611EF3F58E7BA0924&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2611EF3F58E7BA0924&quot; width=&quot;900&quot; height=&quot;260&quot; filename=&quot;ryzen_portpolio_1700.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267C8C3D58E7BA1708&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267C8C3D58E7BA1708&quot; width=&quot;900&quot; height=&quot;262&quot; filename=&quot;ryzen_portpolio_1700_price.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;라이젠 가격에 대하여&lt;/h4&gt;
&lt;p&gt;라이젠 제품군들은 경쟁사인 인텔사와 비교하여 가성비가 뛰어나다. 이후 출시될 제품들도 그러하고, 이 기조를 이어갈 것으로 보인다.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;라이젠에 대한 단 하나의 목표를 정했습니다.&lt;/p&gt;
&lt;p&gt;PC 시장을 뒤흔들고 싶었습니다.&lt;/p&gt;
&lt;p&gt;최대한 많은 이들에게 혁신, 선택지, 그리고 성능을 제공하고 싶었습니다.&lt;/p&gt;
&lt;p&gt;그래서 고성능 컴퓨팅을 수십, 수백배의 사람들에게 선사할 수 있게 가격을 책정했습니다.&lt;/p&gt;
&lt;p&gt;더 많은 코어, 더 많은 쓰레드를 모두에게 제공하기 위하여~&lt;/p&gt;
&lt;footer class=&quot;blockquote-footer&quot;&gt;AMD RYZEN 발표 CEO Lisa Su&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;h3&gt;라이젠 쿨러&lt;/h3&gt;
&lt;p&gt;라이젠은 제품군에 따라 제공하거나 구매할 수 있는 쿨러가 다르다. X 제품군들은 기본 쿨러를 제공하지 않으며, 멀티팩 조합으로 제공되는 쿨러를 구매할 수는 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/263F4A4D58E7CB1E14&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F263F4A4D58E7CB1E14&quot; width=&quot;800&quot; height=&quot;450&quot; filename=&quot;ryzen_cooler.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;1800X &amp;amp; 1700X &amp;amp;1600X&lt;/b&gt; : 기본 제공 쿨러가 없으며 멀티팩 구매시 레이스 맥스 제공&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1700 &amp;amp; 1600 &amp;amp; 1500X&lt;/b&gt; : 레이스 스파이어가 기본 제공&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1400&lt;/b&gt; : 레이스 스텔스가 기본 제공&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;라이젠 오버클럭&lt;/h3&gt;
&lt;p&gt;라이젠의 전 제품군은 오버클럭을 지원한다. 관련하여 손쉽게 오버클럭을 윈도우상에서 지원할 수 있도록 &lt;a href=&quot;https://www.amd.com/ko/technologies/ryzen-master&quot; target=&quot;_blank&quot;&gt;라이젠 마스터&lt;/a&gt;라는 유틸리티도 제공하고 있다. CPU 코어 관련 조절은 재부팅없이 바로 적용되며, 메모리 전압과 타이밍 조절은 재부팅이 필요하다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 966px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/215A413858E7F3CD3A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F215A413858E7F3CD3A&quot; width=&quot;966&quot; height=&quot;570&quot; filename=&quot;ryzen_master.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1700 제품의 경우, 전압 조절없이 3.7~3.8GHz 가 국민오버&lt;/li&gt;
&lt;li&gt;1800X와 1700X의 경우, 4GHz 오버 클럭이 대다수를 이루고, 그 이상의 오버 클럭은 노하우가 필요할듯 싶다.&lt;/li&gt;
&lt;li&gt;오버 클럭과 관련하여 AMD 나 바이오스상의 패치로 개선되길 바라고 있는 실정이다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;라이젠 벤치마크&lt;/h3&gt;
&lt;p&gt;각종 하드웨어 포럼 및 개인들이 라이젠 7 제품군들과 인텔사의 i7 제품군과의 비교 벤치마크가 이루어지고 있다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;멀티스레드를 활용한 거의 모든 작업(인터넷 방송, 그래픽 작업, 인코딩, 연산, 렌더링, 기타 등등)에서는 라이젠 제품군이 다중 코어와 쓰레드를 앞세워 우위를 점하거나 비등하다.&lt;/li&gt;
&lt;li&gt;게임에서 인텔 비교군들보다 대체적으로 소폭 하향된 성능을 보이는데 게임의 종류에 따라 그 폭은 커지기도 한다.&lt;/li&gt;
&lt;li&gt;소비전력면에서도 크게 뒤쳐지된 과거와 달리 동급 수준내지 더 뛰어난 소비전력을 보인다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.coolenjoy.net/bbs/review/445965?p=22&quot; target=&quot;_blank&quot;&gt;쿨엔조이 AMD RYZEN 7 1800X / 1700X / 1700 벤치마크&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://quasarzone.co.kr/bbs/board.php?bo_table=qc_qsz&amp;amp;wr_id=56942&quot; target=&quot;_blank&quot;&gt;라이젠 7 1800X, 1700X, 1700 게임 성능 종결 벤치마크&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;

&lt;h3&gt;라이젠 최적화&lt;/h3&gt;
&lt;p&gt;라이젠 출시와 더불어 각 서드파티사의 지원이 미비한 것이 논란이 되고 있다. 확실히 그 동안 AMD에 대한 처우가 어떠했는지 드러나는 부분이다.&lt;/p&gt;

&lt;h4&gt;메인보드의 바이오스 업데이트&lt;/h4&gt;
&lt;p&gt;라이젠을 지원하는 메인보드들은 AM4 칩셋의 메인보드들이다. 각 메인보드 제조사별로 현재 바이오스 업데이트를 진행중인데 그 주기가 짧고 잦은 패치가 이루어지고 있다. 출시 이전에 완성형 형태로 배포되지 않았기에 아쉬움이 남는 부분이다. 경우에 따라서는 바이오스 패치이후에 성능이 25% 향상되는 등 제조사별로 문제점이 다른듯 싶다.&lt;/p&gt;
&lt;p&gt;관련해서 AMD CPU의 문제점으로 치부하는 이들이 있는데 사실 이부분은 서드파티사들의 지원문제이므로 별개로 봐야할 듯 싶다. AMD의 영향력이 그 만큼 미미했다는 반증이기도 할 것이다.&lt;/p&gt;

&lt;p&gt;추가로 AMD 공식 홈페이지에서 &lt;a href=&quot;http://support.amd.com/en-us/download/chipset?os=Windows+10+-+64&quot; target=&quot;_blank&quot;&gt;칩셋 드라이버&lt;/a&gt;를 다운받아 설치해야 안정적인 시스템 구동을 보장 받을수 있다.&lt;/p&gt;

&lt;h4&gt;게임 제조사의 업데이트&lt;/h4&gt;
&lt;p&gt;라이젠 제품군들의 게임성능이 인텔사에 비해 부족하다는 벤치가 많이 나왔다. 유독 게임에서 성능이 떨어져서 의아한 부분이였는데 기존 게임 제조사가 인텔 CPU에는 최적화되었어도 AMD CPU는 그렇지 못한 것으로 잠정적으로 결론이 났다. 현재 AMD CPU를 고려한 게임 제조사의 패치를 준비중인 베타버전에서 성능향상이 이루어진 테스트가 나오고 있는 것을 봐서 메이저 게임 제조사들에서는 앞으로도 패치 및 업데이트를 통해 이를 개선할 것으로 보인다. 다만, 게임 출시후 꾸준히 패치 및 업데이트가 이어지지 못하고 있는 게임들은 개선되지 않을 것으로 보인다.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.bodnara.co.kr/bbs/article.html?num=139436&quot; target=&quot;_blank&quot;&gt;게임이 AMD 라이젠 최적화를 만날 때, 최대 30% 성능 개선?&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.itworld.co.kr/news/104201&quot; target=&quot;_blank&quot;&gt;확인 리뷰 : 최적화된 게임에서의 AMD 라이젠 CPU 성능 향상 효과&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;메모리 속도&lt;/h4&gt;
&lt;p&gt;AMD 측에서 권장하는 라이젠 시스템의 메모리 동작 속도는 DDR4 2666MHz이다(클럭 2666MHz, 전압 1.3V, 타이밍 16-16-16-16-36 권장메모리). 내부 테스트 결과에서도 2666MHz 부터 병목현상이 사라지는 결과를 보였기 때문이다. 메모리 속도는 메인보드의 바이오스에도 영향을 많이 받는데, 메인보드에 따라 지원하는 메모리 최대 속도가 다르므로 이를 잘 살펴보아야 한다. 기존의 시스템들에서 고클럭 메모리의 성능향상에 미비했던 것과 달리 라이젠에서는 고클럭 메모리를 사용하면 성능향상이 눈에 띄게 증가하니 염두에 두자.&lt;/p&gt;
&lt;p&gt; 현재 버스 속도 조정시 실질적인 라이젠 메모리 속도는 3200MHz 수준이라고 알려졌으며, 이는 AMD 측에서 5월 메인보드 파트너사 대상으로 업데이트를 배포해 추가적인 속도 개선이 이뤄질 것이라고 한다. 이를 통해 업체들은 고객들이 어떤 상품을 선택하든 현재의 DDR4 3200 램보다 빠른 속도를 지원할 수 있을 것이라고 한다.&lt;/p&gt;
&lt;p&gt;인텔 메인보드에서 사용하는 램오버 클럭기능의 하나인 XMP는 AMD 메인보드에서 공식지원하지 않는데, MSI는 이와 흡사한 기술인 A-XMP 기능을 발표하여 바이오스를 배포하고 있다. 즉, 메인보드 제조사의 바이오스에 따라 기존의 XMP 지원 메모리를 사용할 수 있다. 또한, AMP 메모리가 해외에서
 판매되고 있는데 국내에도 곧 출시예정이며, XMP 메모리를 이미 구입하였다면 메인보드 제조사에서 꼭 호환가능한지 살펴보아야 한다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://vrzone.com/articles/msi-announce-auto-ddr4-oc-support-amd-ryzen-platform-xmp-feature/124471.html&quot; target=&quot;_blank&quot;&gt;MSI announce auto DDR4 OC support on AMD Ryzen platform with A-XMP feature&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;전원관리 고사양&lt;/h4&gt;
&lt;p&gt;윈도우 10에서 코어파킹 현상으로 인해, 모든 쓰레드에 균등한 작업배분이 이루어지지 않는 경우가 발생한다. 이는 윈도우의 전원옵션에서 고성능으로 변경함으로써 해결가능하다.&lt;/p&gt;

&lt;h4&gt;HPET 끄기&lt;/h4&gt;
&lt;p&gt; 바이오스 메뉴나 윈도우에서 고정밀 이벤트 타이머인 'HPET'를 끌 것을 권장했다. HPET를 정지시키면 5~8%의 게임 프레임레이트 향상을 경험할 수 있다는 설명이다.&lt;/p&gt;
&lt;p&gt;메인보드 바이오스 메뉴에 HPET 설정이 있는 경우가 있고, 없다면 윈도우 상에서 명령 프롬프트(CMD)에서 &lt;code&gt;bcdedit /set useplatformclock false&lt;/code&gt; 명령어를 통해 수동으로 끌 수도 있다.&lt;/p&gt;

&lt;h3&gt;총평&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;기존의 AMD 제품군들이 높은 발열량과 전력소모량, 클럭당 효율이 떨어져 외면 받아왔는데 라이젠은 과거의 오점들을 대부분 개선하였다.&lt;/li&gt;
&lt;li&gt;완성형 CPU가 아닌 성장형 CPU라는 이야기가 나오듯이, 발매당시 완벽한 호환이 이루어지지 않고, 각종 패치와 최적화를 통해 성능향상을 이끌어 낼 수 있는 것이 아쉬움으로 남는다. 다만, 최적화 이전의 시스템에서도 성능이 검증되어 가성비가 뛰어난 것은 인정해야 할 부분이다.&lt;/li&gt;
&lt;li&gt;라이젠 7은 익스트림급 PC를 꿈꿔오던 사람들에게 인텔대비 낮은 가격에 이를 구성할 수 있는 기회를 제공하며 8코어 16쓰레드의 보편화에 앞장선다.&lt;/li&gt;
&lt;li&gt;게임성능의 이슈해결을 위해 게임사에서 적극적인 최적화가 기대된다.&lt;/li&gt;
&lt;li&gt;AMD와 인텔사가 성능과 가격으로 경쟁한다면 소비자에겐 이로운 일임에 틀림없지만 그에 앞서 업자와 중고가격 방어, 팬심으로 무장한 이들이 소비자의 판단을 흐리기도 한다는 것에 유념해야 한다. 자료를 수집하면서 AMD, 인텔의 팬보이들이 과장하거나 과소평가하는 등의 글들이 혼재하였다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>윈도우즈/Windows 일반</category>
      <category>AMD</category>
      <category>라이젠</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/535</guid>
      <comments>https://webdir.tistory.com/535#entry535comment</comments>
      <pubDate>Mon, 10 Apr 2017 11:00:00 +0900</pubDate>
    </item>
    <item>
      <title>새로운 수익창출 모델 - Adobe Affiliate Program (어도브 제휴 프로그램)</title>
      <link>https://webdir.tistory.com/529</link>
      <description>&lt;p&gt;사이트 및 블로그 운영의 수익창출모델에 도움이 될만한 프로그램이 있어 소개합니다. 기존의 구글 애드센스와 유사하며 아래에서 배너 신청 및 등록방법에 대하여 알아봅니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 977px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2456564D58C2729A27&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2456564D58C2729A27&quot; width=&quot;977&quot; height=&quot;246&quot; alt=&quot;adobe affiliate program&quot; filename=&quot;adobe_affiliate.png&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Adobe 제휴 프로그램 소개&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Adobe Affiliate Program&lt;/b&gt;은 어도브사와 제휴를 맺고, 웹 사이트에 배너를 등록하여 수수료 이익을 창출하는 프로그램이다. 또한, 어도브사는 익히 알다시피 포토샵, 일러스트등의 유명 그래픽 프로그램 제작사로 관련제품을 월간 혹은 연간 구독을 통해 저렴한 가격으로 사용할 수 있게 제공하고 있고, 여러가지 할인혜택을 함께 제공하고 있다.&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;HOME&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://www.adobe.com/kr/affiliates.html&quot; target=&quot;_blank&quot;&gt;Adobe 제휴 프로그램&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOC&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://webdir.tistory.com/attachment/cfile27.uf@2207E54C58C265143DBBD2.pdf&quot; target=&quot;_blank&quot;&gt;Getting_Started_Guide_The_Adobe_Affiliate_Private_Network_Nov16_KOR_V3.pdf&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt; 

&lt;h4&gt;Adobe 제휴 프로그램 특징&lt;/h4&gt;
&lt;p&gt;어도브 제휴 프로그램에 참여하는 파트너가 얻을 수 있는 이점을 아래와 같이 소개하고 있다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;합리적인 수수료 체계와 클릭/노출 기여도 실적과 함께 상당한 수익 창출 기회를 통한 매출 증대. 120일의 클릭 라이프 시간 및 2일의 게시물 뷰 시간에 해당하는 쿠키 지속 시간&lt;/li&gt;
&lt;li&gt;바로 게재할 수 있는 다양한 마케팅 배너와 텍스트 링크(Adobe Creative Cloud, Document Cloud 및 Adobe Stock) 활용&lt;/li&gt;
&lt;li&gt;합리적인 매체사 인센티브를 통한 정기적이고 독점적인 제품 홍보 기회&lt;/li&gt;
&lt;li&gt;신규 릴리스 및 제품 출시에 대한 최신 정보&lt;/li&gt;
&lt;li&gt;단기간에 습득하여 마케팅 활동 향상에 도움을 주는 제품별 일일 리포팅&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Adobe 제휴 프로그램 신청&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://www.adobe.com/kr/affiliates.html&quot; target=&quot;_blank&quot;&gt;Adobe 제휴 프로그램&lt;/a&gt; 페이지로 이동한 후, 지금 신청하기 버튼을 통해 가입을 신청한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2213514F58C27C612A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2213514F58C27C612A&quot; width=&quot;1000&quot; height=&quot;354&quot; filename=&quot;adobe_affiliate2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;alert alert-warning&quot;&gt;기존의 Adobe 사이트 계정을 가진 분들도 해당 사이트는 별도의 사이트이므로 계정을 새로 만들어야 한다.&lt;/div&gt;

&lt;h4&gt;회원가입&lt;/h4&gt;
&lt;p&gt;영문으로 제공되는 회원가입 페이지가 등장하는데 대략의 내용은 아래와 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 667px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/242A034B58C289361C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F242A034B58C289361C&quot; width=&quot;667&quot; height=&quot;1157&quot; filename=&quot;adobe_affiliate3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;국가&lt;/b&gt; : 접속 국가로 자동선택되는데 맞지않다면 변경한다(ex. Korea, Republic Of).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;언어&lt;/b&gt; : 현재로선 영어와 일어만 선택가능하다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유형&lt;/b&gt; : individual (개인), organization(단체), company(회사)로 구분된다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이름&lt;/b&gt; : 영문이름을 적어준다.(&lt;a href=&quot;http://s.lab.naver.com/translation/?where=name&quot; target=&quot;_blank&quot;&gt;한글이름 영문으로 표기법&lt;/a&gt; 참고하자.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;성&lt;/b&gt; : 성을 적어준다.(&lt;a href=&quot;http://s.lab.naver.com/translation/?where=name&quot; target=&quot;_blank&quot;&gt;한글이름 영문으로 표기법&lt;/a&gt; 참고하자.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이메일&lt;/b&gt; : 사용하는 메일주소를 입력한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이메일확인&lt;/b&gt; : 위의 메일주소를 한번 더 입력한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용자명&lt;/b&gt; : 사용할 아이디를 입력한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;암호&lt;/b&gt; : 암호를 입력한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;암호확인&lt;/b&gt; : 위의 암호를 한번 더 적어준다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사이트주소&lt;/b&gt; : 배너노출을 사용할 사이트주소를 적어준다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자동등록방지&lt;/b&gt; : 우측의 자동등록방지 코드를 적어준다.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;kbd&gt;Create account&lt;/kbd&gt; 버튼을 클릭하여 계정생성을 완료하면 아래와 같이 계정 활성화를 위해 이메일 발송중임을 알린다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 636px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25310F3858C2918519&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25310F3858C2918519&quot; width=&quot;636&quot; height=&quot;235&quot; filename=&quot;adobe_affiliate4.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이메일을 확인해보면 아래와 같이 계정활성화를 위한 링크를 제공하니 이 링크를 클릭하면 회원가입은 완료된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 620px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/233A754558C2A84507&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F233A754558C2A84507&quot; width=&quot;620&quot; height=&quot;800&quot; filename=&quot;adobe_affiliate5.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;지급정보 갱신&lt;/h4&gt;
&lt;p&gt;회원가입이 완료된 후 마주하게 되는 화면이다. 수수료가 발생하게 되면 그래프가 변동될 것이다. 수수료를 지급받기 위해서 &lt;b&gt;Account&lt;/b&gt; &amp;gt; &lt;b&gt;Payment Information&lt;/b&gt;로 이동하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 984px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22223F4858C2BA0129&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22223F4858C2BA0129&quot; width=&quot;984&quot; height=&quot;832&quot; filename=&quot;adobe_affiliate6.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Payment Information&lt;/b&gt;의 정보를 입력해야하는데, 회원가입시 작성된 정보와 연동되어 몇몇은 완성되어 있다. 정보를 아래처럼 모두 입력하고 &lt;kbd&gt;Save&lt;/kbd&gt; 버튼을 누르자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 882px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/272D933458C2BF951B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F272D933458C2BF951B&quot; width=&quot;882&quot; height=&quot;514&quot; filename=&quot;adobe_affiliate7.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Tax Residence&lt;/b&gt; : 한국 거주중이라면 Korea, Republic Of 로 변경한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Payment Provider&lt;/b&gt; : Payoneer 로 설정되어 있는지 확인한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Enter your Tradedoubler password&lt;/b&gt; : 계정 암호를 입력한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Verify you entered correct tax Residence&lt;/b&gt; : 세금관련해서 다시 물으니 체크박스에 체크하자.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;alert alert-info&quot;&gt;&lt;b&gt;Payoneer 지급&lt;/b&gt;은 유럽 이외의 지역에서 해외 프로그램에 참여하는 게시자의 경우 또는 수수료를 Payoneer가 제공하는 추가 통화로 지급받는 경우 권장하는 지급 방식입니다. 이 방식을 선택하면 게시자가 거주하는 국가의 통화로 수수료를 받을 수 있고,국제적으로 활동하는 게시자의 경우 참여 프로그램 또는 거주 국가와 상관없이 모든 수수료를 단일 통화(예: 해당 국가의 통화, USD 또는 EUR)로 지급받을 수 있습니다.&lt;/div&gt;

&lt;h4&gt;은행 이체 설정&lt;/h4&gt;
&lt;p&gt;다음은 개인정보와 이체받을 은행 정보를 입력해야 한다. 계좌이름을 제외하곤 모두 영문으로 입력해야하고 주소의 경우 &lt;a href=&quot;https://search.naver.com/search.naver?sm=tab_hty.top&amp;amp;where=nexearch&amp;amp;oquery=%EC%98%81%EC%96%B4%EC%A3%BC%EC%86%8C&amp;amp;ie=utf8&amp;amp;query=%EB%84%A4%EC%9D%B4%EB%B2%84+%EC%98%81%EC%96%B4%EC%A3%BC%EC%86%8C&quot; target=&quot;_blank&quot;&gt;네이버 영어주소&lt;/a&gt;를 이용해서 입력하도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 975px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/276FA94358C2C4D012&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F276FA94358C2C4D012&quot; width=&quot;975&quot; height=&quot;574&quot; filename=&quot;adobe_affiliate8.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 978px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/221B3F3E58C2C7A410&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F221B3F3E58C2C7A410&quot; width=&quot;978&quot; height=&quot;607&quot; filename=&quot;adobe_affiliate9.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 968px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2662B04658C2C84B07&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2662B04658C2C84B07&quot; width=&quot;968&quot; height=&quot;568&quot; filename=&quot;adobe_affiliate10.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 978px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23013F4C58C2CB370E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23013F4C58C2CB370E&quot; width=&quot;978&quot; height=&quot;942&quot; filename=&quot;adobe_affiliate11.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이체 설정이 모두 완료되면 아래와 같으며, 관련 메일도 받게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 975px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/242DD04E58C2CBA52B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F242DD04E58C2CBA52B&quot; width=&quot;975&quot; height=&quot;569&quot; filename=&quot;adobe_affiliate12.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2202864E58C2D8FE22&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2202864E58C2D8FE22&quot; width=&quot;1000&quot; height=&quot;653&quot; filename=&quot;adobe_affiliate13.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Adobe 제휴 프로그램 사이트 인증&lt;/h3&gt;
&lt;p&gt;사이트 인증을 위해 상단 메뉴중에 &lt;b&gt;Sites&lt;/b&gt; &amp;gt; &lt;b&gt;Sites&lt;/b&gt;로 이동하자. &lt;b&gt;not verified&lt;/b&gt; 부분을 클릭하여 다음페이지로 넘어가자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 971px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2660153A58C2DA452C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2660153A58C2DA452C&quot; width=&quot;971&quot; height=&quot;100&quot; filename=&quot;adobe_affiliate15.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;상단의 &lt;b&gt;Option 1:&lt;/b&gt;에서 제공하는 &lt;code&gt;&amp;lt;!-- TradeDoubler site verification XXXXXXX --&amp;gt;&lt;/code&gt; 부분을 복사해서 자신의 블로그 및 사이트에 복사해 붙여넣도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 932px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/212BA94758C2DD8226&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F212BA94758C2DD8226&quot; width=&quot;932&quot; height=&quot;175&quot; filename=&quot;adobe_affiliate16.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;language-html&quot;&gt;&lt;code&gt;&amp;lt;head&amp;gt;
    &amp;lt;!-- TradeDoubler site verification 자신의 사이트 ID값 --&amp;gt;
&amp;lt;/head&amp;gt;&lt;/code&gt;&lt;/pre&gt; 

&lt;p&gt;또한, 하단의 입력가능한 폼들에 내용을 채워넣고 &lt;kbd&gt;Click here to verify your site&lt;/kbd&gt; 버튼을 눌러 정보를 갱신하도록 하자. 이후 사이트 인증이 짧게는 몇분후~몇일이 걸릴 수 있다는 것에 유념하도록 하자.&lt;/p&gt;
&lt;p&gt;사이트 인증이 완료되면 아래와 같이 verified 란 문구로 변경된다. 또한 최종심사 결과를 메일로 알려주는데 그 이전에는 광고가 &lt;b&gt;Under Consideration&lt;/b&gt;으로 표기되며 선택할 수 없다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 990px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24204F3D58C2DED805&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24204F3D58C2DED805&quot; width=&quot;990&quot; height=&quot;235&quot; filename=&quot;adobe_affiliate17.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Adobe 제휴 프로그램 배너등록&lt;/h3&gt;
&lt;p&gt;최종 심사가 성공적으로 완료되면 아래와 같은 메일을 받을 수 있다. 링크를 따라 이동하여 로그인을 완료하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2638A84F58C79E4230&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2638A84F58C79E4230&quot; width=&quot;1000&quot; height=&quot;643&quot; filename=&quot;adobe_affiliate18.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;메뉴를 통해 &lt;b&gt;Advertisers&lt;/b&gt; &amp;gt; &lt;b&gt;Search Affiliate Programs&lt;/b&gt;으로 이동하도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 983px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2746434C58C79F0307&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2746434C58C79F0307&quot; width=&quot;983&quot; height=&quot;432&quot; filename=&quot;adobe_affiliate19.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;kbd&gt;Search&lt;/kbd&gt; 버튼을 클릭하면, 이전에 사이트인증에서 선택한 카테고리 및 Accepted 여부를 확인할 수 있으며, &lt;b&gt;Program name&lt;/b&gt;의 &lt;b&gt;Links&lt;/b&gt;를  따라 이동하자.원하는 배너를 선택할 수 있게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 995px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2673AB4F58C79FA028&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2673AB4F58C79FA028&quot; width=&quot;995&quot; height=&quot;606&quot; filename=&quot;adobe_affiliate20.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;배너를 선택했다면 &lt;b&gt;Show code&lt;/b&gt; 링크를 통해 선택하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 965px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2367574E58C7A10A24&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2367574E58C7A10A24&quot; width=&quot;965&quot; height=&quot;655&quot; filename=&quot;adobe_affiliate21.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;마지막 코드부분을 복사하여 자신의 블로그 및 사이트의 원하는 위치에 삽입하면 모든 과정은 끝나게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 563px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/251AE84E58C7A12A23&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F251AE84E58C7A12A23&quot; width=&quot;563&quot; height=&quot;540&quot; filename=&quot;adobe_affiliate22.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Adobe 제휴 프로그램 에필로그&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;구글 애드센스와 마찬가지로 광고수익을 기대해 볼 수 있다는 것은 매우 기뻐할만한 소식이다. 다만, 구글 애드센스의 시작이 그러했듯 아직은 부족한 한글지원으로 인해 가입과 배너설치에 어려움을 호소할 수 있다는 생각이 든다. 차차 나아질 문제라고 보며, 광고 프로그램으로 고수익을 노리는 사용자들은 부담없이 설치를 진행할 것으로 보인다.&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p style=&quot;display:none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2207E54C58C265143D&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/pdf.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Getting_Started_Guide_The_Adobe_Affiliate_Private_Network_Nov16_KOR_V3.pdf&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>웹코딩/App,Plugin</category>
      <category>Adobe</category>
      <category>광고수익창출</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/529</guid>
      <comments>https://webdir.tistory.com/529#entry529comment</comments>
      <pubDate>Tue, 14 Mar 2017 17:00:28 +0900</pubDate>
    </item>
    <item>
      <title>그누보드5 메뉴 현재 위치 설정</title>
      <link>https://webdir.tistory.com/452</link>
      <description>&lt;p&gt;그누보드5에서 제공하는 메뉴는 현재 위치를 알리는 클래스가 설정되어 있지 않습니다. 현재 위치를 알리는 용도로 사용될 active 클래스를 추가하는 간단한 방법을 살펴봅니다.&lt;/p&gt;
&lt;h3&gt;메뉴 현재 위치 설정 원리&lt;/h3&gt;
&lt;p&gt;그누보드5에서 제공하는 메뉴에는 링크 주소를 담고 있는 &lt;code&gt;$row['me_link']&lt;/code&gt; 가 존재한다. 이를 현재 페이지의 주소창의 주소와 비교하여 같다면 해당 메뉴의 &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; 에 &lt;code&gt;.active&lt;/code&gt; 를 추가하도록 설정하는 것이 핵심이다. &lt;code&gt;.active&lt;/code&gt; 에 대한 디자인을 스타일시트에 추가함으로써 일반 메뉴와 현재위치의 메뉴가 구분된다.&lt;/p&gt;
&lt;p&gt;당연한 이야기겠지만, 그누보드5의 &lt;i&gt;관리자 &amp;gt; 환경설정 &amp;gt; 메뉴설정&lt;/i&gt; 에서 추가한 메뉴들에서만 작동하며, 주소창의 주소를 다른 방식으로 변경하는 방법을 사용한다면 작동하지 않는다.&lt;/p&gt;
&lt;h3&gt;메뉴 현재 위치 설정&lt;/h3&gt;
&lt;p&gt;메뉴 현재 위치 설정 및 각각의 메뉴를 선택할 수 있는 클래스를 부여하기 위한 코드는 아래와 같다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; data-line=&quot;15&quot;&gt;&lt;code&gt;&amp;lt;ul id=&quot;gnb_1dul&quot;&amp;gt;
    &amp;lt;?php
    $sql = &quot; select *
                  from {$g5['menu_table']}
                  where me_use = '1'
                  and length(me_code) = '2'
                  order by me_order, me_id &quot;;
    $result = sql_query($sql, false);
    $gnb_zindex = 999; // gnb_1dli z-index 값 설정용
    $cur_url = G5_URL.$_SERVER['REQUEST_URI'];  // #1 현재위치 설정용으로 추가

    for ($i=0; $row=sql_fetch_array($result); $i++) {
        $li_view1 = $i+1; // #2 각각의 메뉴명을 추가하기위해 설정
    ?&amp;gt;
    &amp;lt;li class=&quot;gnb_1dli &amp;lt;?php echo 'gnb_1dli_'.$li_view1; ?&amp;gt; &amp;lt;?php echo ($row['me_link']==$cur_url)?'active':''; ?&amp;gt;&quot; &amp;gt;
        &amp;lt;a href=&quot;&amp;lt;?php echo $row['me_link']; ?&amp;gt;&quot; target=&quot;_&amp;lt;?php echo $row['me_target']; ?&amp;gt;&quot; class=&quot;gnb_1da&quot;&amp;gt;&amp;lt;?php echo $row['me_name'] ?&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;?php
        $sql2 = &quot; select *
                       from {$g5['menu_table']}
                       where me_use = '1'
                       and length(me_code) = '4'
                       and substring(me_code, 1, 2) = '{$row['me_code']}'
                       order by me_order, me_id &quot;;
        $result2 = sql_query($sql2);

        for ($k=0; $row2=sql_fetch_array($result2); $k++) {
            if($k == 0)
                echo '&amp;lt;ul class=&quot;gnb_2dul&quot;&amp;gt;'.PHP_EOL;
                $li_view2 = $k+1;  // #3 각각의 서브 메뉴명을 추가하기위해 설정
        ?&amp;gt;
        &amp;lt;li class=&quot;gnb_2dli &amp;lt;?php echo 'gnb_2dli_'.$li_view2; ?&amp;gt; &amp;lt;?php echo ($row2['me_link']==$cur_url)?'active':''; ?&amp;gt;&quot;&amp;gt;&amp;lt;a href=&quot;&amp;lt;?php echo $row2['me_link']; ?&amp;gt;&quot; target=&quot;_&amp;lt;?php echo $row2['me_target']; ?&amp;gt;&quot; class=&quot;gnb_2da&quot;&amp;gt;&amp;lt;?php echo $row2['me_name'] ?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;?php
        }

        if($k &amp;gt; 0)
            echo '&amp;lt;/ul&amp;gt;'.PHP_EOL;
        ?&amp;gt;
        &amp;lt;/li&amp;gt;
        &amp;lt;?php
        }

        if ($i == 0) {  ?&amp;gt;
            &amp;lt;li id=&quot;gnb_empty&quot;&amp;gt;메뉴 준비 중입니다.&amp;lt;?php if ($is_admin) { ?&amp;gt; &amp;lt;br&amp;gt;&amp;lt;a href=&quot;&amp;lt;?php echo G5_ADMIN_URL; ?&amp;gt;/menu_list.php&quot;&amp;gt;관리자모드 &amp;gt; 환경설정 &amp;gt; 메뉴설정 에서 설정하실 수 있습니다.&amp;lt;?php } ?&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;?php } ?&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;15:&lt;/b&gt; 해당줄의 li 요소에 &lt;code&gt;style=&quot;z-index: &amp;lt;?php echo $gnb_zindex--; ?&amp;gt;&quot;&lt;/code&gt; 가 추가되어있어야 하지만 티스토리와 표기상 충돌이 일어나서 위에서는 삭제되었다. 실제론 추가되어 있어야한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;#1 현재위치 설정용&lt;/h4&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code class=&quot;no-margin&quot;&gt;$cur_url = G5_URL.$_SERVER['REQUEST_URI'];  // #1 현재위치 설정용으로 추가
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;G5_URL&lt;/code&gt; 은 그누보드5에 설정되어 있는 절대경로 상수이다. 이는 &lt;i&gt;http://도메인명&lt;/i&gt; 과 같은 경로를 반환하게 된다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$_SERVER['REQUEST_URI']&lt;/code&gt; 는 현재 페이지에의 주소에서 도메인을 제외한 부분을 반환하는 상수이다. 이 상수는 파일명이나 디렉토리명만을 반환하는 다른 PHP 상수와는 다르게 변수값들도 함께 전달 받기에 게시판처럼 매개변수가 필요한 곳에 사용하기에 적당하다.&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;#2 메뉴명 추가를 위한 설정&lt;/h4&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code class=&quot;no-margin&quot;&gt;$li_view1 = $i+1; // #2 각각의 메뉴명을 추가하기위해 설정
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;각 &lt;code&gt;$row&lt;/code&gt; 마다 1씩 증가된 이름을 표기하기 위한 설정이다.&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;#3 서브 메뉴명 추가를 위한 설정&lt;/h4&gt;

&lt;pre class=&quot;language-php&quot;&gt;&lt;code class=&quot;no-margin&quot;&gt;$li_view2 = $k+1;  // #3 각각의 서브 메뉴명을 추가하기위해 설정
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;위에서 설명한 것과 같으며 이것은 서브메뉴에 표기할 메뉴명에 대한 설정이다.&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;메뉴명과 현재위치 클래스 추가&lt;/h4&gt;
&lt;pre class=&quot;language-php&quot;&gt;&lt;code&gt;&amp;lt;li class=&quot;gnb_1dli &amp;lt;?php echo 'gnb_1dli_'.$li_view1; ?&amp;gt; &amp;lt;?php echo ($row['me_link']==$cur_url)?'active':''; ?&amp;gt;&quot; &amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;?php echo 'gnb_1dli_'.$li_view1; ?&amp;gt;&lt;/code&gt; 은 &lt;b&gt;class&lt;/b&gt; 속성값으로 삽입되며, &lt;code&gt;gnb_1dli_1&lt;/code&gt; 을 시작으로 다음 메뉴의 클래스명은 &lt;b&gt;gnb_1dli_2&lt;/b&gt;, &lt;b&gt;.gnb_1dli_3&lt;/b&gt; 과 같은 형식으로 맨 뒤 숫자가 증가된 클래스명이 된다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;클래스명(메뉴명)은 관리자의 메뉴설정에 추가된 순서가 기준이 아니라 메뉴설정의 &lt;b&gt;순서&lt;/b&gt; 필드가 기준이 된다. 즉, 화면에 표시되는 실제 순서가 기준이다.&lt;/li&gt;
&lt;li&gt;서브 메뉴에 대한 메뉴명 추가도 위와 같은 형식이다.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;?php echo ($row['me_link']==$cur_url)?'active':''; ?&amp;gt;&lt;/code&gt; 또한, &lt;b&gt;class&lt;/b&gt; 속성 값으로 삽입되며, 현재 페이지의 주소와 메뉴설정에서 설정된 링크 주소를 비교하여 &lt;code&gt;active&lt;/code&gt; 를 삽입하게 된다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;서브 메뉴 부분에서는 &lt;code&gt;$row2['me_link']&lt;/code&gt; 가 사용됨에 유의하자.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;결과적으로 삽입되는 첫번째 메뉴의 클래스를 살펴보면 공통의 클래스 &lt;b&gt;gnb_1dli&lt;/b&gt;, 해당 메뉴를 선택할 수 있는 클래스 &lt;b&gt;gnb_1dli_1&lt;/b&gt;, 현재 위치가 첫번째 메뉴의 페이지라면 클래스 &lt;b&gt;active&lt;/b&gt;가 삽입되어 있다.&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;스타일시트 추가&lt;/h3&gt;
&lt;p&gt;메뉴가 삽입되는 영역에 대한 스타일시트, 대부분 &lt;b&gt;default.css&lt;/b&gt;에 원하는 디자인을 추가하면 된다. 물론, 기존의 메뉴영역에 대한 디자인이 중복되지 않게 기존 것을 삭제하거나 수정해야 한다.&lt;/p&gt;
&lt;h4&gt;각각의 메뉴 선택 활용&lt;/h4&gt;
&lt;p&gt;가령, 각각의 메뉴의 색상을 무지개빛으로 각각 다르게 설정하고 싶다고 하자.&lt;/p&gt;

&lt;pre class=&quot;language-css&quot;&gt;&lt;code&gt;.gnb_1dli a {
    /* 공통의 설정 내용 */
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: #fff;
}

.gnb_1dli_1 &amp;gt; a {
    background-color: red;
}

.gnb_1dli_2  &amp;gt; a {
    background-color: orange;
}
...
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;메뉴 현재 위치 활용&lt;/h4&gt;
&lt;p&gt;현재 위치의 메뉴에 다른 디자인을 입혀보자.&lt;/p&gt;
&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;no-margin&quot;&gt;.gnb_1dli a {
    /* 공통의 설정 내용 */
    display: block; 
    color: black;
    background-color: transparent;
}

.gnb_1dli.active &amp;gt; a {
    color: #fff;
    background-color: red;
}

.gnb_2dli.active &amp;gt; a {
    color: #fff;
    background-color: orange;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;서브 메뉴가 있다면 서브메뉴에 대한 디자인도 추가하면된다.&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;서브메뉴를 위한 추가사항&lt;/h3&gt;
&lt;p&gt;일반적인 메뉴바와 같은 경우 서브메뉴는 숨겨두고 1차 메뉴들만 보여지게 된다. 서브메뉴에 &lt;code&gt;.active&lt;/code&gt; 가 적용되어 있어도 마우스 오버나 클릭과 같은 동작이 발생하지 않는한 알 수 없기에 이를 수정하고 싶을수도 있다. 간단한 방법으로는 자바스크립트를 이용해 서브메뉴의 부모 메뉴에도 &lt;code&gt;.active&lt;/code&gt; 를 추가하는 것이다.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;no-margin&quot;&gt;$(document).ready(function() {
    // 메뉴 active
    if ($('.gnb_2dli').hasClass('active')){
        var $hasActive = $('.gnb_2dli.active');
        $hasActive.parents('.gnb_1dli').addClass('active');
    };
}); 
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;간단히 jQuery를 이용해 &lt;code&gt;.active&lt;/code&gt; 를 가진 서브메뉴들의 부모에도 &lt;code&gt;.active&lt;/code&gt; 를 추가했다.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>그누보드/GNU 팁</category>
      <category>GNUBOARD</category>
      <category>menu</category>
      <category>Navigation</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/452</guid>
      <comments>https://webdir.tistory.com/452#entry452comment</comments>
      <pubDate>Tue, 7 Feb 2017 11:00:46 +0900</pubDate>
    </item>
    <item>
      <title>그누보드 제목 $g5['title'] 이해와 설정</title>
      <link>https://webdir.tistory.com/526</link>
      <description>&lt;p&gt;그누보드에서 제목 출력을 담당하는 PHP 변수는 &lt;code&gt;$g5['title']&lt;/code&gt; 입니다. 이에 대한 설정내용과 페이지별 제목의 원리를 살펴보고 이를 수정해 봅시다.&lt;/p&gt;
&lt;div class=&quot;alert alert-warning&quot;&gt;해당 글은 그누보드5 버전을 기준으로 작성되었습니다.
&lt;/div&gt;


&lt;h3&gt;사이트 제목 담당 ($g5_head_title)&lt;/h3&gt;
&lt;p&gt;그누보드에서 사이트의 제목을 설정하는 곳은 &lt;b&gt;head.sub.php&lt;/b&gt; 파일이다.&lt;/p&gt;
&lt;p&gt;head.sub.php 파일의 head 영역에서 &lt;code&gt;&amp;lt;title&amp;gt;&amp;lt;?php echo $g5_head_title; ?&amp;gt;&amp;lt;/title&amp;gt;&lt;/code&gt;와 같이 처리하고 있는데 &lt;code&gt;$g5_head_title&lt;/code&gt;은 PHP 변수로 head.sub.php 파일의 상단에 아래와 같이 변수값을 설정하고 있다.&lt;/p&gt;

&lt;pre class=&quot;language-php&quot; data-line=&quot;1,2,3,7&quot;&gt;&lt;code&gt;if (!isset($g5['title'])) {
    $g5['title'] = $config['cf_title'];
    $g5_head_title = $g5['title'];
}
else {
    $g5_head_title = $g5['title']; // 상태바에 표시될 제목
    $g5_head_title .= &quot; | &quot;.$config['cf_title'];
}
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;①&lt;/b&gt; $g5['title'] 변수가 설정되어 있지않다면, 이어지는 구문에서 변수들을 설정한다. (그누보드에서는 게시판 및 특정 페이지의 제목을 따로 만들어두기 때문에 출력하게 되는 $g5['title'] 변수값은 접속하는 페이지에 따라 달라진다.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;②&lt;/b&gt; $g5['title'] 변수값이 설정되어 있지 않다면, 관리자의 환경설정에 설정된 &lt;b&gt;홈페이지 제목&lt;/b&gt;의 값을 가져와 &lt;code&gt;$g5['title']&lt;/code&gt; 에 할당한다.
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 476px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2649E448588795F40F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2649E448588795F40F&quot; width=&quot;476&quot; height=&quot;184&quot; filename=&quot;gnu_title2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;③&lt;/b&gt; $g5['title'] 변수값이 설정되어 있지 않다면, &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;에 설정될 값으로 위와 마찬가지로 &lt;b&gt;홈페이지 제목&lt;/b&gt;의 값을 가져와  &lt;code&gt;$g5_head_title&lt;/code&gt; 에 할당한다.
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 305px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2745A64F5887955D1F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2745A64F5887955D1F&quot; width=&quot;305&quot; height=&quot;34&quot; filename=&quot;gnu_title.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;⑦&lt;/b&gt; $g5['title'] 변수값이 설정되어 있을때 즉, 게시판이나 제목을 자체적으로 가진 특정 페이지의 경우에는 $g5['title'] 에 이미 설정된 페이지 제목과 &lt;b&gt;홈페이지 제목&lt;/b&gt;을  가져와  &lt;code&gt;$g5_head_title&lt;/code&gt; 에 할당한다. 세부페이지명 혹은 게시판 글제목 | 사이트제목 과 같은 형태로 표기된다.
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 305px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22153047588796B015&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22153047588796B015&quot; width=&quot;305&quot; height=&quot;34&quot; filename=&quot;gnu_title3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;alert alert-modern&quot;&gt;
&lt;h4&gt;요약&lt;/h4&gt;
&lt;p&gt;관리자의 환경설정에 설정된 &lt;b&gt;홈페이지 제목&lt;/b&gt;이 사이트 제목으로 이용되고, 일부 페이지들은 해당 페이지에 미리 설정된 &lt;code&gt;$g5['title']&lt;/code&gt; 이 해당 페이지의 제목으로 설정된다.&lt;/p&gt;
&lt;/div&gt;

&lt;h3&gt;브랜드명으로 출력&lt;/h3&gt;
&lt;p&gt;검색엔진이나 기타 봇들에 의해 사이트가 수집될때 헤딩(heading) 태그들을 주요하게 살펴보는데, 이중 사이트의 &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; 태그가 해당 사이트의 브랜드명, 즉 제목으로 사용되곤 한다. 서적의 목차를 생각하면 이해가 쉬운데, 주요 제목(h1)과 이하의 목차들(h2,h3,h4)이 세부 목차로 구분된다고 보면 된다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;head.php&lt;/b&gt; 파일의 상단에 아래와 같이 제목을 출력한다. 그누보드의 경우 기본형이 로고 이미지를 사용하기에 해당 부분은 눈에는 보이지 않게 처리되어 있지만 실제로는 봇들에 의해 수집된다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; data-line=&quot;3&quot;&gt;&lt;code&gt;&amp;lt;!-- 상단 시작 { --&amp;gt;
&amp;lt;div id=&quot;hd&quot;&amp;gt;
    &amp;lt;h1 id=&quot;hd_h1&quot;&amp;gt;&amp;lt;?php echo $g5['title'] ?&amp;gt;&amp;lt;/h1&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;③&lt;/b&gt; 브랜드명을 출력한다(화면에는 출력되지 않음).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;본문에 출력&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;head.php&lt;/b&gt; 파일의 하단에 아래와 같이 제목을 출력한다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; data-line=&quot;8&quot;&gt;&lt;code&gt;&amp;lt;!-- 콘텐츠 시작 { --&amp;gt;
&amp;lt;div id=&quot;wrapper&quot;&amp;gt;
    &amp;lt;div id=&quot;aside&quot;&amp;gt;
        &amp;lt;?php echo outlogin('basic'); // 외부 로그인, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?&amp;gt;
        &amp;lt;?php echo poll('basic'); // 설문조사, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div id=&quot;container&quot;&amp;gt;
        &amp;lt;?php if ((!$bo_table || $w == 's' ) &amp;amp;&amp;amp; !defined(&quot;_INDEX_&quot;)) { ?&amp;gt;&amp;lt;div id=&quot;container_title&quot;&amp;gt;&amp;lt;?php echo $g5['title'] ?&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;?php } ?&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;⑧&lt;/b&gt; 본문에 해당하는 &lt;code&gt;#container&lt;/code&gt; 에 게시판, 비밀글, 인덱스 페이지가 아닌 경우에 본문의 제목으로 출력한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2564F84B58879B2015&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2564F84B58879B2015&quot; width=&quot;500&quot; height=&quot;321&quot; filename=&quot;gnu_title5.png&quot; filemime=&quot;image/png&quot; original=&quot;yes&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display: block; max-width:100%; &quot;&gt;페이지의 제목&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;alert alert-info&quot;&gt;
&lt;a href=&quot;http://webdir.tistory.com/525&quot;&gt;$w 변수값이 의미하는 것&lt;/a&gt;
&lt;/div&gt;

&lt;h3&gt;게시판에 출력&lt;/h3&gt;
&lt;p&gt;위에서 살펴본 본문에 출력부분의 게시판일 경우에는 다른 적용을 받게 되는데 이는 &lt;b&gt;board.php&lt;/b&gt; 파일에서 변수 &lt;code&gt;$g5['title']&lt;/code&gt; 값을 아래와 같이 설정한다.&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; data-line=&quot;2,4&quot;&gt;&lt;code&gt;.....
$g5['title'] = strip_tags(conv_subject($write['wr_subject'], 255)).&quot; &amp;gt; &quot;.((G5_IS_MOBILE &amp;amp;&amp;amp; $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']);
.....
$g5['title'] = ((G5_IS_MOBILE &amp;amp;&amp;amp; $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$page.' 페이지';
.....
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;②&lt;/b&gt; 모바일과 PC에 설정된 &lt;b&gt;게시판  제목&lt;/b&gt;을 가져와 &lt;code&gt;$g5['title']&lt;/code&gt; 에 할당한다.
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 705px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/270276355887A45825&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F270276355887A45825&quot; width=&quot;705&quot; height=&quot;54&quot; filename=&quot;gnu_title6.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;④&lt;/b&gt; 만일 게시판의 페이지 갯수가 1개 이상이라면 해당 페이지 숫자를 &lt;code&gt;$g5['title']&lt;/code&gt; 에 함께 할당한다.
&lt;p class=&quot;border&quot; style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 314px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2119EA405887A4C521&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2119EA405887A4C521&quot; width=&quot;314&quot; height=&quot;36&quot; filename=&quot;gnu_title7.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>그누보드/GNU 자습서</category>
      <category>g5['title']</category>
      <category>GNUBOARD</category>
      <category>그누보드</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/526</guid>
      <comments>https://webdir.tistory.com/526#entry526comment</comments>
      <pubDate>Thu, 2 Feb 2017 11:00:09 +0900</pubDate>
    </item>
    <item>
      <title>그누보드 $w 변수값이 의미하는 것</title>
      <link>https://webdir.tistory.com/525</link>
      <description>&lt;p&gt;그누보드에서 사용되는 변수 &lt;code&gt;$w&lt;/code&gt; 값이 의미하는 것에 대하여 알아봅니다.&lt;/p&gt;

&lt;div class=&quot;alert alert-warning&quot;&gt;해당 글은 그누보드5 버전을 기준으로 작성되었습니다.&lt;/div&gt;

&lt;h3&gt;변수 $w&lt;/h3&gt;
&lt;p&gt;그누보드는 변수 &lt;code&gt;$w&lt;/code&gt; 값을 이용해 특정상황에 맞는 조건문의 분기로 사용한다. 가령 글쓰기 폼이나 회원가입 폼등에서 작성된 문서의 수정을 위한 접근인지 첫 접근인지를 파악하는 용도로 사용된다.&lt;/p&gt;

&lt;p&gt;각각의 값이 가지는 의미는 아래와 같다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$w == ''&lt;/code&gt; 라면 &lt;strong&gt;새글&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$w == 'u'&lt;/code&gt; 라면 &lt;strong&gt;글수정&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$w == 'r'&lt;/code&gt; 라면 &lt;strong&gt;답변글&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$w == 's'&lt;/code&gt; 라면 &lt;strong&gt;비밀글&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>그누보드/GNU 자습서</category>
      <category>$w</category>
      <category>GNUBOARD</category>
      <category>그누보드</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/525</guid>
      <comments>https://webdir.tistory.com/525#entry525comment</comments>
      <pubDate>Wed, 1 Feb 2017 11:00:59 +0900</pubDate>
    </item>
    <item>
      <title>여러가지 기기의 중단점(breakpoint)</title>
      <link>https://webdir.tistory.com/524</link>
      <description>&lt;p&gt;반응형 웹디자인을 만들때 특정 중단점을 기준으로 디자인을 구상하는 것은 현명하지 못한 결과를 초래한다. 수많은 기기의 뷰포트들을 각각의 중단점에 맞게 디자인을 구상하지 말고 전체를 아우르는 유동성있는 디자인이 작업의 노고를 줄이는 지름길이다. 다만 경우에 따라 특정 기기들의 뷰포트가 필요한 경우가 있기에 이를 조사해봤다.&lt;/p&gt;

&lt;h3&gt;스마트폰(Smartphone)&lt;/h3&gt;
&lt;h4&gt;아이폰(iphones)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_0&quot; data-id=&quot;524_0&quot;&gt;아이폰 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_0&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_0&quot; data-id=&quot;524_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- iPhone 4 and 4S ----------- */

/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2) {

}

/* Portrait */
@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: portrait) {
}

/* Landscape */
@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: landscape) {

}

/* ----------- iPhone 5 and 5S ----------- */

/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 568px)
  and (-webkit-min-device-pixel-ratio: 2) {

}

/* Portrait */
@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 568px)
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: portrait) {
}

/* Landscape */
@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 568px)
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: landscape) {

}

/* ----------- iPhone 6 ----------- */

/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 375px) 
  and (max-device-width: 667px) 
  and (-webkit-min-device-pixel-ratio: 2) { 

}

/* Portrait */
@media only screen 
  and (min-device-width: 375px) 
  and (max-device-width: 667px) 
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: portrait) { 

}

/* Landscape */
@media only screen 
  and (min-device-width: 375px) 
  and (max-device-width: 667px) 
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: landscape) { 

}

/* ----------- iPhone 6+ ----------- */

/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 414px) 
  and (max-device-width: 736px) 
  and (-webkit-min-device-pixel-ratio: 3) { 

}

/* Portrait */
@media only screen 
  and (min-device-width: 414px) 
  and (max-device-width: 736px) 
  and (-webkit-min-device-pixel-ratio: 3)
  and (orientation: portrait) { 

}

/* Landscape */
@media only screen 
  and (min-device-width: 414px) 
  and (max-device-width: 736px) 
  and (-webkit-min-device-pixel-ratio: 3)
  and (orientation: landscape) { 

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_0&quot; data-id=&quot;524_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;h4&gt;갤럭시폰(Galaxy phones)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_1&quot; data-id=&quot;524_1&quot;&gt;갤럭시폰 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_1&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_1&quot; data-id=&quot;524_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;

&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- Galaxy S3 ----------- */

/* Portrait and Landscape */
@media screen 
  and (device-width: 320px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 2) {

}

/* Portrait */
@media screen 
  and (device-width: 320px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 2) 
  and (orientation: portrait) {

}

/* Landscape */
@media screen 
  and (device-width: 320px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 2) 
  and (orientation: landscape) {

}

/* ----------- Galaxy S4 ----------- */

/* Portrait and Landscape */
@media screen 
  and (device-width: 320px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) {

}

/* Portrait */
@media screen 
  and (device-width: 320px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) 
  and (orientation: portrait) {

}

/* Landscape */
@media screen 
  and (device-width: 320px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) 
  and (orientation: landscape) {

}

/* ----------- Galaxy S5 ----------- */

/* Portrait and Landscape */
@media screen 
  and (device-width: 360px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) {

}

/* Portrait */
@media screen 
  and (device-width: 360px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) 
  and (orientation: portrait) {

}

/* Landscape */
@media screen 
  and (device-width: 360px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) 
  and (orientation: landscape) {

}
&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_1&quot; data-id=&quot;524_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;h4&gt;HTC Phones&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_2&quot; data-id=&quot;524_2&quot;&gt;HTC폰 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_2&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_2&quot; data-id=&quot;524_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- HTC One ----------- */

/* Portrait and Landscape */
@media screen 
  and (device-width: 360px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) {

}

/* Portrait */
@media screen 
  and (device-width: 360px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) 
  and (orientation: portrait) {

}

/* Landscape */
@media screen 
  and (device-width: 360px) 
  and (device-height: 640px) 
  and (-webkit-device-pixel-ratio: 3) 
  and (orientation: landscape) {

}
&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_2&quot; data-id=&quot;524_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;h3&gt;태블릿(Tablets)&lt;/h3&gt; 
&lt;h4&gt;아이패드(iPads)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_3&quot; data-id=&quot;524_3&quot;&gt;아이패드 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_3&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_3&quot; data-id=&quot;524_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- iPad mini ----------- */

/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (-webkit-min-device-pixel-ratio: 1) {

}

/* Portrait */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (orientation: portrait) 
  and (-webkit-min-device-pixel-ratio: 1) {

}

/* Landscape */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (orientation: landscape) 
  and (-webkit-min-device-pixel-ratio: 1) {

}

/* ----------- iPad 1 and 2 ----------- */
/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (-webkit-min-device-pixel-ratio: 1) {

}

/* Portrait */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (orientation: portrait) 
  and (-webkit-min-device-pixel-ratio: 1) {

}

/* Landscape */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (orientation: landscape) 
  and (-webkit-min-device-pixel-ratio: 1) {

}

/* ----------- iPad 3 and 4 ----------- */
/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (-webkit-min-device-pixel-ratio: 2) {

}

/* Portrait */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (orientation: portrait) 
  and (-webkit-min-device-pixel-ratio: 2) {

}

/* Landscape */
@media only screen 
  and (min-device-width: 768px) 
  and (max-device-width: 1024px) 
  and (orientation: landscape) 
  and (-webkit-min-device-pixel-ratio: 2) {

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_3&quot; data-id=&quot;524_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;h4&gt;갤럭시 태블릿(Galaxy Tablets)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_4&quot; data-id=&quot;524_4&quot;&gt;갤럭시 태블릿 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_4&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_4&quot; data-id=&quot;524_4&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- Galaxy Tab 10.1 ----------- */

/* Portrait and Landscape */
@media 
  (min-device-width: 800px) 
  and (max-device-width: 1280px) {

}

/* Portrait */
@media 
  (max-device-width: 800px) 
  and (orientation: portrait) { 

}

/* Landscape */
@media 
  (max-device-width: 1280px) 
  and (orientation: landscape) { 

}
&lt;/code&gt;&lt;/pre&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_4&quot; data-id=&quot;524_4&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;h4&gt;넥서스 태블릿(Nexus Tablets)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_5&quot; data-id=&quot;524_5&quot;&gt;넥서스 태블릿 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_5&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_5&quot; data-id=&quot;524_5&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- Asus Nexus 7 ----------- */

/* Portrait and Landscape */
@media screen 
  and (device-width: 601px) 
  and (device-height: 906px) 
  and (-webkit-min-device-pixel-ratio: 1.331) 
  and (-webkit-max-device-pixel-ratio: 1.332) {

}

/* Portrait */
@media screen 
  and (device-width: 601px) 
  and (device-height: 906px) 
  and (-webkit-min-device-pixel-ratio: 1.331) 
  and (-webkit-max-device-pixel-ratio: 1.332) 
  and (orientation: portrait) {

}

/* Landscape */
@media screen 
  and (device-width: 601px) 
  and (device-height: 906px) 
  and (-webkit-min-device-pixel-ratio: 1.331) 
  and (-webkit-max-device-pixel-ratio: 1.332) 
  and (orientation: landscape) {

}/* ----------- Asus Nexus 7 ----------- */

/* Portrait and Landscape */
@media screen 
  and (device-width: 601px) 
  and (device-height: 906px) 
  and (-webkit-min-device-pixel-ratio: 1.331) 
  and (-webkit-max-device-pixel-ratio: 1.332) {

}

/* Portrait */
@media screen 
  and (device-width: 601px) 
  and (device-height: 906px) 
  and (-webkit-min-device-pixel-ratio: 1.331) 
  and (-webkit-max-device-pixel-ratio: 1.332) 
  and (orientation: portrait) {

}

/* Landscape */
@media screen 
  and (device-width: 601px) 
  and (device-height: 906px) 
  and (-webkit-min-device-pixel-ratio: 1.331) 
  and (-webkit-max-device-pixel-ratio: 1.332) 
  and (orientation: landscape) {

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_5&quot; data-id=&quot;524_5&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;h4&gt;킨들 파이어(Kindle Fire)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_6&quot; data-id=&quot;524_6&quot;&gt;킨들 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_6&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_6&quot; data-id=&quot;524_6&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- Kindle Fire HD 7&quot; ----------- */

/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 800px) 
  and (max-device-width: 1280px) 
  and (-webkit-min-device-pixel-ratio: 1.5) {

}

/* Portrait */
@media only screen 
  and (min-device-width: 800px) 
  and (max-device-width: 1280px) 
  and (-webkit-min-device-pixel-ratio: 1.5) 
  and (orientation: portrait) {
}

/* Landscape */
@media only screen 
  and (min-device-width: 800px) 
  and (max-device-width: 1280px) 
  and (-webkit-min-device-pixel-ratio: 1.5) 
  and (orientation: landscape) {

}

/* ----------- Kindle Fire HD 8.9&quot; ----------- */

/* Portrait and Landscape */
@media only screen 
  and (min-device-width: 1200px) 
  and (max-device-width: 1600px) 
  and (-webkit-min-device-pixel-ratio: 1.5) {

}

/* Portrait */
@media only screen 
  and (min-device-width: 1200px) 
  and (max-device-width: 1600px) 
  and (-webkit-min-device-pixel-ratio: 1.5) 
  and (orientation: portrait) {
}

/* Landscape */
@media only screen 
  and (min-device-width: 1200px) 
  and (max-device-width: 1600px) 
  and (-webkit-min-device-pixel-ratio: 1.5) 
  and (orientation: landscape) {

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_6&quot; data-id=&quot;524_6&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;h3&gt;노트북(Laptops)&lt;/h3&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_7&quot; data-id=&quot;524_7&quot;&gt;노트북 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_7&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_7&quot; data-id=&quot;524_7&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- Non-Retina Screens ----------- */
@media screen 
  and (min-device-width: 1200px) 
  and (max-device-width: 1600px) 
  and (-webkit-min-device-pixel-ratio: 1) { 
}

/* ----------- Retina Screens ----------- */
@media screen 
  and (min-device-width: 1200px) 
  and (max-device-width: 1600px) 
  and (-webkit-min-device-pixel-ratio: 2)
  and (min-resolution: 192dpi) { 
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_7&quot; data-id=&quot;524_7&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 



&lt;h3&gt;Wearables&lt;/h3&gt;
&lt;h4&gt;애플워치(Apple Watch)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_8&quot; data-id=&quot;524_8&quot;&gt;애플워치 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_8&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_8&quot; data-id=&quot;524_8&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- Apple Watch ----------- */
@media
  (max-device-width: 42mm)
  and (min-device-width: 38mm) { 

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_8&quot; data-id=&quot;524_8&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;h4&gt;모토 360워치(Moto 360 Watch)&lt;/h4&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more524_9&quot; data-id=&quot;524_9&quot;&gt;모토 360워치 mediaquery 중단점 보기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content524_9&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_9&quot; data-id=&quot;524_9&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* ----------- Moto 360 Watch ----------- */
@media 
  (max-device-width: 218px)
  and (max-device-height: 281px) { 

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less524_9&quot; data-id=&quot;524_9&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;br&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://css-tricks.com/snippets/css/media-queries-for-standard-devices/&quot;&gt;Media Queries for Standard Devices&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>웹개발론/반응형웹디자인</category>
      <category>Breakpoint</category>
      <category>mediaquery</category>
      <category>반응형웹</category>
      <category>중단점</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/524</guid>
      <comments>https://webdir.tistory.com/524#entry524comment</comments>
      <pubDate>Mon, 7 Nov 2016 11:00:20 +0900</pubDate>
    </item>
    <item>
      <title>크롬 개발자 도구 오류</title>
      <link>https://webdir.tistory.com/523</link>
      <description>&lt;p&gt;크롬개발자도구에서 갑자기 아래와 같은 오류가 발견되었다. VM: 다음의 숫자는 계속해서 변하고 있다.&lt;/p&gt;
&lt;p class=&quot;alert alert-warning&quot;&gt;
GET http://s3.eu-central-1.amazonaws.com/forton/http_headers_1.js VM7376:1
&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2314AC4A58140A1E22&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2314AC4A58140A1E22&quot; width=&quot;1000&quot; height=&quot;113&quot; filename=&quot;VM_debugger.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;이게 무슨 오류일까 곰곰히 생각해봤다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;진행중이던 프로젝트에 삽입된 코드들중에 외부서버에서 무엇인가 받고 내보내는 해킹코드가 삽입되었는가?&lt;/li&gt;
&lt;li&gt;최근에 재설치한 VMware(가상머신)에서 정보수집을 위해 무엇인가 하고 있는 것인가?&lt;/li&gt;
&lt;li&gt;기타 등등&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;관련하여 검색중에 의심되는 부분을 발견했고 구글의 확장기능들을 만들때 사용되는 코드들과 관련될 수 있다고 유추했다. 설치된 확장기능을 하나 하나 사용중지 시켜보니 HTTP Headers 란 확장기능이 문제의 원인이었다.&lt;/p&gt;
&lt;blockquote&gt;VMware를 의심했던 것에 심심한 사과를~&lt;/blockquote&gt;</description>
      <category>개발도구/크롬, 개발자도구</category>
      <category>VM</category>
      <category>오류</category>
      <category>크롬개발자도구</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/523</guid>
      <comments>https://webdir.tistory.com/523#entry523comment</comments>
      <pubDate>Sat, 29 Oct 2016 11:47:34 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 정품인증 사례</title>
      <link>https://webdir.tistory.com/521</link>
      <description>&lt;p&gt;윈도우즈 10의 정품인증과 관련된 궁금한 내용들을 모아봅니다.&lt;/p&gt;


&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more521_0&quot; data-id=&quot;521_0&quot;&gt;윈도우즈 10 업그레이드 기간은 언제까지 입니까?&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content521_0&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_0&quot; data-id=&quot;521_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;일반 사용자를 위한 윈도우즈 10 무료 업그레이드 혜택은 2016년 7월 29일로 종료되었지만, MS는 여전히 무료 업그레이드 혜택을 받을 수 있는 통로를 열어두었다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/accessibility/windows10upgrade&quot; target=&quot;_blank&quot;&gt;보조 기술을 사용하는 고객을 위한 Windows 10 무료 업그레이드&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_0&quot; data-id=&quot;521_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more521_1&quot; data-id=&quot;521_1&quot;&gt;불법복제품 혹은 크랙으로 윈도우즈를 사용하는 사람도 정품인증이 됩니까?&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content521_1&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_1&quot; data-id=&quot;521_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;기존에 사용하던 윈도우에 정품인증을 받았던 사용자들은 윈도우 10 업그레이드 후에도 자동으로 인증되었다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;K.J 툴로 정품인증 받은 사용자&lt;/li&gt;
&lt;li&gt;바이오스 개조하여 정품인증 받은 사용자&lt;/li&gt;
&lt;li&gt;OEM PC/노트북에 상위 버전의 윈도우를 설치하고 인증툴로 정품인증 받은 사용자&lt;/li&gt;
&lt;li&gt;기타등등&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;물론, 불법 사용자의 윈도우즈 10까지의 업데이트 길이 험난할 수 있고 모든 경우에 성공할 순 없다.&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_1&quot; data-id=&quot;521_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more521_2&quot; data-id=&quot;521_2&quot;&gt;재설치, 디바이스 변경 후에도 정품인증이 유지됩니까?&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content521_2&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_2&quot; data-id=&quot;521_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;재설치 뿐만 아니라 하드웨어 정보가 변경되었더라도 레드스톤(1607)부터는 MS의 윈도우즈 정품 라이센스 관리방법이 마이크로소프트 계정에 귀속되게 변경되었기에 재인증이 수월해졌다. 그러니 로컬계정을 사용하는 정품인증자는 마이크로소프트 계정으로 변경하기를 추천한다.&lt;/p&gt;
&lt;p&gt;다만, 인증정보가 데스크톱(PC)과 랩톱(노트북)간의 인증정보는 이동되지 않는다.&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_2&quot; data-id=&quot;521_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more521_3&quot; data-id=&quot;521_3&quot;&gt;윈도우즈 8.1 백업 토큰으로 인증됩니까?&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content521_3&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_3&quot; data-id=&quot;521_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;윈도우즈 8.1에서 백업한 토큰파일인 &lt;b&gt;data.dat&lt;/b&gt;, &lt;b&gt;tokens.dat&lt;/b&gt; 파일을 윈도우즈 10의 C:\Windows\System32\spp\store\2.0 에 단순하게 붙여넣어 교체했더니 성공했다. 윈도우즈 8.1에서는 오피스 인증도 한데 묶여 있기때문에 윈도우즈 8.1에서 오피스를 인증받았더라면 윈도우즈 10에 같은 오피스를 설치하면 이 또한 인증된다. 파일 교체후 재부팅한후에 인증되지 않은 윈도우즈 제품이라고 뜨지만 조금 기다리면 인증되거나, 설정 &amp;gt; 업데이트 및 복구 &amp;gt; 정품인증으로 이동하여 문제해결 링크를 통해 디바이스 변경을&amp;nbsp;들락날락 하다보면 인증이 된다.&lt;/p&gt;
&lt;p&gt;이 후, 시스템의 안정성과는 별개이다.&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less521_3&quot; data-id=&quot;521_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>Windows 10</category>
      <category>Windows 10 정품인증</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/521</guid>
      <comments>https://webdir.tistory.com/521#entry521comment</comments>
      <pubDate>Mon, 24 Oct 2016 14:11:43 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 다운로드 및 설치용 미디어(USB/DVD) 만들기</title>
      <link>https://webdir.tistory.com/520</link>
      <description>&lt;p&gt;윈도우즈 10은 업데이트 및 설치도구, ISO 이미지를 제공하고 있습니다. 관련 ISO 이미지가 필요해서 토렌트나 기타 웹하드를 전전하는 분들은 마이크로소프트에서 제공하는 최신의 정식 버전을 다운로드하여 사용하기를 추천합니다.&lt;/p&gt;

&lt;h3&gt;Windows 10 다운로드&lt;/h3&gt;
&lt;p&gt;아래의 링크는 마이크로소프트 공식 링크이다.&lt;/p&gt;
&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOWN #1&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows10&quot; target=&quot;_blank&quot;&gt;Windows 10 다운로드&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOWN #2&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows10ISO/&quot; target=&quot;_blank&quot;&gt;Windows 10 디스크 이미지 다운로드(ISO 파일)&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt; 

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;DOWN #1&lt;/b&gt; : 이 링크는 미디어 만들기 도구를 통해 운영중인 PC에 직접 윈도우즈 10을 설치하거나 설치/부팅용 USB/DVD 를 만들 수 있게 해준다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DOWN #2&lt;/b&gt; : 이 링크는 원하는 버전의 ISO 파일을 바로 다운로드 받을 수 있게 해준다. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;아래에선 DOWN #1 링크에 대한 설명으로 이루어지고, ISO를 직접 다운 받은 경우에는 &lt;a href=&quot;http://webdir.tistory.com/519&quot; target=&quot;_blank&quot;&gt;부팅가능한 USB 드라이버 만들기 - Rufus&lt;/a&gt;를 참고하길 바란다.&lt;/p&gt;

&lt;h3&gt;Windows 10 설치 미디어 만들기&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows10&quot; target=&quot;_blank&quot;&gt;DOWN #1&lt;/a&gt; 링크에서 &lt;b&gt;지금 도구 다운로드&lt;/b&gt;를 선택해 &lt;mark&gt;MediaCreationTool.exe&lt;/mark&gt;를 다운로드하고 실행한다. &lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 784px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2158A03857F9315419&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2158A03857F9315419&quot; width=&quot;784&quot; height=&quot;418&quot; filename=&quot;Windows10_download.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;MediaCreationTool.exe를 실행하면 아래와 같은 과정을 거친다. 다음 및 동의를 선택하도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22244E3557F9478932&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22244E3557F9478932&quot; width=&quot;1000&quot; height=&quot;398&quot; filename=&quot;Windows10_download2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;설치 미디어를 만드는게 목표이므로 &lt;b&gt;다른 PC용 설치 미디어 만들기&lt;/b&gt;를 선택하고, 설치할 버전을 선택하도록 하자. 기본적으로 현재 설치를 진행하고 있는 PC를 기준으로 선택되는데 &lt;b&gt;이 PC에 권장 옵션 사용&lt;/b&gt;을 체크해제하면 원하는 버전을 선택할 수 있게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2763433B57F9486C2F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2763433B57F9486C2F&quot; width=&quot;1000&quot; height=&quot;398&quot; filename=&quot;Windows10_download3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;USB를 선택하면 부팅가능한 윈도우즈 설치 파일이 되는 것이고, ISO 파일을 선택하면 차후에 다른 방법을 통하여 설치파일로 만들 수 있다. 알맞은 외장장치를 선택하여 진행하도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/224E433957F9490F07&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F224E433957F9490F07&quot; width=&quot;1000&quot; height=&quot;398&quot; filename=&quot;Windows10_download4.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;다운로드가 진행되고 완료되면 다시 미디어를 만들게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2167E43F57F9437D2E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2167E43F57F9437D2E&quot; width=&quot;1000&quot; height=&quot;398&quot; filename=&quot;Windows10_download5.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;제작이 완료되면 마침을 눌러 프로그램을 종료한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2302AF4657F9452623&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2302AF4657F9452623&quot; width=&quot;1000&quot; height=&quot;398&quot; filename=&quot;Windows10_download6.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;마이크로소프트에서 링크를 제공하는 한 설치를 위해 ISO파일을 준비할 필요도 없고 순서에 따라 선택만 해주면 되니 매우 간편하게 설치 미디어를 만들 수 있다. 다만 설치시에 다른 옵션 선택이 불가능하기 때문에 GPT 파티션을 위한 UEFI 설치 미디어를 만들 수 없다는 단점은 있다.&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>DVD 부팅</category>
      <category>USB 부팅</category>
      <category>Windows 10</category>
      <category>Windows 10 다운로드</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/520</guid>
      <comments>https://webdir.tistory.com/520#entry520comment</comments>
      <pubDate>Tue, 11 Oct 2016 11:00:28 +0900</pubDate>
    </item>
    <item>
      <title>부팅가능한 USB 드라이버 만들기 - Rufus</title>
      <link>https://webdir.tistory.com/519</link>
      <description>&lt;p&gt;이전에 소개한 &lt;a href=&quot;http://webdir.tistory.com/518&quot;&gt;Windows USB/DVD Download Tool&lt;/a&gt;은 빠른 제작은 가능하지만 다른 옵션지정이 불가능한 단점이 있습니다. 최근에는 UEFI 부팅을 이용한 GPT 파티션이 애용되고 있으니 이에 대한 편리함을 제공하는 Rufus에 대하여 알아봅니다.&lt;/p&gt;
&lt;p class=&quot;alert alert-info&quot;&gt;윈도우즈 10은 마이크로소프트에서 제공하는 &lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows10&quot; target=&quot;_blank&quot;&gt;Windows 10 다운로드&lt;/a&gt;를 통해 USB나 DVD를 제작할 수 있습니다. 다만 UEFI를 이용한 GPT 파티션 설정을 지원하지 않습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/240EA74F57F8E83A04&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F240EA74F57F8E83A04&quot; width=&quot;800&quot; height=&quot;366&quot; filename=&quot;rufus.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Rufus 소개&lt;/h3&gt;
&lt;p&gt;Rufus는 USB키/펜드라이브, 메모리 스틱등의 USB 드라이버 포맷과 동시에 USB로 부팅할 수 있게 도와주는 유틸리티이다. &lt;a href=&quot;http://webdir.tistory.com/351&quot;&gt;윈도우 8/8.1 설치 - Fast Boot 설정(UEFI 설치)&lt;/a&gt;에서 다뤘던 UEFI 부팅디스크를 만드는 방법은 트윅되어 퍼지고 있는 각종 윈도우즈 ISO 파일은 정상 작동하지 않는 경우가 있는데 Rufus를 이용해 부팅디스크를 만들어 성공한 사례들이 종종 보고되곤 한다.&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;HOME&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://rufus.akeo.ie/?locale=ko_KR&quot; target=&quot;_blank&quot;&gt;Rufus&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt; 

&lt;h4&gt;Rufus 특징&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;부팅가능한 ISO파일(윈도우, 리눅스, UEFI등)을 USB를 이용해서 설치하는 것이 필요할때 사용가능하다.&lt;/li&gt;
&lt;li&gt;OS가 설치되지 않은 시스템에서 작업해야 될 필요가 있을때 사용가능하다.&lt;/li&gt;
&lt;li&gt;바이오스나 DOS 펌웨어의 플래쉬가 필요할때 사용가능하다.&lt;/li&gt; 
&lt;li&gt;로우레벨 유틸리티를 실행시키기를 원할때 사용가능하다.&lt;/li&gt;
&lt;li&gt;작은 용량이지만 빠르게 작동하며 유사한 타 유틸리티들 보다 두배나 더 빠르다.&lt;/li&gt;  
&lt;/ul&gt;

&lt;h3&gt;Rufus 설치&lt;/h3&gt;
&lt;p&gt;위의 Rufus 홈페이지를 통해 다운로드 받을 수 있다. 따로 설치과정이 없이 바로 실행할 수 있는 실행파일로 배포된다. 실행하면 아래와 같이 업데이트 연결을 하게 되는데 &quot;아니오&quot;를 선택하면 실행이 되질 않는다...&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 397px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2144E85057F8F0172C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2144E85057F8F0172C&quot; width=&quot;397&quot; height=&quot;134&quot; filename=&quot;rufus_install.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;


&lt;h4&gt;시스템 요구사항&lt;/h4&gt;
&lt;p&gt;32비트 혹은 64비트의 윈도우 XP 이상 운영체제. 다운로드후 바로 이용이 가능하다.&lt;/p&gt;
&lt;p class=&quot;alert alert-warning&quot;&gt;
 UEFI/GPT지원을 위해서는 윈도우 비스타 혹은 그 이후의 운영체제가 필요하며, 윈도우 XP의 경우에는 MBR 모드에서 부팅가능한 UEFI 드라이브를 만드는 것이 제한되어 있다.
&lt;/p&gt;

&lt;h3&gt;부팅 디스크 만들기&lt;/h3&gt;
&lt;p&gt;먼저, 설치에 필요한 윈도우즈 이미지 ISO 파일을 준비한다. 윈도우즈 10의 경우 &lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows10ISO/&quot; target=&quot;_blank&quot;&gt;Windows 10 디스크 이미지 다운로드(ISO 파일)&lt;/a&gt;를 통해 최신의 윈도우즈 10버전을 다운로드 할 수 있다. 4Gb 이상의 USB를 준비하고 컴퓨터에 삽입하고 Rufus를 실행하고 UAC 프롬프트가 뜨면 '예'를 선택하도록 하자.&lt;/p&gt;

&lt;blockquote&gt;
필자는 Windows 10 이미지를 GPT 파티션 형식의 UEFI로 미디어를 제작한다.
&lt;/blockquote&gt;

&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 365px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2318FE4757F8EFF423&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2318FE4757F8EFF423&quot; width=&quot;365&quot; height=&quot;556&quot; filename=&quot;rufus_start.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;장치&lt;/b&gt;에서 삽입한 USB 드라이브가 맞는지 확인하고, 하단의 &lt;b&gt;ISO 이미지 버튼&lt;/b&gt;을 이용하여 ISO 이미지를 선택한다(ISO 이미지를 나중에 선택하면 상단에 설정한 내용이 초기화되곤 한다).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;디스크 형식과 부팅 시스템 유형&lt;/b&gt;에서 파티션 형식을 선택한다.
&lt;ul&gt;
&lt;li&gt;MBR 파티션 형식의 BIOS 또는 UEFI-CSM (BIOS)호환 : 기존의 BIOS 탑재형에서 MBR 파티션을 이용할 경우인데, 과거의 방식은 대부분 이 방식이다.&lt;/li&gt;
&lt;li&gt;MBR 파티션 형식의 UEFI : 최신의 UEFI 탑재형에서 MBR 파티션을 사용할 경우인데, GPT 파티션에 대한 정보가 없는 경우 이 방식으로 설치하곤 한다.&lt;/li&gt;
&lt;li&gt;GPT 파티션 형식의 UEFI : 최신의 UEFI 탑재형에서 GPT 파티션을 사용할 경우이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;파일 시스템&lt;/b&gt;을 선택하는데 UEFI는 기본값은 FAT32를 추천한다(UEFI는 FAT로 포맷된 별도의 부트로더 파티션이 필요하며, 일부 업체를 제외하곤 NTFS를 지원하지 않는 실정이다). UEFI가 아닐경우, NTFS로 좀 더 빠른 부팅 디스크를 만들 수 있다.&lt;/li&gt;
&lt;li&gt;시작버튼으로 진행을 시작한다.&lt;/li&gt;   
&lt;/ol&gt;

&lt;h3&gt;완료&lt;/h3&gt;
&lt;p&gt;모두 완료되면 rufus를 종료하고 USB를 제거한 후, 다시 삽입해보도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 607px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23020A5057F8F8870C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23020A5057F8F8870C&quot; width=&quot;607&quot; height=&quot;243&quot; filename=&quot;rufus_end.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;예비용 링크&lt;/h3&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/243D8F4A57F927D616&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/exe.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;rufus-2.11.exe&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 일반</category>
      <category>USB 부팅</category>
      <category>Utility</category>
      <category>Windows</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/519</guid>
      <comments>https://webdir.tistory.com/519#entry519comment</comments>
      <pubDate>Mon, 10 Oct 2016 11:38:02 +0900</pubDate>
    </item>
    <item>
      <title>Windows USB/DVD Download Tool</title>
      <link>https://webdir.tistory.com/518</link>
      <description>&lt;p&gt;예전부터 윈도우즈 설치를 위해서 ISO 파일을 부팅가능하게 만들어주는 여러가지 도구들이 존재했는데 이런 프로그램들이 대부분 유료이거나 여러가지 기능중에 하나이기에 복잡하기도 하고 오랬동안 같은 과정을 반복하지 않아 사용법을 잊곤 했습니다. 아래의 방법은 마이크로소프트에서 공식적인 문서로 제공하는 부분이고 몇가지 질답을 제공하고 있으니 좀 더 안정적인 방법일거라 판단되고 무엇보다 매우 간단합니다.&lt;/p&gt;

&lt;div class=&quot;alert alert-warining&quot;&gt;
Windows USB/DVD Download Tool은 윈도우즈7/8 의 ISO파일을 BIOS의 MBR 파티션을 기반으로 미디어를 제작합니다. 최신의 PC들은 UEFI를 지원하고 GPT 파티션 기반의 미디어를 제작하기를 원한다면 &lt;a href=&quot;https://rufus.akeo.ie/?locale=ko_KR&quot; target=&quot;_blank&quot;&gt;Rufus&lt;/a&gt;를 이용한 미디어 제작을 추천합니다. 이에 대한 설명은 &lt;a href=&quot;http://webdir.tistory.com/519&quot; target=&quot;_blank&quot;&gt;부팅가능한 USB 드라이버 만들기 - Rufus&lt;/a&gt;를 참고하세요.&lt;/div&gt;

&lt;h3&gt;Windows USB/DVD Download Tool 소개&lt;/h3&gt;
&lt;p&gt;윈도우즈 7/8 ISO 파일을 Windows USB/DVD Download Tool를 실행하여 윈도우즈 ISO파일을 DVD 혹은 USB에 복사함으로써 부팅가능한 파일로 생성해준다. 이렇게 생성된 USB 혹은 DVD로 윈도우즈 설치를 진행할 수 있게 된다.&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOWN&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://wudt.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Windows USB/DVD Download Tool - CodePlex&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOC&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/download/windows-usb-dvd-download-tool&quot; target=&quot;_blank&quot;&gt;Windows USB/DVD Download Tool - MicroSosft&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt;

&lt;p class=&quot;alert alert-info&quot;&gt;공식문서와 다운로드 사이트는 다르지만 마이크로소프트에서 링크된 부분이다.&lt;/p&gt;

&lt;h3&gt;Windows USB/DVD Download Tool 설치&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://wudt.codeplex.com/&quot; target=&quot;_blank&quot;&gt;다운로드&lt;/a&gt; 후에 설치한다. 다운로드 페이지의 하단을 살펴보면 한글 설치파일도 존재한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 555px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2401C13E57F45A9D3F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2401C13E57F45A9D3F&quot; width=&quot;555&quot; height=&quot;273&quot; filename=&quot;windows_usb_tool2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/download/details.aspx?id=1639&quot; target=&quot;_blank&quot;&gt;Microsoft .NET Framework version 2.0&lt;/a&gt; 이상이 필요하다.&lt;/p&gt;

&lt;h4&gt;시스템 요구사항&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Windows XP SP2, Windows Vista, or Windows 7 (32-bit or 64-bit)&lt;/li&gt;
&lt;li&gt;팬티엄 233MHz 프로세서이상(300MHz 권장)&lt;/li&gt;
&lt;li&gt;50MB의 HDD 여유공간&lt;/li&gt;
&lt;li&gt;DVD-R 드라이브 혹은 4GB USB 드라이브&lt;/li&gt; 
&lt;/ul&gt;

&lt;h4&gt;윈도우즈 XP 사용자&lt;/h4&gt;
&lt;p&gt;Windows USB/DVD Download Tool을 설치하기 이전에 아래의 응용 프로그램들이 설치되어야 한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/download/details.aspx?id=1639&quot; target=&quot;_blank&quot;&gt;Microsoft .NET Framework version 2.0&lt;/a&gt;이 반드시 설치되어 있어야 한다.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/library/errorpages/smarterror.aspx&quot;&gt;Microsoft Image Mastering API v2 &lt;/a&gt; 가 설치되어 있어야 한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Windows USB/DVD Download Tool 사용법&lt;/h3&gt;
&lt;p&gt;설치 후, 제공되는 실행파일을 관리자 권한으로 실행한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 131px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2744B83E57F45A9D08&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2744B83E57F45A9D08&quot; width=&quot;131&quot; height=&quot;109&quot; filename=&quot;windows_usb_tool3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ISO 파일을 찾아보기 버튼을 통해 선택한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 568px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2244313E57F45A9E0A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2244313E57F45A9E0A&quot; width=&quot;568&quot; height=&quot;300&quot; filename=&quot;windows_usb_tool4.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;원하는 미디어 유형을 선택한다(아래에선 USB를 선택한 후 진행).&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 568px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2543E13E57F45A9E0A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2543E13E57F45A9E0A&quot; width=&quot;568&quot; height=&quot;300&quot; filename=&quot;windows_usb_tool5.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;장치를 확인하고 복사시작 버튼으로 복사를 시작한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 568px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/243E663E57F45A9F10&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F243E663E57F45A9F10&quot; width=&quot;568&quot; height=&quot;300&quot; filename=&quot;windows_usb_tool6.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;복사를 진행하면 드라이브를 포맷하게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 456px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/213FE23E57F45A9F0E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F213FE23E57F45A9F0E&quot; width=&quot;456&quot; height=&quot;121&quot; filename=&quot;windows_usb_tool7.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;복사 진행 중...&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 568px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2747903E57F45AA006&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2747903E57F45AA006&quot; width=&quot;568&quot; height=&quot;300&quot; filename=&quot;windows_usb_tool8.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;복사가 완료되면 해당 미디어를 제거한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 568px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2146EA3E57F45AA007&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2146EA3E57F45AA007&quot; width=&quot;568&quot; height=&quot;300&quot; filename=&quot;windows_usb_tool9.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;예비용 링크&lt;/h3&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2356754A57F9275834&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/exe.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;Windows7-USB-DVD-Download-Tool-Installer-ko-KR.exe&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 일반</category>
      <category>ISO 부팅가능</category>
      <category>USB 부팅</category>
      <category>Utility</category>
      <category>Windows</category>
      <category>Windows USB/DVD</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/518</guid>
      <comments>https://webdir.tistory.com/518#entry518comment</comments>
      <pubDate>Thu, 6 Oct 2016 11:30:10 +0900</pubDate>
    </item>
    <item>
      <title>Window(전역객체) - BOM</title>
      <link>https://webdir.tistory.com/517</link>
      <description>&lt;h3&gt;Wiindow 객체 정의&lt;/h3&gt;
&lt;p&gt;Window 객체는 브라우저의 창(또는 프레임)을 가리키는 객체로, 모든 전역 객체와 전역 함수는 Window 객체의 프로퍼티와 메서드에 해당한다. 즉, Window 객체가 최상위 객체이며, 생략될 수 있기에 눈에 보이지 않을뿐, 모든 변수와 객체, 함수들이 Window 객체안에서 선언되고 실행되고 있다는 것이다.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;var x = 6;  //window.x = 6 과 같다.
var y = 4;  //window.y = 4 와 같다.

window.document  //현재창의 document 프로퍼티(HTML 문서)접근
window.document.forms[0]  //현재창의 HTML 문서의 첫번째 폼 접근
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;모든 자바스크립트 구현에는 유효 범위 체인의 가장 앞에 전역 객체가 위치하며, 이 전역 객체의 프로퍼티들은 전역 변수들이다.&lt;/li&gt;
&lt;li&gt;웹 브라우저 창을 조작할 수 있는 수많은 프로퍼티와 메서드들을 정의하며, 다른 객체(예: Document 객체)를 가리키는 프로퍼티들도 정의한다.&lt;/li&gt;
&lt;li&gt;자기 자신을 참조하는 프로퍼티로 &lt;b&gt;window&lt;/b&gt;와 &lt;b&gt;self&lt;/b&gt;가 있다.&lt;/li&gt;
&lt;li&gt;여러개의 창을 출력한 상태라면, 각각의 창은 고유의 window 객체를 지니며, 고유의 실행 컨텍스트를 정의하게 된다. 이는 첫번째 창에서 선언된 전역 변수는 다른 창에서는 전역 변수가 아니며, 첫번재 창의 전역변수에 접근하기 위해 다른 방법을 사용해야한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Window 객체 계층구조&lt;/h3&gt;
&lt;p&gt;Window 객체를 루트(root)로 하는 자바스크립트 객체들의 계층 구조를 도식화하면 아래와 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 370px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24395B4057BBC8B01C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24395B4057BBC8B01C&quot; width=&quot;370&quot; height=&quot;169&quot; alt=&quot;window object&quot; filename=&quot;window_object.jpg&quot; filemime=&quot;image/jpeg&quot; original=&quot;yes&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display: block; max-width:100%; &quot;&gt;그림출처 -http://www.ktword.co.kr/abbr_view.php?m_temp1=2519&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Window 객체 프로퍼티&lt;/h3&gt;
&lt;p&gt;아래의 표는 &lt;a href=&quot;http://www.w3schools.com/jsref/obj_window.asp&quot;&gt;The Window Object&lt;/a&gt; 의 내용을 옮겼다.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered table-striped&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;프로퍼티&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;closed&lt;/td&gt;
&lt;td&gt;창이 종료되었는지 여부를 나타내는 부울(bollean) 값을 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;defaultStatus&lt;/td&gt;
&lt;td&gt;창의 상태표시줄의 텍스트를 반환하거나 설정한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;td&gt;창의 document 객체를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;frameElement&lt;/td&gt;
&lt;td&gt;현재 창에 삽입된 &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; 요소를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;frames&lt;/td&gt;
&lt;td&gt;현재 창에서 모든 &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; 요소를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;history&lt;/td&gt;
&lt;td&gt;창의 history 객체를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;innerHeight&lt;/td&gt;
&lt;td&gt;&lt;p&gt;창의 콘텐츠 영역(뷰포트)의 내부 높이를 반환한다.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;innerWidth&lt;/td&gt;
&lt;td&gt;창의 콘텐츠 영역(뷰포트)의 내부 너비를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;length&lt;/td&gt;
&lt;td&gt;현재 창의 &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; 요소의 갯수를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;localStorage&lt;/td&gt;
&lt;td&gt;데이터를 저장하는데 사용되는 로컬 스토리지 객체에 대한 참조를 반환한다. 저장된 데이터는 유효기간이 없다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;location&lt;/td&gt;
&lt;td&gt;창의 location 객체를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;name&lt;/td&gt;
&lt;td&gt;창의 이름을 반환하거나 설정한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;navigator&lt;/td&gt;
&lt;td&gt;창의 navigator 객체를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;opener&lt;/td&gt;
&lt;td&gt;창을 생성한 창에 대한 참조를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;outerHeight&lt;/td&gt;
&lt;td&gt;툴바 및 스크롤바를 포함하는 창의 외부 높이를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;outerWidth&lt;/td&gt;
&lt;td&gt;툴바 및 스크롤바를 포함하는 창의 외부 너비를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pageXOffset&lt;/td&gt;
&lt;td&gt;창의 상부 좌측 구석으로부터 현재의 문서가 스크롤(수평) 된 픽셀를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pageYOffset&lt;/td&gt;
&lt;td&gt;창의 상부 좌측 구석으로부터 현재의 문서가 스크롤(수직) 된 픽셀 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;parent&lt;/td&gt;
&lt;td&gt;현재 창의 부모 창을 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;screen&lt;/td&gt;
&lt;td&gt;&lt;p&gt;창의 screen&amp;nbsp;객체를 반환한다.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;screenLeft&lt;/td&gt;
&lt;td&gt;&lt;p&gt;데스크톱을 기준으로 창 화면의 X좌표를 반환한다.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;screenTop&lt;/td&gt;
&lt;td&gt;데스크톱을 기준으로 창 화면의 Y좌표를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;screenX&lt;/td&gt;
&lt;td&gt;데스크톱을 기준으로 창 화면의 X좌표를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;screenY&lt;/td&gt;
&lt;td&gt;데스크톱을 기준으로 창 화면의 Y좌표를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sessionStorage&lt;/td&gt;
&lt;td&gt;데이터를 저장하는데 사용되는 로컬 스토리지 객체에 대한 참조를 반환한다. 저장된 데이터는 하나의 세션이다(브라우저 탭이 닫힐때 손실).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;scrollX&lt;/td&gt;
&lt;td&gt;pageXOffset 의 별칭이다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;scrollY&lt;/td&gt;
&lt;td&gt;pageYOffset 의 별칭이다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;self&lt;/td&gt;
&lt;td&gt;현재 창을 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;status&lt;/td&gt;
&lt;td&gt;창의 상태표시줄의 텍스트를 반환하거나 설정한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;top&lt;/td&gt;
&lt;td&gt;최상위의 브라우저 창을 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt; 

&lt;div class=&quot;alert alert-warning&quot;&gt;
&lt;p&gt;&lt;b&gt;화면 좌표(screen coordinates)&lt;/b&gt;는 데스크톱 상에서 브라우저 창이 떠 있는 곳의 위치를 나타내며 데스크톱의 좌측 상단 모서리에서 상대적으로 계산된다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;창 좌표(window coordinates)&lt;/b&gt;는 웹 브라우저의 뷰포트(viewport, 화상표시영역)안의 위치를 나타내며, 뷰포트의 좌측 상단 모서리에서 상대적으로 계산된다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;문서 좌표(document coordinates)&lt;/b&gt;는 HTML 문서 안의 위치를 나타내며 문서의 좌측 상단 모서리에서 상대적으로 계산된다.&lt;/p&gt;
&lt;/div&gt;  

&lt;h3&gt;Window 객체 메서드&lt;/h3&gt;
&lt;p&gt;아래의 표는 &lt;a href=&quot;http://www.w3schools.com/jsref/obj_window.asp&quot;&gt;The Window Object&lt;/a&gt; 의 내용을 옮겼다.&lt;/p&gt;
&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered table-striped&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;메서드&lt;/th&gt;
&lt;th&gt;설명&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;alert()&lt;/td&gt;
&lt;td&gt;메세지와 확인 버튼을 대화상자를 표시한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;atob()&lt;/td&gt;
&lt;td&gt;base-64로 인코딩 된 문자열을 디코딩한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;blur()&lt;/td&gt;
&lt;td&gt;현재 창에서 포커스를 제거한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;btoa()&lt;/td&gt;
&lt;td&gt;base-64로 문자열을 인코딩한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;clearInterval()&lt;/td&gt;
&lt;td&gt;setInterval()로 설정한 타이머를 제거한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;clearTimeout()&lt;/td&gt;
&lt;td&gt;setTimeout()로 설정한 타이머를 제거한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;close()&lt;/td&gt;
&lt;td&gt;현재 창을 닫는다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;confirm()&lt;/td&gt;
&lt;td&gt;메세지 및 확인, 취소 버튼이 있는 대화상자를 표시한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;focus()&lt;/td&gt;
&lt;td&gt;현재 창을 포커스한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;getComputedStyle()&lt;/td&gt;
&lt;td&gt;현재 계산된 CSS 스타일 요소의 적용을 가져온다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;getSelection()&lt;/td&gt;
&lt;td&gt;사용자에 의해 선택된 텍스트의 범위를 나타내는 selection 객체를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;matchMedia()&lt;/td&gt;
&lt;td&gt;지정된 CSS 미디어쿼리 문자열을 나타내는 mediaQueryList 객체를 반환한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;moveBy()&lt;/td&gt;
&lt;td&gt;현재 위치에 창을 상대적으로 이동시킨다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;moveTo()&lt;/td&gt;
&lt;td&gt;지정된 위치에 창을 이동시킨다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;open()&lt;/td&gt;
&lt;td&gt;새로운 브라우저 창을 생성한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;print()&lt;/td&gt;
&lt;td&gt;현재 창의 내용을 인쇄한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;prompt()&lt;/td&gt;
&lt;td&gt;방문자의 입력을 기다리는 대화상자를 표시한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;resizeBy()&lt;/td&gt;
&lt;td&gt;지정된 픽셀만큼 창 크기를 조정한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;resizeTo()&lt;/td&gt;
&lt;td&gt;지정된 너비와 높이로 창 크기를 조정한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;scroll()&lt;/td&gt;
&lt;td&gt;이 메서드는 scrollTo() 메서드로 대체되었다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;scrollBy()&lt;/td&gt;
&lt;td&gt;지정된 픽셀의 수만큼 문서를 스크롤한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;scrollTo()&lt;/td&gt;
&lt;td&gt;지정된 좌표로 문서를 스크롤한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;setInterval()&lt;/td&gt;
&lt;td&gt;함수를 호출하거나 지정된 간격(밀리초)으로 표현식을 수행한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;setTimeout()&lt;/td&gt;
&lt;td&gt;함수를 호출하거나 지정된 밀리초의 수 이후에 표현식을 수행한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;stop()&lt;/td&gt;
&lt;td&gt;로딩중인 창을 중지한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt; 
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>BOM</category>
      <category>JavaScript</category>
      <category>window</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/517</guid>
      <comments>https://webdir.tistory.com/517#entry517comment</comments>
      <pubDate>Thu, 25 Aug 2016 11:41:27 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 구성요소</title>
      <link>https://webdir.tistory.com/516</link>
      <description>&lt;p&gt;자바스크립트는 아래와 같은 3가지 구성요소들로 이루어져 있다.&lt;/p&gt;

&lt;h3&gt;자바스크립트 BOM&lt;/h3&gt;
&lt;p&gt;자바스크립트 &lt;b&gt;BOM&lt;/b&gt;(Browser Object Model)은 브라우저와 관련된 객체로 구성되며, 브라우저를 프로그래밍적으로 제어할 수 있는 수단이 된다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Window&lt;/li&gt;
&lt;li&gt;Navigator&lt;/li&gt;
&lt;li&gt;Location&lt;/li&gt;
&lt;li&gt;History&lt;/li&gt;
&lt;li&gt;Document&lt;/li&gt;
&lt;li&gt;Screen&lt;/li&gt;  
&lt;/ul&gt;

&lt;p class=&quot;alert alert-info&quot;&gt;
&lt;b&gt;BOM&lt;/b&gt;은 전역객체인 Window 객체의 프로퍼티와 메소드들을 이용해 제어하기에 Window 객체의 사용법을 배우는 것과 같다.
&lt;/p&gt; 

&lt;h3&gt;자바스크립트 DOM&lt;/h3&gt;
&lt;p&gt;자바스크립트&lt;b&gt;DOM&lt;/b&gt;(Document Object Model)은 웹문서를 조작할때 지켜야할 규칙(인터페이스)을 브라우저 제조사의 자신들만의 기술로 기능을 구현한 것이다. 웹표준은 W3C DOM 인터페이스를 따르며, 구형 IE7,8의 경우는 지원하지 않는 부분이 존재한다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Element 제어부&lt;/li&gt;
&lt;li&gt;Style 제어부&lt;/li&gt;
&lt;li&gt;Attribute 제어부&lt;/li&gt;
&lt;li&gt;Event 제어부&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;alert alert-info&quot;&gt;
브라우저가 HTML 웹문서를 파싱한 후, 이를 문서에 작성된 노드와 1:1로 매칭되도록 DOM 객체를 변환한 후 화면에 출력한다. 비록 그 구조가 눈에 보이지 않지만 추상적으로 그 개념을 이해하고 접근하여 사용할 수 있게 된다.
&lt;/p&gt; 

&lt;h3&gt;자바스크립트 Core&lt;/h3&gt;
&lt;p&gt;자바스크립트의 기본 문법과 구조, 데이터 타입, 조건문, 반목문, 함수, 기본 라이브러리등이 포함된다. 우리가 새로운 프로그래밍을 배울때 익히는 기초적인 문법들이 이에 해당된다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>JavaScript</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/516</guid>
      <comments>https://webdir.tistory.com/516#entry516comment</comments>
      <pubDate>Wed, 6 Apr 2016 11:00:14 +0900</pubDate>
    </item>
    <item>
      <title>문서의 로드시점 - onload, DOMContentLoaded</title>
      <link>https://webdir.tistory.com/515</link>
      <description>&lt;p&gt;웹문서를 만드는 경우, 문서가 로드되었을때를 기점으로 문서를 초기화하고, 각종 설정을 부여하는 것은 빈번한 일입니다. 이 시점에 접근하기 위해 사용되는 이벤트들에 대하여 알아봅니다.&lt;/p&gt;

&lt;p class=&quot;alert alert-warning&quot;&gt;
일반적으로, 스크립트를 문서의 마지막(&amp;lt;/body&amp;gt;) 이전에 삽입하면 굳이 이벤트를 이용하여 프로그래밍을 처리할 필요가 없다. 다만, 문서의 &amp;lt;head&amp;gt; 영역에 스크립트가 삽입되거나 외부의 파일에 정의되어 있다면 이벤트를 연결하여 문서의 로드시점에 맞게 처리해야 한다.
&lt;/p&gt;  

&lt;h3&gt;onload&lt;/h3&gt;
&lt;p&gt;문서의 모든 콘텐츠(images, script, css, etc)가 로드된 후 발생하는 이벤트이다(load 이벤트라고들 한다).&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;window.onload = function() {
//실행될 코드
}
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;문서에 포함된 모든 콘텐츠가 로드된 후에 실행되기에 불필요한 로딩시간이 추가될 수 있다.&lt;/li&gt;
&lt;li&gt;동일한 문서에 오직 &lt;code&gt;onload&lt;/code&gt;는 하나만 존재해야 한다.
&lt;ul&gt;
&lt;li&gt;중복될 경우, 마지막 선언이 실행된다.&lt;/li&gt;
&lt;li&gt;외부 라이브러리에서 이미 선언된 경우 이를 찾아 하나로 합치는 과정이 필요하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;외부의 자원(iframe, image, script)을 사용하는 경우에도 해당된다.&lt;/li&gt; 
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; 요소에 속성(attribute)으로 지정될 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;&amp;lt;body onload=&quot;실행될 코드&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;위와 같이 사용된 경우, &lt;code&gt;window.onload&lt;/code&gt;로 지정된 것은 무시된다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;window 객체뿐만 아니라 원하는 객체(object)가 로드되었을때 실행될 코드를 설정할 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;document.getElementById(&quot;myFrame&quot;).onload = function() {
//실행될 코드
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;이벤트를 직접 연결할 수도 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript &quot;&gt;window.addEventListener('load', function(){
//실행될 코드
});
&lt;/code&gt;&lt;/pre&gt; 

&lt;h4&gt;jQuery load&lt;/h4&gt;
&lt;p&gt;jQuery에서는 onload와 같은 동작을 하는 load 메소드를 제공한다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt; $(window).load( function() {
//실행될 코드
})
&lt;/code&gt;&lt;/pre&gt; 

&lt;h3&gt;DOMContentLoaded&lt;/h3&gt;
&lt;p&gt;HTML과 script가 로드된 시점에 발생하는 이벤트이다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;window.addEventListener('DOMContentLoaded', function(){
//실행될 코드
})
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt;
&lt;li&gt;onload 이벤트보다 먼저 발생한다. 빠른 실행속도가 필요할때 적합하다.&lt;/li&gt;
&lt;li&gt;IE8 이하에서는 지원하지 않는다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;IE8 이하에 대체방안&lt;/h4&gt;
&lt;p&gt;비슷한 기능을 하는 jQuery의 ready 메소드를 순수 자바스크립트로 대체하는 방법을 탐구하다 발견한 방법이다.(&lt;a href=&quot;http://stackoverflow.com/questions/1795089/how-can-i-detect-dom-ready-and-add-a-class-without-jquery/1795167#1795167&quot; target=&quot;_blank&quot;&gt;링크&lt;/a&gt;) &lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;// Mozilla, Opera, Webkit 
if (document.addEventListener) {
	document.addEventListener(&quot;DOMContentLoaded&quot;, function () {
		document.removeEventListener(&quot;DOMContentLoaded&quot;, arguments.callee, false);
		domReady();
	}, false);
} 

// Internet Explorer
else if (document.attachEvent) {
	document.attachEvent(&quot;onreadystatechange&quot;, function () {
		if (document.readyState === &quot;complete&quot;) {
			document.detachEvent(&quot;onreadystatechange&quot;, arguments.callee);
			domReady();
		}
	});
}

//DOM이 모두 로드 되었을 때
function domReady () {
	//처리할 내용
}
&lt;/code&gt;&lt;/pre&gt; 

&lt;h4&gt;jQuery ready&lt;/h4&gt;
&lt;p&gt;자바스크립트의 DOM 트리가 준비되었을때의 시점을 컨트롤하는 메소드로 DOMContentLoaded의 jQuery 버전이라 생각하자.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;$(document).ready(function(){
//실행될 코드
});
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt;
&lt;li&gt;onload 이벤트보다 먼저 발생한다. 즉, 문서의 모든 자원이 다운로드되었을때 발생하는 onload와 달리 DOM 트리만 완성되면 바로 발생하므로 빠른 실행속도가 필요할때 적합하다.&lt;/li&gt;
&lt;li&gt;여러번 사용되면 선언 순서에 따라 순차적으로 실행된다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>JavaScript</category>
      <category>문서로드시점</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/515</guid>
      <comments>https://webdir.tistory.com/515#entry515comment</comments>
      <pubDate>Mon, 4 Apr 2016 11:00:10 +0900</pubDate>
    </item>
    <item>
      <title>스크립트 모듈화 - Require.js #1</title>
      <link>https://webdir.tistory.com/510</link>
      <description>&lt;p&gt;자바스크립트(JS)는 자체적으로 파일간의 모듈화를 지원하지 않기때문에 이를 유지 보수하는 일에서 전역변수를 오염시키고 서로간의 간섭을 신경써야 합니다. 모듈패턴을 이용하여 최소한의 간섭을 유지하고, 동적으로 스크립트를 로딩하여 필요한 것만 다운받게 만들며 최적화를 꾀할 수 있지만, 파일이 커지고 코드가 길어질 수록 이를 체계적으로 관리할 수 있는 도구가 절실해집니다. 이를 보완해주는 라이브러리중에 하나인 Require.js에 대하여 알아봅니다.&lt;/p&gt;

&lt;h3&gt;Require.js 소개&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Require.js&lt;/b&gt;는 &lt;b&gt;AMD&lt;/b&gt;(Asynchronous Module Definition - 비동기 모듈 정의)를 바탕으로 제작된 JS 모듈 로더(loader) 파일이다. 이는 JS 코드를 모듈화하고 모듈간의 의존성 문제를 해결하여  코드를 파악하기 쉽게 만들고 관리에 도움을 준다. 또한, &lt;b&gt;lazy-loading&lt;/b&gt;(동적로딩)을 통해서 스크립트 로딩을 최적화한다.&lt;/p&gt;

&lt;blockquote&gt;AMD는 브라우저의 비동기적인 상황에서 JS 모듈화의 표준을 구현하기 위해 조직된 그룹이다.&lt;/blockquote&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;HOME&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://requirejs.org/&quot; target=&quot;_blank&quot;&gt;REQUIRE.JS&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOC&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://requirejs.org/docs/api.html&quot; target=&quot;_blank&quot;&gt;API&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt; 

&lt;h4&gt;브라우저 지원&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;IE 6+&lt;/li&gt;
&lt;li&gt;Firefox 2+&lt;/li&gt;
&lt;li&gt;Safari 3.2+&lt;/li&gt;
&lt;li&gt;Chrome 3+&lt;/li&gt; 
&lt;li&gt;Opera 10+&lt;/li&gt; 
&lt;/ul&gt;


&lt;p&gt;아래의 특징들을 살펴본다면 이해에 도움이 될 것이다.&lt;/p&gt;

&lt;h4&gt;모듈을 파일로 세분화&lt;/h4&gt;
&lt;p&gt;기존에는 하나 혹은 몇개의 파일에 JS를 모듈패턴으로 구조화하여 최소한으로 전역에 노출하는 방식을 애용했다. 이를 유지보수하는 입장에서는 전역에 노출된 변수, 함수, 객체등을 유의해야 했고 새로운 무엇인가를 추가할때도 모듈패턴으로 구조화해야 했다.&lt;/p&gt;
&lt;p&gt;Require.js는 전역에 어떠한 것도 노출시키지 않는 구조를 기본으로 하며, 이를 지원하지 않는 다른 라이브러리들이나 파일들의 경우는 설정을 통해 전역에 노출할 수 있게 한다. 모듈을 전역에 노출시키지 않기 위해 모듈별로 하나의 파일로 구성하며, &lt;code&gt;return&lt;/code&gt;을 이용하여 모듈 외부에서 접근할 수 있도록 노출할 것을 지정할 수 있다.&lt;/p&gt;

&lt;h4&gt;의존성(종속성) 해결&lt;/h4&gt;
&lt;p&gt;JS 코드를 유지보수시에 또 하나의 걸림돌은 의존성을 파악하는 것이다. 코드 어느부분에서 다른 모듈이나 라이브러리에서 어떤 것을 가져다 쓰는지를 파악하는 것은 전체 구조를 이해해야 하는 작업이 될 수도 있는 까다로운 일이다. 또한 브라우저는 네트워크를 통해 접근하려는 파일의 다운로드가 필요하기 때문에 Requier.js는 모듈을 정의하거나 호출할때 이를 정해진 문법에 따라 초입에 종속성 코드를 작성하므로 한 눈에 관계를 파악할 수 있게 된다.&lt;/p&gt;

&lt;h4&gt;Lazy-loading(동적로딩)&lt;/h4&gt;
&lt;p&gt;필요한 경우에만 스크립트를 로딩하기 위한 기법으로 아래와 같이 동적로딩을 사용해왔다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function loadScript(url, callback) {  
    var scriptEl = document.createElement('script');
    scriptEl.type = 'text/javascript';
    // IE에서는 onreadystatechange를 사용
    scriptEl.onload = function () {
        callback();
    };
    scriptEl.src = url;
    document.getElementsByTagName('head')[0].appendChild(scriptEl);
}

loadScript('example.js', function () {  
    // example.js가 로딩 완료한 시점에 실행
});
&lt;/code&gt;&lt;/pre&gt; 

&lt;p&gt;Require.js는 모듈화로 구성되기 때문에 자동적으로 무엇인가 호출하면 필요한 모듈을 로드하고 모듈에서 필요한 종속성을 검사하고 다시 필요한 것을 로드한다. 이미 한번 로드된 것이라면 캐시를 활용하니 필요한 것만을 자동적으로 로드하는 동적로드가 구성된다.&lt;/p&gt;

&lt;h4&gt;충돌의 가능성을 제거&lt;/h4&gt;
&lt;p&gt;여러 라이브러리들을 이용하거나 같은 라이브러리의 다른 버전들이 사용되는 경우가 있다. 어떤 것들은 같은 전역변수를 이용하여(prototype과 jQuery처럼) 서로 충돌이 발생한다.&lt;/p&gt;
&lt;p&gt;Require.js를 이용해 각각의 버전들을 따로 모듈화할 수도 있고,  모듈에 주어진 ID로 호출하는 대신 다른 모듈 ID로 대체하여 사용할 수 있다.&lt;/p&gt;

&lt;h3&gt;Require.js 파일로딩&lt;/h3&gt;
&lt;p&gt;Require.js는 일반적인 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 태그를 사용한 스크립트 로딩 방식과 다른 접근방식을 취하고 있다. 이는 빠르게 실행되고 최적화되는 동시에, 주요 목표는 모듈형 코드가 되도록 하는 것이다. 그 일환으로, &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 태그의 URL 대신에 모듈 ID를 사용하는 것을 권장하고 있다.&lt;/p&gt;

&lt;p&gt;Require.js는 &lt;b&gt;baseUrl&lt;/b&gt;로 설정된 위치에 상대경로를 통해 모든 코드를 불러온다. baseUrl은 일반적으로  아래와 같이 &lt;code&gt;data-main&lt;/code&gt; 속성이 설정된 최상위 스크립트와 같은 경로를 가지게 되며, data-main 속성은 require.js가 스크립트 로딩을 시작하게 되는 위치를 지정하게 된다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!-- &quot;scripts&quot; 디렉토리에 baseUrl을 설정하고, 모듈 ID를 'main'으로 하는 스크립트를 불러온다 --&amp;gt;
&amp;lt;script data-main=&quot;scripts/main&quot; src=&quot;scripts/require.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;baseUrl은 RequireJS Config를 통해 직접 설정할 수도 있다. 만일 명시적인 Config 설정이 없고, data-main 속성도 사용되지 않았다면 baseUrl은 Require.js가 실행되는 HTML 페이지를 포함하는 디렉토리이다.&lt;/p&gt;

&lt;p&gt;설명이 복잡하지만 문서에 require.js 파일을 삽입하고, require.js가 처음으로 불러오는 스크립트 파일을 설정하며, baseUrl로 기본 디렉토리를 설정하는 것이다.&lt;/p&gt;

&lt;blockquote&gt;
Requier.js는 기본적으로 모든 의존적인 파일들을 스크립트 파일(js)이라고 가정한다. 그렇기때문에 &lt;code&gt;.js&lt;/code&gt;를 모듈 ID에 생략할 수 있으며, 자동적으로 해석될때 .js를 덧붙여준다. 
&lt;/blockquote&gt;


&lt;h3&gt;Require.js 모듈 정의와 사용&lt;/h3&gt;
&lt;p&gt;Requir.js의 모듈은 전역 네임스페이스를 오염시키지 않으며 스코프가 형성되어 있는 객체이다. 이것은 의존성 목록을 쉽게 확인 가능하며, 전역 객체를 참조할 필요없이 의존성을 조작할 수 있도록 해주며, 의존성에 해당하는 것을 함수의 인자로 넘겨준다. Require.js에서의 모듈은 모듈패턴의 확장이며, 다른 모듈을 참조하기 위해 전역 객체를 필요로 하지 않는 이점이 더해졌다.&lt;/p&gt;

&lt;p&gt;Require.js 문법을 통해 가능한한 빠르게 모듈을 로딩할 수 있으며, 순서가 정해져있지 않더라도 이를 정확한 의존성 순서로 정렬하며, 전역 변수들이 생성되지 않기 때문에 다양한 버전의 모듈을 한 페이지에 불러오는 것을 가능하게 한다. 파일당 오직 하나의 모듈만 정의되어야 하며, 모듈은 최적화 툴을 통해 묶음으로 그룹핑될 수 있다.&lt;/p&gt;

&lt;h4&gt;간단한 이름/값으로 이루어진 모듈 정의&lt;/h4&gt;
&lt;p&gt;모듈이 어떠한 의존성도 가지고 있지 않고, 이름/값으로 이루어져 있다면 객체 리터럴의 방식으로 정의할 수 있다.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;define({
    color: &quot;black&quot;,
    size: &quot;unisize&quot;
});
&lt;/code&gt;&lt;/pre&gt; 

&lt;h4&gt;함수 정의&lt;/h4&gt;
&lt;p&gt;모듈이 의존성은 가지지 않지만, 작업을 위해 함수가 필요하다면 &lt;code&gt;define()&lt;/code&gt; 내에 함수를 추가한다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt; define(function () {
    //Do setup work here

    return {
        color: &quot;black&quot;,
        size: &quot;unisize&quot;
    }
});
&lt;/code&gt;&lt;/pre&gt; 

&lt;h4&gt;의존성이 있는 함수 정의&lt;/h4&gt;
&lt;p&gt;모듈이 의존성을 포함하고 있다면 첫번째 인자로 의존성 이름을 배열로 나열하고, 두번째 인자는 함수 정의여야 한다. 함수는 모든 의존성이 불러들여졌을때 모듈에 대한 define을 호출하게 된다. 함수는 모듈을 정의한 객체를 반환해야 하며, 의존성은 정의된 함수에 함수 인자의 형태로 의존성 배열의 순서와 같은 순서로 들어가야 한다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript &quot;&gt;define([&quot;./cart&quot;, &quot;./inventory&quot;], function(cart, inventory) {
         return {
            color: &quot;blue&quot;,
            size: &quot;large&quot;,
            addToCart: function() {
                inventory.decrement(this);
                cart.add(this);
            }
        }
    }
);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;위의 예제에서는, 모듈이 /cart 와 /inventory에 의존성이 있는 구조이며, 함수 호출은 두개의 인자를 기술하고 있다. 이 두개의 의존성들이 모두 로드될때 까지 함수는 호출되지 않는다.&lt;/p&gt;

&lt;h4&gt;모듈을 이름으로 정의&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;define()&lt;/code&gt; 호출시에 첫번째 인자로 모듈의 이름을 명시할 수도 있다. &lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript &quot;&gt;define(&quot;foo/title&quot;,
    [&quot;my/cart&quot;, &quot;my/inventory&quot;],
    function(cart, inventory) {
        //Define foo/title object in here.
    }
);
&lt;/code&gt;&lt;/pre&gt; 

&lt;p&gt;이 형태는 일반적으로 optimizer tool에서 생성되는 형태이다. 모듈의 이름을 명시할 수 있지만, 이것은 모듈의 이동성을 제한하게 된다. 개발시에 파일의 위치이동은 빈번하게 발생하므로, 그때마다 이름을 변경해야하는 수고스러움이 뒤따르기 때문에 평소에는 모듈의 이름을 명시하는 것을 피하고, 최적화툴에 의해 자동으로 이름을 작성하도록 하는 것이 최선이다. optimizer tool에서는 브라우저의 로딩 속도를 높이기 위해, 하나 이상의 모듈이 하나의 파일로 합쳐질 수 있도록 이름을 더해주게 된다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>JavaScript</category>
      <category>module</category>
      <category>require.js</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/510</guid>
      <comments>https://webdir.tistory.com/510#entry510comment</comments>
      <pubDate>Fri, 1 Apr 2016 19:23:02 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 삽입방식과 위치</title>
      <link>https://webdir.tistory.com/514</link>
      <description>&lt;h3&gt;자바스크립트 삽입방식&lt;/h3&gt;
&lt;p&gt;자바스크립트를 실행하는 방법은 문서안에 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 태그를 이용해 작성하거나 외부의 스크립트 파일을 링크하는 것이다.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
//코드내용
&amp;lt;/script&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot; src=&quot;링크주소&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type=&quot;text/javascript&quot;&lt;/code&gt; 부분은 HTML5에서는 생략할 수 있다.&lt;/li&gt;
&lt;li&gt;문서의 어느 곳이든 스크립트 배치에 제한을 두지 않는다.&lt;/li&gt;
&lt;li&gt;전자의 경우는 간단한 스크립트의 경우이거나 해당 문서에만 적용되는 코드들, 초기화등에 자주 사용된다.&lt;/li&gt;
&lt;li&gt;후자의 경우는 반복사용되는 코드들을 파일별로 저장해두고 필요에 따라 링크해 사용되곤 한다. 이와 같은 방식이 코드의 가독성과 실행순서, 의존성들을 확인하기에 수월하기 때문에 추천되는 방식이다.&lt;/li&gt;  
&lt;/ul&gt;


&lt;h3&gt;자바스크립트 삽입 위치&lt;/h3&gt;
&lt;p&gt;브라우저는 HTML의 구조와 CSS 스타일을 렌더링하는 도중 자바스크립트를 만나게 되면 이에 대한 해석과 구현이 완료이 완료될때까지 브라우저 렌더링을 멈추게 된다.&lt;/p&gt;
&lt;p&gt;즉, 자바스크립트의 삽입 위치에 따라 스크립트 실행순서와 브라우저 렌더링에 영향을 미친다는 것이다.&lt;/p&gt;

&lt;h4&gt;head에 삽입되는 경우&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;head&amp;gt;
    &amp;lt;script&amp;gt;
    //코드내용
    &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;브라우저 렌더링에 방해가 되어 무거운 스크립트가 실행되는 경우 오랫동안 완성되지 못한 화면을 노출하게 된다.&lt;/li&gt;
&lt;li&gt;문서를 초기화하거나 설정하는 가벼운 스크립트들이 자주 사용된다.&lt;/li&gt;
&lt;li&gt;문서의 DOM(Document Object Model) 구조가 필요한 스크립트의 경우 &lt;code&gt;document.onload&lt;/code&gt;와 같은 로드 이벤트가 추가되어야 에러없이 작동된다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;&amp;lt;/body&amp;gt; 앞에 삽입되는 경우&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;.....
    &amp;lt;script&amp;gt;
    //코드내용
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;브라우저가 렌더링이 완료된 상태에서 스크립트가 실행되기에 콘텐츠를 변경하는 스크립트의 경우 화면에 노출된체로 변화된다.&lt;/li&gt;
&lt;li&gt;대부분의 스크립트의 위치로 추천되는 위치이다.&lt;/li&gt;
&lt;li&gt;문서의 DOM 구조가 완료된 시점에 실행되기에 별다른 추가설정이 필요없다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>JavaScript</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/514</guid>
      <comments>https://webdir.tistory.com/514#entry514comment</comments>
      <pubDate>Fri, 18 Mar 2016 11:30:06 +0900</pubDate>
    </item>
    <item>
      <title>ECMAScript 6 특징 정리 링크들</title>
      <link>https://webdir.tistory.com/513</link>
      <description>&lt;p&gt;2015년 6월에 공개된 새로운 자바스크립트(JS) 표준 &lt;b&gt;ECMAScript 6&lt;/b&gt;은 새로운 기능이 많이 추가되었으며, 2009년 이후의 첫번째 업데이트입니다. 아직 주요 브라우저들의 자바스크립트 엔진에서 이를 완벽히 지원하진 않지만 향상된 기능을 경험해볼 순 있습니다.&lt;/p&gt;

&lt;h3&gt;관련사항들 링크&lt;/h3&gt;
&lt;p&gt;ECMAScript 6 버전의 특징을 정리해둔 &lt;a href=&quot;https://github.com/lukehoban/es6features/&quot; target=&quot;_blank&quot;&gt;git.io/es6features&lt;/a&gt;를 한글로 번역해둔 &lt;a href=&quot;http://seokjun.kr/ecmascript-6-features/&quot; target=&quot;_blank&quot;&gt;ECMAScript 6 Features&lt;/a&gt; 링크를 통해 내용을 살펴보도록 하자.&lt;/p&gt;

&lt;p&gt;그 밖의 스펙의 명세나 호환성, 이를 지원하지 않는 브라우저에서 대체할 수 있는 폴리필들은 아래의 링크를 참고하자.&lt;/p&gt;
&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;SPEC&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://www.ecma-international.org/ecma-262/6.0/&quot; target=&quot;_blank&quot;&gt;Standard ECMA-262 6th Edition&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;INFO&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://kangax.github.io/compat-table/es6/&quot; target=&quot;_blank&quot;&gt;ECMAScript 6 호환성&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;POLYFILL&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://babeljs.io/&quot; target=&quot;_blank&quot;&gt;BABEL&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt; 

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>ECMAScript</category>
      <category>JavaScript</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/513</guid>
      <comments>https://webdir.tistory.com/513#entry513comment</comments>
      <pubDate>Tue, 15 Mar 2016 17:26:01 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 (ECMAScript) 버전</title>
      <link>https://webdir.tistory.com/512</link>
      <description>&lt;p&gt;그 동안 자바스크립트(JS)를 사용하면서도 현재 사용하는 브라우저가 몇 버전의 JS를 지원하는지, 새로이 어떠한 기능들이 추가되었는지도 깜깜히 지내왔습니다. jQuery에 너무 익숙해져 jQuery에서 지원하는 기능들에 발목이 메인 형상이지요. 저와 비슷한 분들이 있을꺼라 생각되어 관련정보를 취합해 보았습니다.&lt;/p&gt;

&lt;h3&gt;JavaScript와 ECMAScript, JScript&lt;/h3&gt;
&lt;p&gt;우리가 흔히 자바스크립트라고 부르는 언어는 &lt;b&gt;Ecma 인터내셔널&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_512_1&quot; id=&quot;footnote_link_512_1&quot; onmouseover=&quot;tistoryFootnote.show(this, 512, 1)&quot; onmouseout=&quot;tistoryFootnote.hide(512, 1)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;1&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/b&gt;이라 불리는 표준화 기구에서 제정한 &lt;b&gt;ECMA-262&lt;/b&gt; 스크립트이다.&lt;/p&gt;

&lt;p&gt;자바스크립트는 넷스케이프에서 제작하였고 이를 Ecma 표준으로 등록하는 과정에서 이미 등록되어 있는 JAVA와 유사한 명칭으로 인해 ECMA-262라는 이름을 가지게 되었으며 이를 표준화한 것이 &lt;b&gt;ECMAScript&lt;/b&gt;이다. 마이크로소프트에서도 자바스크립트와 유사한 &lt;b&gt;JScript&lt;/b&gt;를 제작하였고 이를 브라우저에 포함하였다.&lt;/p&gt;

&lt;p&gt;자바스크립트와 JScript는 ECMAScript와의 호환을 목표로하면서 ECMA 규격에 포함되지 않는 확장기능들을 제공하고 있다. 우리가 자바스크립트라고 부르는 언어가 가리키는 것은 통칭 ECMAScript의 표준안에 해당하는 부분이기때문에 각각의 브라우저에서 제공하는 자바스크립트 지원사항은 달라진다.&lt;/p&gt;

&lt;h3&gt;ECMA-262 버전&lt;/h3&gt;
&lt;p&gt;ECMA-262는 지금까지 여섯 개의 버전이 출시되었고, 현재 6 버전(2015년 6월)이 최신버전이다. 4 버전은 중도 포기되었는데 타언어와 비슷한 개념들을 도입하면서 복잡성이 크게 증가하였고 관련된 정치적 문제점이 있었기 때문이다.&lt;/p&gt;

&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered table-striped&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;버전&lt;/th&gt;
&lt;th&gt;출시일&lt;/th&gt;
&lt;th&gt;차이점&lt;/th&gt;
&lt;td&gt;브라우저지원&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1997년 6월&lt;/td&gt;
&lt;td&gt;초판&lt;/td&gt;
&lt;td&gt;넷스케이프 4.5, IE4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;1998년 6월&lt;/td&gt;
&lt;td&gt;ISO/IEC 16262 국제 표준과 완전히 동일한 규격을 적용하기 위한 변경.&lt;/td&gt;
&lt;td&gt;넷스케이프 4.5, IE4.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;1999년 12월&lt;/td&gt;
&lt;td&gt;강력한 정규 표현식, 향상된 문자열 처리, 새로운 제어문 , try/catch 예외 처리, 엄격한 오류 정의, 수치형 출력의 포매팅 등.&lt;/td&gt;
&lt;td&gt;넷스케이프 6.0 이후의 넷스케이프와 모질라의 모든 버전에 포함, IE5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;포기됨&lt;/td&gt;
&lt;td&gt;4 버전은 언어에 얽힌 정치적 차이로 인해 버려졌다. 이 판을 작업 가운데 일부는 5 버전을 이루는 기본이 되고 다른 일부는 ECMA스크립트의 기본을 이루고 있다.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;2009년 12월&lt;/td&gt;
&lt;td&gt;더 철저한 오류 검사를 제공하고 오류 경향이 있는 구조를 피하는 하부집합인 &quot;strict mode&quot;를 추가한다. 3 버전의 규격에 있던 수많은 애매한 부분을 명확히 한다.&lt;/td&gt;
&lt;td&gt;이후 부터는 ECMAScript 호환 테이블이 제공되니 이를 참고. &lt;a href=&quot;http://kangax.github.io/compat-table/es5/&quot;&gt;ECMAScript 5 호환성&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5.1&lt;/td&gt;
&lt;td&gt;2011년 6월&lt;/td&gt;
&lt;td&gt;ECMA스크립트 표준의 5.1 버전은 ISO/IEC 16262:2011 국제 표준 제3판과 함께 한다.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;2015년 6월&lt;/td&gt;
&lt;td&gt;6 버전에서는 클래스와 모듈 같은 복잡한 응용 프로그램을 작성하기 위한 새로운 문법이 추가되었다. 하지만 이러한 문법의 의미는 5 버전의 strict mode와 같은 방법으로 정의된다. 이 버전은 &quot;ECMAScript Harmony&quot; 혹은 &quot;ES6 Harmony&quot; 등으로 불리기도 한다.&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://kangax.github.io/compat-table/es6/&quot;&gt;ECMAScript 6 호환성&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;작업중&lt;/td&gt;
&lt;td&gt;6 버전에 이어서 새로운 언어 기능이 추가될 예정이다.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt; 

&lt;p class=&quot;alert alert-info&quot;&gt;
가장 범용적인 자바스크립트 버전은 1.5 버전이며, 이는 ECMAScript 3 버전에 해당하며, JScript 5.5 버전이 포함된 IE 5.5 및 기타 브라우저에서 모두 지원한다.&lt;br /&gt;&lt;br /&gt; IE9를 포함한 모던 브라우저들은 ECMAScript 5 까지는 무난히 적용가능하다.  
&lt;/p&gt; 

&lt;p&gt;현재에 이르러 배우게되는 자바스크립트는 대부분 ECMAScript 3 버전에 대한 공부이며, 최근에 출시된 ECMAScript 6 버전이 새로운 기능으로 무장되어 있어 이와 관련된 공부가 필요할 것이다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;
  &lt;ol class=&quot;footnotes&quot;&gt;
    &lt;li id=&quot;footnote_512_1&quot;&gt;Ecma 인터내셔널(Ecma International)은 정보와 통신 시스템을 위한 국제적이면서도 회원국 기반의 비영리 표준화 기구이다. 이 이름은 이 기구의 국제적 확장을 반영하여 1994년에 European Computer Manufacturers Association (ECMA)에서 바뀐 것이다. 그 결과 이 이름은 더 이상 두문자어가 아니며 더 이상 대문자만을 사용하지 않는다. 이 기구는 원래 1961년에 유럽에서 컴퓨터 시스템을 표준화하기 위해 세워졌다. 멤버십은 유럽에서 컴퓨터나 통신 시스템을 생산하고 시장화하고 개발하는 회사들에게 열려 있다. 이 기구는 제네바에 위치해 있다. 
출처: https://ko.wikipedia.org/wiki/Ecma_%EC%9D%B8%ED%84%B0%EB%82%B4%EC%85%94%EB%84%90 &lt;a href=&quot;#footnote_link_512_1&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>ECMA</category>
      <category>JavaScript</category>
      <category>JScript</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/512</guid>
      <comments>https://webdir.tistory.com/512#entry512comment</comments>
      <pubDate>Mon, 14 Mar 2016 11:00:16 +0900</pubDate>
    </item>
    <item>
      <title>다시 공부하는 자바스크립트</title>
      <link>https://webdir.tistory.com/509</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2130A94556BC529104&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2130A94556BC529104&quot; width=&quot;700&quot; height=&quot;357&quot; filename=&quot;restudy_js.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;처음 자바스크립트(JS)를 접했던 것은 2000년도 초반이였다. 지금과는 달리 JS에 대한 인식이 좋지 못했고,  관련 지식을 찾아보기가 어려웠던 시기였다. 타 프로그래밍 언어에 비해 느슨한 문법과 미지원되는 기능들이 비교대상이 되어 저수준의 언어로 치부되었고, 그런 인식에서 출발한 관련 서적들도 형편없었다라고 돌이켜 본다.&lt;/p&gt;

&lt;blockquote&gt;무엇보다도 웹표준이라는 개념이 없었던 시기라 브라우저마다 제각기 다른 지원사항들로 골머리를 앓다보면 자연스레 멀어질 수 밖에 없었다.&lt;/blockquote&gt;

&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;JS에 다시 관심을 가지게 만든 것은 &lt;b&gt;jQuery&lt;/b&gt;의 등장으로 DOM 조작의 편의성과 크로스브라우징의 부담감을 덜면서 였다. 게다가 구글의 &lt;b&gt;V8&lt;/b&gt;엔진이 탑재된 브라우저들의 등장으로 대폭적으로 개선된 환경을 접하면서 쏟아지는 jQuery 플러그인들과 각종 라이브러리들이 등장했다. 이후로 개발자들의 아이디어를 훔쳐보면서 마냥 부러워하던 시기가 최근까지 이어져왔다.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;jQuery를 이용하면서 DOM의 구조를 변경하거나 Ajax를 통한 처리, 이벤트 연결정도만을 코딩해왔고, 쓸만한 라이브러리로 주요 기능들을 메꾸는 낮은 수준의 활용에서만 겉돌고 있는게 현재 나의 상황이다. 지금까지 배운 것이라면, 그것이 무엇이든간에 웹에 존재하는 것이라면 비슷한 기능의 플러그인들에 코드 조각들을 붙여내어 아이디어를 흉내낼 수 있게 되었다는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;이것들이 반복되면서 이론적으로는 배워도 이해못하고 넘어가던 것들이 필요에 의해 반복되다보니 자연스레 원리를 파악하게 되었고 개발자들의 생각을 얼핏 엿 볼 수 있게 되었다. 아직도 기존 개발자들이 관례적으로 사용해오던 문법들에 대한 이해도와 축약된 표기방식들을 만나면 소스 해독의 난해함으로 나를 혼란케하지만, 머릿속에서 희미해져버린 JS의 기본 개념들을 다시 상기시켜야 할때가 왔다는 것을 부정할 순 없다.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;jQuery로 익힌 JS이지만 이제는 jQuery를 벗겨내어 순수한 JS로 돌아가야할 때인 것도 같다. 각종 애플리케이션이나 서버로 확장되고 있는 JS는 JS이지, jQuery가 아니다. jQuery를 다방면에서 사용하다보면 성능의 이슈를 무시할 수도 없고, 구 브라우저에 대한 지원을 포기하는 현재의 추세를 미루어볼때 크로스브라우징에 대한 문제도 자연스레 해결될 일이라 본다.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;그.래.서. 나는 자바스크립트를 다시 공부하기로 마음 먹었다.&lt;/p&gt;
&lt;p&gt;추상적이던 객체, 그리고 모듈화, promise 등에 대한 이해를 넓히고 이를 실전에 활용하면서 한 발 내딛고 싶어졌다. JS로 개발되고 있는 다양한 프론트 앤드 툴들도 활용해볼 작정이고, Node.js로 서버를 구축하고 각종 테스트를 진행하게 될 것이다. 올해는 그렇게 지나갈듯 싶다...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹코딩/Javascript</category>
      <category>JS</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/509</guid>
      <comments>https://webdir.tistory.com/509#entry509comment</comments>
      <pubDate>Tue, 1 Mar 2016 11:00:20 +0900</pubDate>
    </item>
    <item>
      <title>CSS 이벤트 제어(pointer-events ) 속성</title>
      <link>https://webdir.tistory.com/506</link>
      <description>&lt;p&gt;흔히 이벤트가 부여된 요소를 숨기면 해당 이벤트가 작동하지 않을꺼라 생각합니다. 대부분 의도한 결과를 반영하지만 숨김처리에 사용한 방법이 &lt;code&gt;opacity&lt;/code&gt; 속성을 이용한 경우라면 가시성은 없지만 해당 영역의 이벤트에 응답하게 됩니다. 이를 강제로 제어하기 위해서는 &lt;code&gt;pointer-events&lt;/code&gt; 속성을 활용해야 하며 관련하여 아래에서 추가적인 정보를 서술하였습니다.&lt;/p&gt;

&lt;h3&gt;숨김 처리 속성에 따른 특성&lt;/h3&gt;
&lt;p&gt;요소를 숨길때 사용하는 CSS 속성은 제각기 고유의 특성을 지니고 있다. 아래의 표를 참고하자.&lt;/p&gt;

&lt;div class=&quot;table-responsive&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;thead style=&quot;background: #f5f5f5&quot;&gt;
&lt;tr&gt;
&lt;th&gt;숨김 속성과 값&lt;/th&gt;
&lt;th&gt;공간점유&lt;/th&gt;
&lt;th&gt;이벤트&lt;/th&gt;
&lt;th&gt;탭(&lt;kbd&gt;Tab&lt;/kbd&gt;) 접근&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;opacity: 0&lt;/th&gt;
&lt;td&gt;점유&lt;/td&gt;
&lt;td&gt;활성&lt;/td&gt;
&lt;td&gt;가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;visibility: hidden&lt;/th&gt;
&lt;td&gt;점유&lt;/td&gt;
&lt;td&gt;비활성&lt;/td&gt;
&lt;td&gt;불가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;visibility: collapse&lt;/th&gt;
&lt;td&gt;테이블안에서만 비점유&lt;/td&gt;
&lt;td&gt;비활성&lt;/td&gt;
&lt;td&gt;불가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;display: none&lt;/th&gt;
&lt;td&gt;비점유&lt;/td&gt;
&lt;td&gt;비활성&lt;/td&gt;
&lt;td&gt;불가능&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;이벤트가 비활성되는 속성들을 사용하면 좋겠지만, 트랜지션(전환)이나 애니메이션 같이 프레임별로 진행되는 효과를 요소에 부여하여 숨김처리를 하는 경우, &lt;code&gt;opacity&lt;/code&gt; 이외에는 맞당한 방법이 없다. 설상가상으로 해당 요소가 고정된 위치를 부여받을 경우(ex. position: fixed) 해당 요소는 원치않는 이벤트를 발생시킬 위험도가 높아진다.&lt;/p&gt;

&lt;h3&gt;point-events 속성&lt;/h3&gt;
&lt;p&gt;위와 같이 어떤 경우에는 요소에 부여된 이벤트를 제거하거나 다시 활성화 시켜야하는 경우가 생길 수 있다. &lt;code&gt;pointer-events&lt;/code&gt; 는 HTML 요소들의 마우스/터치 이벤트들(CSS hover/active, JS click/tap, 커서 드래그등)의 응답을 조정할 수 있는 속성이다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.hidden {
    opacity: 0;
    pointer-events: none;
}
&lt;/code&gt;&lt;/pre&gt; 

&lt;p&gt;pointer-events 속성은 11개의 속성값을 가지지만 3개를 제외하고는 모두 SVG에서 사용하도록 예약되어 있다. 아래의 3개의 속성값은 HTML 요소들에서 사용 가능하다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;none&lt;/b&gt; : HTML 요소에 정의된 클릭, 상태(hover,active등), 커서 옵션들이 비활성화한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;auto&lt;/b&gt; : 비활성화된 이벤트를 다시 기본 기능을 하도록 되돌린다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;inherit&lt;/b&gt; : 부모 요소로부터 pointer-events 값을 상속받는다.&lt;/li&gt;
&lt;/ul&gt;

&lt;div style=&quot;position: relative; width: 100%; margin-bottom:15px; padding: 10px 10px 10px; background: #f5f5f5&quot;&gt;
&lt;p style=&quot;background: #eee&quot;&gt;나랏말싸미 듕귁에 달아 문자와로 서르 사맛디 아니할쎄 이런 전차로 어린 백셩이 니르고져 홇베이셔도 마참네 제 뜨들 시러펴디 몯핧 노미하니아 내 이랄 윙하야 어엿비너겨 새로 스믈 여듫 짜랄 맹가노니 사람마다 해여 수비니겨 날로 쑤메 뻔한킈 하고져 할따라미니라.&lt;/p&gt;
&lt;div style=&quot;disply:block; position: absolute; top:0; left: 15px; width: 150px; height: 50px;pointer-events: none; color: #fff; background:rgba(0,0,0,.6)&quot;&gt;이 요소를 통과해서 드래그 가능&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;alert alert-warning&quot;&gt;
IE9와 IE10에서 pointer-events가 작동하지 않기때문에 visibility: hidden 값과 함께 사용하는 것을 고려하도록 하자. 
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
 
&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://css-tricks.com/almanac/properties/p/pointer-events/&quot;&gt;pointer-events&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/272360/does-opacity0-have-exactly-the-same-effect-as-visibilityhidden&quot;&gt;Does opacity:0 have exactly the same effect as visibility:hidden&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>웹코딩/CSS</category>
      <category>css3</category>
      <category>property</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/506</guid>
      <comments>https://webdir.tistory.com/506#entry506comment</comments>
      <pubDate>Mon, 1 Feb 2016 11:00:08 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 가상 데스크톱</title>
      <link>https://webdir.tistory.com/508</link>
      <description>&lt;p&gt;윈도우 10의 새 기능중에 하나인 가상 데스크톱은 바탕화면을 동시에 여러개 사용할 수 있게 만든 기능입니다. 작업별로 화면을 전환하며 사용할 수 있어 여러 대의 모니터를 보유한 효과를 얻을 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px; width: 1000px; height: 497px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/225BDD3956A6B42F18&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F225BDD3956A6B42F18&quot; width=&quot;1000&quot; height=&quot;497&quot; filename=&quot;windows10_virtual_desktop.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 1000px; height: 497px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;가상 데스크톱 생성&lt;/h3&gt;
&lt;p&gt;작업표시줄에 아래와 같이 새로 생긴 작업보기 아이콘이 가상 데스크톱 화면을 불러온다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 201px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2125723456A6BFA007&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2125723456A6BFA007&quot; width=&quot;201&quot; height=&quot;40&quot; filename=&quot;windows10_virtual_desktop.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;현재 바탕화면에서 실행중인 프로그램들이 표기되며 하단에 데스크톱의 갯수와 새로운 가상 데스크톱을 생성할 수 있는 메뉴를 확인할 수 있다.&lt;/p&gt; 
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2604D23B56A6C3A303&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2604D23B56A6C3A303&quot; width=&quot;500&quot; height=&quot;249&quot; filename=&quot;windows10_virtual_desktop3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;


&lt;h3&gt;가상 데스크톱 이동&lt;/h3&gt;
&lt;p&gt;가상 데스크톱간의 이동은 가상 데스크톱 화면에서 원하는 데스크톱을 선택해서 이동할 수도 있고, 단축키 &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Window(&lt;i class=&quot;icon icon-windows&quot;&gt;&lt;/i&gt;)&lt;/kbd&gt; + &lt;kbd&gt;←, →&lt;/kbd&gt; 를 활용해 이동할 수도 있다.&lt;/p&gt;
&lt;p&gt;또한, 각각의 데스크톱에서 사용중인 프로그램을 다른 데스크톱으로 옮길 수도 있는데, 이는 해당 프로그램이 실행중인 가상 데스크톱 화면에서 이동시킬 프로그램을 원하는 데스크톱으로 드래그하여 이동시킬 수 있다. 마우스 우클릭을 이용해 메뉴를 통한 접근도 가능하다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 934px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24666A3E56A6C78425&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24666A3E56A6C78425&quot; width=&quot;934&quot; height=&quot;835&quot; filename=&quot;windows10_virtual_desktop4.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;가상 데스크톱 삭제&lt;/h3&gt;
&lt;p&gt;가상 데스크톱 화면에서 하단의 데스크톱들에 마우스를 올리면 삭제버튼이 나타난다. 삭제시에는 해당 가상 데스크탑 화면에 띄워져있던 작업 창들은 다른 가상 데스크탑 화면으로 옮겨지게 되니 작업을 잃는 불상사는 없다.&lt;/p&gt;

&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 294px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/240F733756A6CA6F1B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F240F733756A6CA6F1B&quot; width=&quot;294&quot; height=&quot;120&quot; filename=&quot;windows10_virtual_desktop5.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;가상 데스크톱 단축키&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;생성&lt;/b&gt; : &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Window(&lt;i class=&quot;icon icon-windows&quot;&gt;&lt;/i&gt;)&lt;/kbd&gt; + &lt;kbd&gt;D&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;삭제&lt;/b&gt; : &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Window(&lt;i class=&quot;icon icon-windows&quot;&gt;&lt;/i&gt;)&lt;/kbd&gt; + &lt;kbd&gt;F4&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이동&lt;/b&gt; : &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Window(&lt;i class=&quot;icon icon-windows&quot;&gt;&lt;/i&gt;)&lt;/kbd&gt; + &lt;kbd&gt;←, →&lt;/kbd&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보기&lt;/b&gt; : &lt;kbd&gt;Window(&lt;i class=&quot;icon icon-windows&quot;&gt;&lt;/i&gt;)&lt;/kbd&gt; + &lt;kbd&gt;Tab&lt;/kbd&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;alert alert-warning&quot;&gt;
&lt;h4&gt;단축키를 이용한 가상 데스크톱간의 이동이 불가능한 경우&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;원인&lt;/b&gt; : 일부, 노트북(랩탑) 제품군은 키보드 설계방식에 따라 동일한 행과 열에 2개 이상의 키가 눌렸을 경우, 눌리지 않는 키가 발생하는 경우가 있다. 이를 고스트키라고 부르며, 이와 같은 현상이 발생한 경우 조건을 발생시키는 마지막 키를 발생하지 않도록 하거나 동시에 눌렸을 경우 눌린 모든 키를 무시하도록 설계된 키보드들이 있다(ex. 삼성 nt910).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : 하드웨어 조합 설계다보니 마땅한 개선사항이 없을 수도 있다. 우선, 제조사에서 제공하는 드라이버가 있다면 설치해보자. 임시적으로 가상 데스크톱의 이동간에 &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Window(&lt;i class=&quot;icon icon-windows&quot;&gt;&lt;/i&gt;)&lt;/kbd&gt; + &lt;kbd&gt;←, →&lt;/kbd&gt; 단축키를 누르고 방향키는 유지하고 나머지 키들을 떼어보는 식으로 전환을 시도해보라.&lt;/p&gt;
&lt;/div&gt;

&lt;blockquote&gt;
모니터 3대를 사용하기에 가상 데스크톱 기능이 필요하겠냐 싶었는데 막상 사용해보니 매우 편리하다. 데스크톱 간의 이동 단축키를 마우스에서 제공하는 보조 키들에 부여해서 전환도 손가락 하나로 해결하니 매우 편리한 작업 공간을 가지게 되었다. 
&lt;/blockquote&gt;

&lt;h3&gt;이전 윈도우에서 가상 데스크톱&lt;/h3&gt;
&lt;p&gt;가상 데스크톱을 지원하지 않는 이전 윈도우들을 사용하더라도 비슷한 기능을 제공하는 프로그램들이 존재한다. 이 중에 DEXPOT은 개인 사용자에게 무료로 제공되는 제품군이니 사용해볼 것을 권한다.&lt;/p&gt;

&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;HOME&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://www.dexpot.de/index.php?id=dexpot&quot; target=&quot;_blank&quot;&gt;DEXPOT&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOWN&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;http://www.dexpot.de/index.php?id=download&quot; target=&quot;_blank&quot;&gt;DEXPOT DOWNLOAD&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt; 

&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 518px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2475FF3956A6AEA612&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2475FF3956A6AEA612&quot; width=&quot;518&quot; height=&quot;335&quot; filename=&quot;dexpot.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; 이 프로그램에 대한 자세한 소개와 사용방법은 &lt;a href=&quot;http://www.badayak.com/entry/Dexpot-Virtual-Desktop&quot; target=&quot;_blank&quot;&gt;가상 데스크톱 Dexpot 윈도우 많아져 복잡할 때 사용하는 멀티 데스크톱&lt;/a&gt;의 글을 참고하자.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>feature</category>
      <category>windows10</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/508</guid>
      <comments>https://webdir.tistory.com/508#entry508comment</comments>
      <pubDate>Tue, 26 Jan 2016 12:00:11 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 다이렉트X 12 (DirectX)</title>
      <link>https://webdir.tistory.com/507</link>
      <description>&lt;p&gt;윈도우10에는 새로운 다이렉트X(DX) 12가 탑재되었습니다. 지난 11버전 이후로 6년여만의 변화이며, 그동안 GPU(그래픽카드)의 발전을 감안한다면 은근히 기대감을 감출수 없는 부분입니다. 무엇보다도 게임을 좋아하는 분이라면 새로운 DX의 등장으로 개선될 성능의 향상과 낮아질 전력 소비량에 반가울 것입니다.&lt;/p&gt;

&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 430px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/264E5F4656A5A99F09&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F264E5F4656A5A99F09&quot; width=&quot;430&quot; height=&quot;450&quot; filename=&quot;download-directx-12.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;alert alert-tip&quot;&gt;다이렉트X는 게임 및 멀티미디어를 손실없이 최대한의 성능을 이끌어내기 위해 사용되는 라이브러리(API, 플랫폼)이다. 개발자들이 DX 라이브러리를 사용해 제품을 만들게 되며, 이로 제작된 것은 좋은 성능 평가를 받고있다.&lt;/p&gt;

&lt;h3&gt;다이렉트X 12 등장&lt;/h3&gt;
&lt;p&gt;과거 윈도우 7과 함께 DX11이 공개되었으며, 이후로 마이너한 업데이트가 계속적으로 이루어지고 있었다. 이후로 6년만의 새버전으로 DX12가 등장했다. 그간 GPU(그래픽카드)의 발전은 급성장하였으나 이의 처리를 담당할 DX의 API는 정체되어 있었다고 볼 수 있다.&lt;/p&gt;
&lt;p&gt;하드웨어가 자신의 최대 성능을 안정적으로 지원하기 위해서는 무엇보다 소프트웨어의 뒷받침이 필요한데 윈도우 10의 출시와 함께 그 격차를 줄일 소프트웨어가 등장한 것이다. 기존에 1년 단위로 새 버전을 내놓던 DX와는 달리 오랜만의 새 버전이라 이를 활용할 경우 성능향상이 비약적으로 발전한다는 테스트 보고가 뒤따르고 있다.&lt;/p&gt;
&lt;blockquote&gt;게임 및 기타 멀티미디어 소프트웨어를 만드는것은 개발기간이 1~2년이상이 걸리기에 정확한 성능 테스트 보고는 이를 정식으로 지원하는 소프트웨어들이 등장하면서 시작될 터이다.&lt;/blockquote&gt;

&lt;h3&gt;다이렉트X 12 성능개선&lt;/h3&gt;
&lt;p&gt;DX11이 등장했던 시기가 2009년도였기에, 멀티코어의 보급율이 낮은편이였으며, 이를 제대로 활용하기 위해 필요한 다중 코어를 제어하는 기술들이 부족하고 어려웠다. 이에 DX12는 다중 코어의 활용도를 높여 CPU의 부하를 개선하는데 중점을 두었으며, 이를 대폭 개선하는데 성공했다.&lt;/p&gt;
&lt;p&gt;기존의 DX가 멀티 코어 CPU 환경을 지원하였지만, 하나의 코어에 부하가 집중되었다면 DX12는 나머지 스레드에 분산 작업이 이루어져 전체 CPU 실행 시간이 절반 이하로 줄일 수 있게 된 것이다. DX12는 하드웨어에 직접 접근 가능해 불필요한 API 오버헤드를 줄여 멀티 코어 CPU를 이용해 처리되는 작업의 효율과 성능을 크게 향상시킨다.&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 660px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2364CF3A56A592C012&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2364CF3A56A592C012&quot; width=&quot;660&quot; height=&quot;605&quot; filename=&quot;k151239p1n8.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display: block; max-width:100%; &quot;&gt;출처: http://www.kbench.com/?q=node/151239&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;다이렉트X 12 멀티 GPU 사용&lt;/h3&gt;
&lt;p&gt;기존에도 크로스파이어 및 SLI 라고 불리는 기술로 여러개의 GPU을 장착하고 성능의 향상을 꾀하는 방법이 있었다. 다만, 기존 기술의 제약은 동일한 제조사의 동일한 제품들로 GPU를 준비해야 한다는 것이었다. DX12에서는 CPU 내장 그래픽 및 제조사나 성능에 상관없이 한데 묶어 그래픽처리를 할 수 있도록 멀티 GPU를 지원한다. 아직 만족할 만한 테스트 결과를 얻지 못하고 있지만 차후에는 향상된 기술임이 될 것에는 이견이 없다.&lt;/p&gt;

&lt;h3&gt;다이렉트X 12 지원 GPU&lt;/h3&gt;
&lt;p&gt;근래에 생산된 GPU 대부분이 이를 지원할 것이라고  GPU 제조사들은 말하지만, DX12의 모든 기능을 사용할 수 있을거라고는 생각하지 말자. 어느정도 성능향상은 이루어질 것이고 그것은 최신의 고성능 GPU일수록 그럴것이다.&lt;/p&gt;
&lt;h4&gt;INTEL 지원&lt;/h4&gt;
&lt;p&gt;인텔의 그래픽 내장 CPU에서는 인텔 &lt;b&gt;하스웰&lt;/b&gt;(Haswell - 4세대 코어)와 &lt;b&gt;브로드웰&lt;/b&gt;(Broadwell - 5세대 코어) 프로세서에서 지원한다.&lt;/p&gt;
&lt;h4&gt;NVIDIA 지원&lt;/h4&gt;
&lt;p&gt;DX11이 사용가능한 GPU를 탑재한 모든 제품에 DX12를 지원한다. &lt;b&gt;케플러&lt;/b&gt;(Kepler), &lt;b&gt;맥스웰&lt;/b&gt;(Maxwell) 아키텍처의 제품군인 지포스 600, 700, 900 시리즈 및 GTX 타이탄 시리즈가 이에 속하며, 그 밖의 &lt;b&gt;페르미&lt;/b&gt;(Fermi) 아키텍처의 제품군들도 지원예정이다. 페르미 아키텍처의 제품군은 &lt;a href=&quot;http://nvidia.custhelp.com/app/answers/detail/a_id/3711/~/which-nvidia-gpus-will-support-dx12%3F&quot; target=&quot;_blank&quot;&gt;Which NVIDIA GPUs will support DX12?&lt;/a&gt;에서 직접 확인하도록 하자.&lt;/p&gt;
&lt;h4&gt;AMD 지원&lt;/h4&gt;
&lt;p&gt;라데온 HD 70000, 80000 시리즈, 라데온 R7, R9 시리즈, AMD A4/A6/A8/A10-7000 APU(코드명 카베리), AMD A6/A8/A10 PRO-7000 APU(코드명 카베리), AMD E1/A4/A10 Micro-6000 APU(코드명 뮬린), AMD E1/E2/A4/A6/A8-6000 APU(코드명 비마)&lt;/p&gt;

&lt;h3&gt;다이렉트X 확인법&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;시작메뉴&lt;/b&gt; &amp;gt; &lt;b&gt;실행&lt;/b&gt; 혹은 &lt;b&gt;시작메뉴 우클릭&lt;/b&gt; &amp;gt; &lt;b&gt;실행&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;dxdiag를 입력한 다음 확인&lt;/li&gt;
&lt;li&gt;DirectX 진단도구 시스템 탭에서 버전 확인&lt;/li&gt; 
&lt;/ol&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 849px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2418A33656A5A6B40F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2418A33656A5A6B40F&quot; width=&quot;849&quot; height=&quot;610&quot; filename=&quot;dx12.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div class=&quot;link-refer&quot;&gt;
    &lt;h3&gt;참고문헌 및 관련링크.&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;http://www.kbench.com/?q=node/151239&quot;&gt;다이렉트X 12 게이밍 환경, 가장 잘 어울리는 프로세서는?&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://nvidia.custhelp.com/app/answers/detail/a_id/3711/~/which-nvidia-gpus-will-support-dx12%3F&quot;&gt;Which NVIDIA GPUs will support DX12?&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://www.amd.com/en-us/innovations/software-technologies/directx12&quot;&gt;DirectX® 12 Technology | AMD&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>DirectX</category>
      <category>windows10</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/507</guid>
      <comments>https://webdir.tistory.com/507#entry507comment</comments>
      <pubDate>Mon, 25 Jan 2016 13:48:43 +0900</pubDate>
    </item>
    <item>
      <title>인터넷 익스플로우 구버전 지원 종료(IE8,IE9,IE10)</title>
      <link>https://webdir.tistory.com/505</link>
      <description>&lt;p&gt;&lt;b&gt;MS&lt;/b&gt;(마이크로소프트)는 지난 1월 13일부로 &lt;b&gt;IE&lt;/b&gt;(인터넷 익스플로우) 구버전에 대한 정기 보안 업데이트를 지원 종료하였습니다. 이후 발생할 수 있는 보안 취약점에 대해 브라우저를 업데이트(IE11, Edge)하거나 크롬이나 파이어폭스같은 다른 브라우저 사용을&amp;nbsp;권고합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 970px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2657204F569762BA09&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2657204F569762BA09&quot; width=&quot;970&quot; height=&quot;546&quot; filename=&quot;IE_Logo_Trash-970x546.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display: block; max-width:100%; &quot;&gt;그림출처: http://www.komando.com/happening-now/300756/say-goodbye-to-internet-explorer/all&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;IE 지원 종료 브라우저를 사용하고 있다면?&lt;/h3&gt;
&lt;p&gt;지원 종료된 브라우저는 더 이상 보안 업데이트, 비보안 업데이트, 무료나 유료 지원 옵션 또는 온라인 기술 콘텐츠 업데이트에서 제외된다. 즉, 해당 브라우저들을 지속적으로 이용하다 보안 취약점을 이용한 해킹 및 자료유출등에 문제점이 발견되어도 MS사로 부터 어떠한 지원도 받을 수 없게 된다.&lt;/p&gt;
&lt;p&gt;요즘같이 랜섬웨어의 전파가 활발한 시기에 국내처럼 ActiveX로 무엇이 설치되는지도 가늠할 수 없고 관리하는 곳도 없는 환경에서는 최악의 시나리오를 떠올리기 쉽다. 사내 인트라넷의 경우, 구형 브라우저를 이용하는 경우가 적지 않은데 충분히 표적이 될 수 있는 부분이다.&lt;/p&gt;

&lt;h3&gt;IE 지원 종료 브라우저&lt;/h3&gt;
&lt;p&gt;2016년 1월 13일 02시(한국시간기준)부터 아래의 브라우저 버전은 정기 보안 업데이트를 지원 종료한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;인터넷 익스플로우 8&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;인터넷 익스플로우 9&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;인터넷 익스플로우 10&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;IE 브라우저 버전 확인방법&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;IE를 실행한다.&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;H&lt;/kbd&gt; 단축키로 브라우저 도움말 메뉴를 호출한다.&lt;/li&gt;
&lt;li&gt;Internet Explorer 정보를 선택한다.&lt;/li&gt; 
&lt;li&gt;Internet Explorer 버전을 확인한다.&lt;/li&gt; 
&lt;/ul&gt;

&lt;h3&gt;IE 브라우저 업데이트&lt;/h3&gt;
&lt;p&gt;사용하는 OS(운영체제)가 IE11을 지원한다면 자동 업데이트 실행으로 이를 설치할 수 있다(업데이트 가능 목록에 이를 표기해 준다).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;시작메뉴 &amp;gt; 모든 프로그램 &amp;gt; Windows Update 실행&lt;/li&gt;
&lt;li&gt;또는, &lt;a href=&quot;http://update.microsoft.com&quot; target=&quot;_blank&quot;&gt;MS 업데이트&lt;/a&gt;를 방문한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
아직도 국내에서는 구형 브라우저 사용률이 적지 않은 편이다. 일반적으로 구형 브라우저를 지칭함에 있어 IE8 이하버전을 거론하곤 했는데, MS에서 공식적으로 IE10 이하를 포함했다는 것에 놀라울뿐이다.&lt;br /&gt;&lt;br /&gt;
MS는 자동 업데이트 및 강제 업데이트를 통해 그 동안 구형 브라우저 퇴치에 힘써왔지만 사용자의 사정으로 인해 이를 업데이트하지 않는 경우가 적지 않았다. 웹개발과 관련된 분야에서는 그로 인해 꾸준히 욕을 먹고 있는 실정이며, 브라우저 점유율 또한 낮아지고 있다.&lt;br /&gt;&lt;br /&gt;
국내에서도 IE가 아닌 크롬, 파이어폭스가 대중적인 브라우저였다면 웹개발에 있어 이렇게 더딘 결과를 초래하진 않았을터이다.   
&lt;/blockquote&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>웹개발론/웹표준, 접근성</category>
      <category>브라우저</category>
      <category>웹표준</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/505</guid>
      <comments>https://webdir.tistory.com/505#entry505comment</comments>
      <pubDate>Thu, 14 Jan 2016 18:57:28 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 탐색기 설정</title>
      <link>https://webdir.tistory.com/504</link>
      <description>&lt;p&gt;윈도우10에서도 탐색기를 통한 폴더 및 파일 접근은 여전히 불편합니다. 새로 추가된 부분도 중복되는 요소들이 많아 기본 설정의 탐색기는 복잡해 보이기에 이를 재설정하는 방법을 소개합니다.&lt;/p&gt;

&lt;h3&gt;탐색기 확장&lt;/h3&gt;
&lt;p&gt;윈도우 탐색기를 크롬 브라우저와 유사한 북마크, 탭 기능을 추가하는 &lt;a href=&quot;http://webdir.tistory.com/389&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Clover&lt;/a&gt;가 윈도우 10에서도 여전히 작동한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 517px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/270E514656937C1F31&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F270E514656937C1F31&quot; width=&quot;517&quot; height=&quot;526&quot; filename=&quot;clover.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이를 통해 파일간 이동 및 복사를 여러개의 탐색기를 실행하고 찾아 해메는 수고를 덜 수 있으며, 자주 여닫는 폴더를 탭 고정할 수도 있다.&lt;/p&gt;

&lt;h3&gt;탐색기 바로가기&lt;/h3&gt;
&lt;p&gt;윈도우 탐색기를 실행하면 보여지는 첫 화면이 &lt;b&gt;바로가기&lt;/b&gt; 페이지로 설정되어 있다. 또한, 고정된 바로가기 이외에도 최근에 사용된 파일 및 폴더가 표시되어 좌,우측 패널 모두에 표시된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 682px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2142443B5693ADC421&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2142443B5693ADC421&quot; width=&quot;682&quot; height=&quot;319&quot; filename=&quot;Windows10_explorer.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이것을 변경하려면 탐색기 상단의 &lt;b&gt;&lt;i&gt;파일&lt;/i&gt;&lt;/b&gt; &amp;gt; &lt;b&gt;&lt;i&gt;폴더 및 검색 옵션 변경&lt;/i&gt;&lt;/b&gt; 을 통해 &lt;b&gt;폴더옵션&lt;/b&gt;에 접근해야 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 436px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2613D23B5693AEF91E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2613D23B5693AEF91E&quot; width=&quot;436&quot; height=&quot;537&quot; filename=&quot;Windows10_explorer2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;일반탭의 &lt;b&gt;파일 탐색기 열기&lt;/b&gt;의 드롭다운 메뉴를 통해 탐색기의 첫 화면을 &lt;b&gt;내 PC&lt;/b&gt;로 변경가능하다(아마 대부분 이 설정에 익숙할듯).&lt;/li&gt;
&lt;li&gt;일반탭의 &lt;b&gt;개인 정보 보호&lt;/b&gt;의 최근 사용 파일 및 폴더 표시를 체크해제하여 바로가기에 고정되지 않은 파일 및 폴더가 표시되는 것을 방지할 수 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;탐색기 라이브러리&lt;/h3&gt;
&lt;p&gt;라이브러리 기능을 잘 활용하면 여러 곳에 흩어진 자료를 한데 모아 볼 수 있고 손쉽게 접근이 가능해진다. 다만, 대부분의 사람들은 하나의 사진 폴더와 하나의 음악 폴더에 자료를 보관하기에 탐색기의 자리만 차지하는 애물단지 취급을 받곤한다.  윈도우 10에서는 이 라이브러리를 아래와 같이 숨길 수 있는 기능을 추가했다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 442px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2404083D5693C97E2F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2404083D5693C97E2F&quot; width=&quot;442&quot; height=&quot;304&quot; filename=&quot;Windows10_explorer3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;탐색기 상단의 &lt;b&gt;&lt;i&gt;파일&lt;/i&gt;&lt;/b&gt; &amp;gt; &lt;b&gt;&lt;i&gt;폴더 및 검색 옵션 변경&lt;/i&gt;&lt;/b&gt; 을 통해 &lt;b&gt;폴더옵션&lt;/b&gt;에 접근한다.&lt;/li&gt;
&lt;li&gt;보기탭의 &lt;b&gt;고급 설정&lt;/b&gt;의 탐색 창 영역의 &lt;b&gt;라이브러리 표시&lt;/b&gt; 여부에 대한 체크박스를 해제하면 라이브러리가 표시되지 않는다.&lt;/li&gt;
&lt;li&gt;보기탭의 &lt;b&gt;고급 설정&lt;/b&gt;의 탐색 창 여역의 &lt;b&gt;모든 폴더 표시&lt;/b&gt;를 활성화하면 반대로 모든 것들을 표기하게 된다.&lt;/li&gt; 
&lt;/ul&gt;

&lt;h3&gt;탐색기 디스크&lt;/h3&gt;
&lt;p&gt;SATA 설정을 &lt;b&gt;AHCI&lt;/b&gt;로 사용한다면 아래처럼 시스템에 연결된 모든 디스크가 외장형 디스크연결처럼 보이곤 한다. 메인보드 제조사나 Intel에서 제공하는 Intel® Rapid Storage 드라이버를 설치한다면 정상적으로 돌아오기도 하나 그냥 사용해도 무방하다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 363px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/275946355693F03F1A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F275946355693F03F1A&quot; width=&quot;363&quot; height=&quot;349&quot; filename=&quot;Windows10_explorer4.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;윈도우 10에서는 운영체제가 설치된 디스크를 제외한 나머지 디스크를 따로 표기해주어 접근성을 높이고자 했는데, 주로 &lt;b&gt;내 PC&lt;/b&gt;로 접근하는 경우에는 중복표기되는 귀찮은 존재일뿐이다(설정메뉴없음).&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 221px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/255B75355693F0411A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F255B75355693F0411A&quot; width=&quot;221&quot; height=&quot;311&quot; filename=&quot;Windows10_explorer5.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;핫 스왑/핫 플러그인&lt;/h4&gt;
&lt;p&gt;사실 디스크가 위와 같이 보이는 이유중에 하나가 핫 스왑/핫 플러그인과 연관되어 있다. 핫스왑이 가능한 SATA 포트에 대해서 저런식으로 표기를 해주기 때문이다. BIOS/UEFI 설정에서 (ex. Advanced\Storage Configuration) 각각의 SATA 포트에 대한 핫스왑 지원여부를 설정할 수 있는 메인보드들은 이를 &lt;b&gt;Disabled&lt;/b&gt;로 변경하면 정상적으로 보여진다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 241px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/245329355693F0411B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F245329355693F0411B&quot; width=&quot;241&quot; height=&quot;364&quot; filename=&quot;Windows10_explorer6.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;USB를 연결해보면 외장형 디스크이기에 따로 디스크가 표기된다.&lt;/p&gt; 
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 240px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/215101355693F0431B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F215101355693F0431B&quot; width=&quot;240&quot; height=&quot;302&quot; filename=&quot;Windows10_explorer7.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;레지스트 수정&lt;/h4&gt;
&lt;p&gt;메인보드 제조사에서 Rapid Storage 드라이버를 제공하지 않거나, Intel 드라이버가 정상작동하지 않는 경우, 또는 BIOS/UEFI에서 핫스왑 설정을 지원하지 않는다면 직접 레지스트리를 수정할 수도 있다.&lt;/p&gt;
&lt;blockquote&gt;
개인적으로는 레지스트리 수정을 추천하지 않는다.
&lt;/blockquote&gt; 
&lt;p&gt;&lt;a href=&quot;http://winaero.com/blog/how-to-delete-removable-drives-from-the-navigation-pane-in-windows-10/&quot; target=&quot;_blank&quot;&gt;How to hide removable drives from the Navigation Pane in Windows 10&lt;/a&gt;에서 소개된 내용이다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;시작메뉴 우클릭 &amp;gt; 실행선택 &amp;gt; regedit 입력으로 레지스트리 편집기을 연다.&lt;/li&gt;
&lt;li&gt;시스템 운영체제에 따라 주어진 위치를 찾아간다.
&lt;ul&gt;
&lt;li&gt;32bit : 
&lt;pre&gt;&lt;code class=&quot;language-json &quot;&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/li&gt;
&lt;li&gt;64bit : 
&lt;pre&gt;&lt;code class=&quot;language-json &quot;&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders
&lt;/code&gt;&lt;/pre&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;찾은 서브키&lt;b&gt;{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}&lt;/b&gt; 앞에 '-'(하이픈)을 추가해 &lt;b&gt;-{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}&lt;/b&gt; 로 변경한다.
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 600px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/240860435693FA0D2C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F240860435693FA0D2C&quot; width=&quot;600&quot; height=&quot;362&quot; filename=&quot;Windows10_explorer8.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;변경 내용을 적용하기 위해 모든 탐색기 창을 닫는다.&lt;/li&gt;  
&lt;/ol&gt;

&lt;div class=&quot;alert alert-tip&quot;&gt;
이를 다시 복원하려면 서브키의 '-'을 제거하면 된다.
&lt;/div&gt;

&lt;h3&gt;OneDrive&lt;/h3&gt;
&lt;p&gt;탐색기의 OneDrive 또한 제거 할 수 있으며, 관련해서 &lt;a href=&quot;https://support.office.com/ko-kr/article/OneDrive-%ED%95%B4%EC%A0%9C-%EB%98%90%EB%8A%94-%EC%A0%9C%EA%B1%B0-f32a17ce-3336-40fe-9c38-6efb09f944b0?ui=ko-KR&amp;rs=ko-KR&amp;ad=KR&quot; target=&quot;_blank&quot;&gt;OneDrive 해제 또는 제거&lt;/a&gt;라는 공식 문서가 제공되니 이를 참조하도록 하자.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>windows10</category>
      <category>Windows10 설정</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/504</guid>
      <comments>https://webdir.tistory.com/504#entry504comment</comments>
      <pubDate>Wed, 13 Jan 2016 11:00:12 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 바로가기 및 브라우저 설정</title>
      <link>https://webdir.tistory.com/503</link>
      <description>&lt;p&gt;윈도우 10 설치 후에 도움이 될만한 기본 설정을 모았습니다. 설정 부분까지 도달하는데는 복잡한 메뉴나열보다는 검색을 이용하도록 합시다.&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 411px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/271C8945569287BB35&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F271C8945569287BB35&quot; width=&quot;411&quot; height=&quot;398&quot; filename=&quot;Windows10_config.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;바탕화면에 아이콘 추가&lt;/h3&gt;
&lt;p&gt;바탕화면에 기본 아이콘(컴퓨터, 휴지통, 문서, 제어판, IE11)이 없을 경우, 이를 접근하기 쉽게 바탕화면에 아이콘을 추가해보자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/224615415692E6730E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F224615415692E6730E&quot; width=&quot;800&quot; height=&quot;553&quot; filename=&quot;Windows10_config_shortcut.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;kbd&gt;바탕&lt;/kbd&gt; 으로 검색하여 &lt;b&gt;바탕 화면의 일반 아이콘 표시/숨기기&lt;/b&gt; 선택
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 338px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/275B643456928B9306&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F275B643456928B9306&quot; width=&quot;338&quot; height=&quot;66&quot; filename=&quot;Windows10_config2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;원하는 아이콘을 선택하고 적용
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 402px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2624923D56928AFB1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2624923D56928AFB1C&quot; width=&quot;402&quot; height=&quot;552&quot; filename=&quot;Windows10_config3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;kbd&gt;internet&lt;/kbd&gt; 으로 검색, 검색 결과중 &lt;b&gt;Internet Explorer&lt;/b&gt; 에 마우스 우클릭한 후 &lt;b&gt;파일위치 열기&lt;/b&gt; 선택
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 337px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2444F54056928FA538&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2444F54056928FA538&quot; width=&quot;337&quot; height=&quot;215&quot; filename=&quot;Windows10_config_searchie11.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;이동된 위치에서 Internet Explorer 의 바로가기를 바탕화면에 복사&lt;/li&gt; 
&lt;li&gt;기타 자주 사용하는 프로그램들을 검색하여 실행파일을 바로가기로 만들어 바탕화면에 복사&lt;/li&gt;
&lt;/ol&gt;


&lt;div class=&quot;alert alert-tip&quot;&gt;
윈도우 8이상 부터는 시작메뉴에 우클릭으로 등장하는 메뉴가 존재한다. 몇개의 자주 사용되는 메뉴들이 제공되며, 바탕화면을 좀 더 깔끔히 유지하고 접근에 용이할 것이다.   
&lt;/div&gt;

&lt;h3&gt;브라우저 설정&lt;/h3&gt;
&lt;p&gt;윈도우 10부터는 기본으로 제공되는 브라우저가 &lt;b&gt;Edge&lt;/b&gt;로 변경되었으며, ActiveX 및 NPAPI를 사용하는 국내의 사이트와는 궁합이 좋지 않은 관계로 아래와 같은 화면을 자주 접하게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 721px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/251636445692F3C016&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F251636445692F3C016&quot; width=&quot;721&quot; height=&quot;401&quot; filename=&quot;Windows10_config_browser.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Microsoft Edge에서 계속하기&lt;/b&gt;를 선택하면 대부분 정상적으로 접속되나 이 메세지가 뜨는 것이 달갑지 않다면 주소창에 &lt;code&gt;about:flags&lt;/code&gt; 를 입력 후 개발자 설정의 &lt;b&gt;Microsoft 호환성 목록 사용&lt;/b&gt;을 체크해제하면 메세지가 뜨지 않는다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 643px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/253F90355692FC952B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F253F90355692FC952B&quot; width=&quot;643&quot; height=&quot;334&quot; filename=&quot;Windows10_config_browser2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;시작 페이지 변경&lt;/h4&gt;
&lt;p&gt;Edge 브라우저는 기본 화면이 뉴스 화면으로 나오는데 설정메뉴를 통해 이를 변경할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 791px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/252E3844569306602B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F252E3844569306602B&quot; width=&quot;791&quot; height=&quot;662&quot; filename=&quot;Windows10_config_browser5.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;다른 프로그램으로 열기&lt;/b&gt;의 &lt;b&gt;특정 페이지&lt;/b&gt;의 드롭다운 메뉴의 &lt;b&gt;사용자 지정&lt;/b&gt;를 선택한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 356px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2450F33E5693084707&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2450F33E5693084707&quot; width=&quot;356&quot; height=&quot;460&quot; filename=&quot;Windows10_config_browser6.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;웹 주소 입력란에 원하는 주소를 입력하면(ex. www.naver.com) 해당 페이지가 브라우저가 실행될 때 열리며 갯수를 추가하거나 삭제할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 344px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2513EE3E5693098008&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2513EE3E5693098008&quot; width=&quot;344&quot; height=&quot;196&quot; filename=&quot;Windows10_config_browser7.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;기본 검색엔진 변경&lt;/h4&gt;
&lt;p&gt;Edge 브라우저는 기본 검색이 빙(Bing)을 이용해 검색한다. 이를 변경해보자.&lt;/p&gt;
&lt;p&gt;검색엔진을 제공하는 사이트로 이동(ex. google.co.kr)한 후에 설정메뉴를 통해 &lt;b&gt;고급 설정 보기&lt;/b&gt;를 선택한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 347px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/226FE84656930FC70C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F226FE84656930FC70C&quot; width=&quot;347&quot; height=&quot;355&quot; filename=&quot;Windows10_config_browser8.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;주소 표시줄에서의 검색에 사용&lt;/b&gt;에서 변경을 선택한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 351px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/235A303A5693105025&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F235A303A5693105025&quot; width=&quot;351&quot; height=&quot;271&quot; filename=&quot;Windows10_config_browser9.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;검색된 검색엔진을 선택하고 &lt;b&gt;기본값으로 설정&lt;/b&gt;한다. 이 후 주소창을 이용한 검색시 해당 검색엔진을 이용하게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 359px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27743C3A5693115835&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27743C3A5693115835&quot; width=&quot;359&quot; height=&quot;441&quot; filename=&quot;Windows10_config_browser10.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;기본 브라우저 변경&lt;/h4&gt;
&lt;p&gt;Edge 이외의 IE11 이나 기타 브라우저를 기본 브라우저로 설정해보자.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;kbd&gt;기본 앱&lt;/kbd&gt; 으로 검색하여 &lt;b&gt;기본 앱 설정&lt;/b&gt; 선택
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 342px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/223B1D375692FF9036&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F223B1D375692FF9036&quot; width=&quot;342&quot; height=&quot;63&quot; filename=&quot;Windows10_config_browser3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;웹 브라우저를 선택하여 원하는 브라우저를 기본 브라우저로 선택
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 727px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26563242569304DE2D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26563242569304DE2D&quot; width=&quot;727&quot; height=&quot;580&quot; filename=&quot;Windows10_config_browser4.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>windows10</category>
      <category>Windows10 설정</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/503</guid>
      <comments>https://webdir.tistory.com/503#entry503comment</comments>
      <pubDate>Tue, 12 Jan 2016 11:00:18 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 다운그레이드(이전 윈도우로 돌아가기)</title>
      <link>https://webdir.tistory.com/502</link>
      <description>&lt;p&gt;윈도우 10을 사용하다가 하드웨어 및 프로그램의 호환성 문제, 혹은 특정한 부분이 마음에 들지 않아 다시 이전의 윈도우로 돌아가고 싶을 경우가 있습니다. 이와 관련된 내용을 서술합니다.&lt;/p&gt;

&lt;h3&gt;다운그레이드 조건&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;윈도우를 업그레이드 한 사용자는 28일이내에는 다운그레이드가 가능하다. 즉, 클린 설치를 통해 윈도우를 사용하는 사용자의 경우와 업그레이드 후 28일이 지난 사용자는 다운그레이드 할 수 없다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;i&gt;c:\&lt;/i&gt;&lt;/b&gt; 에 &lt;b&gt;Windows.old&lt;/b&gt; 및 &lt;b&gt;Windows.~BT&lt;/b&gt; 폴더의 모든 항목을 유지해야 한다. 이를 제거하였거나 디스크정리를 통해서 기존 Windows 정보가 제거된 경우에는 다운그레이드 할 수 없다.&lt;/li&gt;
&lt;li&gt;업그레이드 후 추가한 모든 사용자 계정을 제거해야 한다.&lt;/li&gt; 
&lt;li&gt;윈도우 7 또는 윈도우 8.1에 로그인하는데 사용한 암호를 알고 있어야 한다(암호를 사용한 경우).&lt;/li&gt; 
&lt;/ul&gt;

&lt;div class=&quot;alert alert-tip&quot;&gt;윈도우 8.1로 되돌린 경우 메일 및 피플과 같이 윈도우와 함께 제공된 일부 앱은 더 이상 작동하지 않을 수 있다. 이 문제를 해결하려면 스토어에서 해당 앱을 다시 설치해야 한다.&lt;/div&gt;

&lt;h3&gt;다운그레이드 방법&lt;/h3&gt;
&lt;p&gt;시작메뉴의 &lt;b&gt;&lt;i&gt;설정&lt;/i&gt;&lt;/b&gt; &amp;gt; &lt;b&gt;&lt;i&gt;업데이트 및 복구&lt;/i&gt;&lt;/b&gt; &amp;gt; &lt;b&gt;&lt;i&gt;복구&lt;/i&gt;&lt;/b&gt; 의 &lt;b&gt;Windows *로 돌아가기&lt;/b&gt;를 통해 이전 버전의 윈도우로 되돌릴 수 있다. 이 옵션을 사용하면 개인 파일은 유지되지만, 업그레이드 후에 설치한 앱 및 드라이버와 설정에 대해 변경한 모든 내용이 제거된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 827px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2326A73E5691454714&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2326A73E5691454714&quot; width=&quot;827&quot; height=&quot;666&quot; filename=&quot;windows10_downgrade.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;몇가지 주의 메세지를 띄우고 계속 진행하면 재부팅이 되면서 &lt;b&gt;이전 버전의 Windows 복원 중...&lt;/b&gt; 이라는 메세지를 접하게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 670px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/220F8938569149B51E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F220F8938569149B51E&quot; width=&quot;670&quot; height=&quot;337&quot; filename=&quot;windows10_downgrade2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;다운그레이드가 완료되면 이전에 사용하던 파일과 인증에 문제가 없는지 살펴보도록 하자.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>downgrade</category>
      <category>windows10</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/502</guid>
      <comments>https://webdir.tistory.com/502#entry502comment</comments>
      <pubDate>Mon, 11 Jan 2016 11:00:11 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 업그레이드 및 설치 오류 해결방안</title>
      <link>https://webdir.tistory.com/501</link>
      <description>&lt;p&gt;윈도우 10의 업그레이드가 모종의 이유로 실패한다면 눈 앞이 캄캄해집니다. 이전 자료에 대한 걱정부터 이전 윈도우를 그냥 쓸껄하는 자책까지... 마이크로소프트에 대한 원망은 뒤로하고도 말이죠. 관련해서 오류해결책에 대한 정보를 모아보았습니다.&lt;/p&gt;

&lt;h3&gt;오류코드 확인하기&lt;/h3&gt;
&lt;p&gt;윈도우는 오류 발생시 오류코드를 알려준다. 아래는 필자가 윈도우 10 업그레이드 실패를 경험하면서 발생한 오류 코드에 대한 예시이다.&lt;/p&gt;
&lt;p&gt;업그레이드중 아래와 같이 이전 윈도우로 복구가 되어버렸다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 670px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/263D2E4356914DC11E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F263D2E4356914DC11E&quot; width=&quot;670&quot; height=&quot;337&quot; filename=&quot;windows10_downgrade2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;오류코드 &lt;b&gt;800706FB&lt;/b&gt;를 알리나 이에 대한 검색결과는 존재하지 않았다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 856px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/227917385690F7E41C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F227917385690F7E41C&quot; width=&quot;856&quot; height=&quot;365&quot; filename=&quot;windows_upgrade_error2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;blockquote&gt;
필자는 HDD 공간을 약 30Gb이상으로 여유공간을 만들고 다시 업그레이드를 진행하였더니 오류없이 윈도우 10 업그레이드에 성공하였다. 윈도우 10에서 요구하는 공간은 3Gb 정도의 여유공간인데 업그레이드를 성공하고 난후 &lt;b&gt;Windows.old&lt;/b&gt; 파일을 살펴보니 무려 20Gb의 공간을 차지하고 있었다. 실제로 필요한 여유 공간은 Windows.old 가 생성될 크기를 예상해야 되는 것이 아닐까? 
&lt;/blockquote&gt;

&lt;h3&gt;오류해결 방안&lt;/h3&gt;
&lt;p&gt;일반적으로, &lt;a href=&quot;http://windows.microsoft.com/ko-kr/windows-10/upgrade-install-errors-windows-10&quot; target=&quot;_blank&quot;&gt;Windows 10 업그레이드 및 설치 오류에 대한 도움말&lt;/a&gt;을 제공하고 있지만 오류라는게 그 범위내에서만 일어나진 않는다. 윈도우 10 업그레이드 오류라는 검색어로 검색하면 다양한 오류를 접할 수 있다.&lt;/p&gt;

&lt;div class=&quot;alert alert-warning&quot;&gt;
오류에 대한 해결방안을 찾지 못하거나 알려진 방법들을 동원해도 계속적인 실패를 경험할 수 있다. 평소에 자신의 시스템에 많은 수정이 가해졌거나 순정의 윈도우가 아니라고 생각된다면 포맷후 순정의 MSDN 버전으로 클린 설치를 하고 업데이트를 진행 후 업그레이드를 시도하는 것이 시간 낭비를 줄일 수 있는 방법이 될 수 있다.
&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more501_0&quot; data-id=&quot;501_0&quot;&gt;이 디스크에 windows를 설치할 수 없습니다. 선택한 디스크에 mbr 파티션 테이블이 있습니다. efi 시스템에서는 gpt 디스크에만 windows를 설치할 수 있습니다&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content501_0&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_0&quot; data-id=&quot;501_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;이와 같은 문제는 이전 윈도우의 설치방식과 메인보드의 BIOS/UEFI 지원사항에 따라 나타날 수 있는 문제이다. 이는 디스크를 MBR에서 GPT로 혹은 반대로 변경해야만 한다. &lt;a href=&quot;http://hychome.blogspot.kr/2015/10/gpt-windows.html&quot; target=&quot;_blank&quot;&gt;윈도우 설치 에러: gpt 디스크에만 windows를 설치할 수 있습니다&lt;/a&gt;를 참고하자.&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_0&quot; data-id=&quot;501_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more501_1&quot; data-id=&quot;501_1&quot;&gt;윈도우 10 업데이트 오류 (시스템에서 사용하는 파티션은 업데이트 할 수 없습니다)&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content501_1&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_1&quot; data-id=&quot;501_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;이는 OS가 설치된 디스크와 시스템 예약 파티션의 디스크가 일치하지 않아 발생하는 문제이다. 대부분 임의로 파티션을 수정하거나 HDD를 교체하여 OS를 재설치할때 나타나며, &lt;a href=&quot;http://answers.microsoft.com/ko-kr/insider/forum/insider_wintp-insider_update/%EC%9C%88%EB%8F%84%EC%9A%B0-10/e3118d07-57fe-4e22-9ff3-4678619daffb?auth=1&quot; target=&quot;_blank&quot;&gt;파티션 업데이트 실패&lt;/a&gt;를 참고하자.&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_1&quot; data-id=&quot;501_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more501_2&quot; data-id=&quot;501_2&quot;&gt;일반적인 업그레이드 중 실패&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content501_2&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_2&quot; data-id=&quot;501_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;많은 이들이 겪는 문제중에 하나로 별다른 해결책이 없어도 다시 재설치를 시작하면 다음 업그레이드는 성공하는 경우이다. 그래도 실패한다면 &lt;i&gt;C:\WIndow\SotfwareDistribution\Download&lt;/i&gt; 경로의 모든 파일을 지우고 재부팅후 다시 시작해보자.&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_2&quot; data-id=&quot;501_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more501_3&quot; data-id=&quot;501_3&quot;&gt;오류 코드 C1900101 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content501_3&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_3&quot; data-id=&quot;501_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;이전 윈도우에 설치된 보안/방화벽/백신 프로그램들의 호환성에 문제가 있어 프로그램이 충돌을 일으키는 경우이다. 설치된 프로그램들에서 관련 부분들을 제거해보고 각 하드웨어들들의 드라이버를 최신버전으로 업데이트이후 증상을 확인해보자. 윈도우 10을 지원하지 않는 하드웨어의 경우 업그레이드가 불가능할 수도 있다.&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_3&quot; data-id=&quot;501_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more501_4&quot; data-id=&quot;501_4&quot;&gt;업그레이드 및 설치 후 부팅화면이 검은 화면만 나타날 경우&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content501_4&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_4&quot; data-id=&quot;501_4&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;p&gt;이와 같은 문제는 디스플레이 어댑터의 드라이버 문제 혹은 출력이 예기치 않은 포트에 전송되는 문제등이 원인이 된다. 메인보드 및 그래픽제조사에서 제공하는 윈도우즈 10 공식 드라이버들을 설치해보고 증상의 유무를 다시 확인해 보자. 만일, 제조사측에서 윈도우즈 10과 관련된 드라이버를 제공하지 않는다면 다른 모니터를 추가적으로 연결하여 다른 포트로 출력되고 있는지도 점검해 보도록 하자. 특히나 노트북의 경우, 기본 노트북 모니터가 아닌 D-Sub 포트로 모니터의 화면을 출력하고 있는 경우가 종종 보고 되곤 한다(필자도 겪은 현상). &lt;/p&gt;
&lt;p&gt;관련하여 마이크로소프트의 질답에 자세한 설명이 나와있다(&lt;a href=&quot;http://answers.microsoft.com/ko-kr/windows/forum/windows_10-windows_install/windows-10-upgrade-%EC%9D%B4%ED%9B%84/345011a6-e180-4068-b496-dc8b8766e073?tm=1439777849524&amp;auth=1&quot; target=&quot;_blank&quot;&gt;Windows 10 upgrade 이후 블랙 스크린 발생&lt;/a&gt;).&lt;/p&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less501_4&quot; data-id=&quot;501_4&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt; 

&lt;p&gt;그 밖의 오류코드가 발생한다면 &lt;a href=&quot;http://cafe.naver.com/develoid/552642&quot; target=&quot;_blank&quot;&gt;윈도우 10 설치 오류 총정리&lt;/a&gt;의 글도 참고하도록 하자.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>Upgrade</category>
      <category>windows10</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/501</guid>
      <comments>https://webdir.tistory.com/501#entry501comment</comments>
      <pubDate>Sun, 10 Jan 2016 11:00:10 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 업그레이드 및 설치</title>
      <link>https://webdir.tistory.com/500</link>
      <description>&lt;p&gt;'새해에는 새 윈도우에~!' 라는 다짐아래 그 동안의 시스템을 정리하고 윈도우 10으로 업그레이드를 진행하였고 무사안착 하였습니다. 관련하여 설치순서를 정리해봅니다.&lt;/p&gt;

&lt;div class=&quot;alert alert-warning&quot;&gt;
일반 사용자를 위한 윈도우즈 10 무료 업그레이드 혜택은 2016년 7월 29일로 종료되었습니다. 하지만 마이크로소프트는 여전히 무료 업그레이드 혜택을 받을 수 있는 통로를 열어두었습니다.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/accessibility/windows10upgrade&quot; target=&quot;_blank&quot;&gt;보조 기술을 사용하는 고객을 위한 Windows 10 무료 업그레이드&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;h3&gt;Windows 10 업그레이드 알림&lt;/h3&gt;
&lt;p&gt;기존의 시스템에 업그레이드가 준비되면 아래와 같은 알림이 등장한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 499px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27285B40568E817418&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27285B40568E817418&quot; width=&quot;499&quot; height=&quot;358&quot; filename=&quot;windows10_upgrade.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;또한, 윈도우가 설치된 드라이브에는 &lt;b&gt;$Windows.~BT&lt;/b&gt;라는 숨긴 폴더가 존재하며, 이는 윈도우 10 설치파일을 미리 다운로드받아둔 폴더로 약 3~6Gb의 용량을 차지한다. 윈도우 10으로 업그레이드 완료후에도 이는 이전버전의 윈도우로 돌아갈때도 사용된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 387px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232CC133568E8CB903&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232CC133568E8CB903&quot; width=&quot;387&quot; height=&quot;325&quot; filename=&quot;windows_upgrade2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;본격적으로 업그레이드를 시작하기 전에 마지막으로 자신의 시스템을 한번 체크한다. 윈도우 버전 및 시스템 종류, 인증여부등을 확인하도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 695px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27576D4D568E8CF524&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27576D4D568E8CF524&quot; width=&quot;695&quot; height=&quot;504&quot; filename=&quot;windows_upgrade3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;Windows 10 업그레이드&lt;/h3&gt;
&lt;p&gt;작업표시줄의 알림창을 클릭하거나 윈도우 로고를 클릭하면 아래와 같은 창을 뜨며 업그레이드를 시작할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 816px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21777048568E8DD73B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21777048568E8DD73B&quot; width=&quot;816&quot; height=&quot;531&quot; filename=&quot;windows_upgrade4.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;$Windows.~BT&lt;/b&gt; 폴더가 있더라도 다시 다운로드가 진행되는데 미리 받아둔 파일이 완전한 파일이 아닌듯 싶다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 846px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/212AC646568E8FE40E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F212AC646568E8FE40E&quot; width=&quot;846&quot; height=&quot;341&quot; filename=&quot;windows_upgrade5.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;다운로드가 완료되면 사용권 계약 동의를 구하고 업그레이드 설치 준비가 완료된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 816px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22604C45568E91A629&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22604C45568E91A629&quot; width=&quot;816&quot; height=&quot;531&quot; filename=&quot;windows_upgrade6.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;지금 업그레이드 시작을 선택하면 본격적으로 업그레이드가 진행된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 816px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26581145568E922734&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26581145568E922734&quot; width=&quot;816&quot; height=&quot;531&quot; filename=&quot;windows_upgrade7.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div class=&quot;alert alert-info&quot;&gt;이후의 업그레이드 과정에서는 몇번의 재부팅을 동반함에 유의하자&lt;/div&gt; 

&lt;p&gt;업그레이드 시작전에 업데이트 파일을 구성하며 자동으로 재부팅하게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 533px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/217FA933568EA11001&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F217FA933568EA11001&quot; width=&quot;533&quot; height=&quot;400&quot; filename=&quot;windows_upgrade8.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;재부팅 후, 윈도우 10 업그레이드가 파일복사 → 기능 및 드라이버 설치 → 설정 구성의 순으로 진행된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 533px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/260ED833568EA37F03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F260ED833568EA37F03&quot; width=&quot;533&quot; height=&quot;400&quot; filename=&quot;windows_upgrade9.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;설정을 구성하면서 사용할 계정을 선택하게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 533px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25552839568EA71A1A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25552839568EA71A1A&quot; width=&quot;533&quot; height=&quot;400&quot; filename=&quot;windows_upgrade10.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이후, 법적 고지사항 및 기본 설정, 앱 선택의 과정을 거쳐 윈도우 설정은 마무리하게 되며, &lt;b&gt;이제 시작합니다&lt;/b&gt; 라는 메세지와 더불어 몇가지 메세지가 더 등장하고 윈도우의 업그레이드는 완료된다. 기본적으로 이전 윈도우에 설치된 프로그램들과 설정들을 물려받는다. &lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2266A238568EB3972F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2266A238568EB3972F&quot; width=&quot;1000&quot; height=&quot;565&quot; filename=&quot;windows_upgrade11.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;우선 설치가 완료되면 시작메뉴에 마우스 우클릭으로 등장하는 메뉴에서 &lt;b&gt;시스템&lt;/b&gt; 을 선택하여 설치정보 및 인증을 확인하자.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 698px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2355B839568EB84930&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2355B839568EB84930&quot; width=&quot;698&quot; height=&quot;507&quot; filename=&quot;windows_upgrade12.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이로써 설치과정은 마무리된다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>Upgrade</category>
      <category>windows10</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/500</guid>
      <comments>https://webdir.tistory.com/500#entry500comment</comments>
      <pubDate>Sat, 9 Jan 2016 11:00:17 +0900</pubDate>
    </item>
    <item>
      <title>Windows 10 업그레이드 및 설치전 준비사항</title>
      <link>https://webdir.tistory.com/499</link>
      <description>&lt;p&gt;기존의 윈도우 시스템을 윈도우 10으로 업그레이드하거나 클린설치를 염두에 두고 있을때 유의해야 할 사항들을 짚어봅니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none; display: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 499px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2661E642568E800A0E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2661E642568E800A0E&quot; width=&quot;499&quot; height=&quot;358&quot; filename=&quot;windows10_upgrade_wait.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;하드웨어 호환성 확인&lt;/h3&gt;
&lt;p&gt;윈도우 10을 설치하고 막상 기존의 시스템을 구성하고 있던 하드웨어들이 이를 지원하지 않는다면 그보다 난감할 수 없다. 사전에 각각의 하드웨어 제조사의 홈페이지에 들려 윈도우 10의 지원사항을 파악하자.&lt;/p&gt;

&lt;div class=&quot;alert alert-tip&quot;&gt;
&lt;p&gt;일반적인 시스템은 메인보드에 대부분의 시스템 구성요소가 포함되므로 이의 호환성을 우선적으로 확인해야 한다. 메인보드의 경우 드라이버뿐만 아니라 BIOS/UEFI의 업데이트 또한 지원하지는 꼼꼼히 살펴보도록 하자.&lt;/p&gt;
&lt;p&gt;또한 프린터, 스캐너같은 의외의 주변기기에서 난관에 봉착할 수 있기 때문에 사용하는 주변기기들에 대한 호환성도 염두에 두어야한다.&lt;/p&gt; 
&lt;/div&gt; 

&lt;p&gt;제조사의 홈페이지에서 드라이버를 다운로드 받고,&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2702853D568D595120&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2702853D568D595120&quot; width=&quot;500&quot; height=&quot;216&quot; filename=&quot;windows10_pre_confirm1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;BIOS/UEFI를 업데이트 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267FD33D568D595322&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267FD33D568D595322&quot; width=&quot;500&quot; height=&quot;375&quot; filename=&quot;windows10_pre_confirm2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;blockquote&gt;
필자의 경우, 메인보드의 UEFI를 업데이트하고, 윈도우 10 설치 완료후, 드라이버를 업데이트하였다.  
&lt;/blockquote&gt;

&lt;p&gt;윈도우 10은 아톰(Atom) 기반 태블릿처럼 낮은 전력 시스템을 포함한 다양한 하드웨어에서 실행되지만 최소 요구사항이 존재한다. 컴퓨터가 1GHz 보다 낮은 속도의 프로세서이거나 32비트 시스템의 1Gb 이하의 메모리, 64비트 시스템의 2Gb 이하의 메모리를 보유하고 있다면 설치 프로그램이 설치를 완료할 수 없다.&lt;/p&gt;

&lt;h3&gt;업데이트 기간 및 설치 시간&lt;/h3&gt;
&lt;p&gt;2015년 7월 29일부터 1년간 무료 업데이트가 시행된다. &lt;a href=&quot;http://webdir.tistory.com/417&quot; target=&quot;_blank&quot;&gt;Windows 10 무료 업그레이드 예약&lt;/a&gt;을 했다면 시간의 차등을 두고 순차적으로 업그레이드 알림이 뜨게 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 499px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25017A33568D78A529&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25017A33568D78A529&quot; width=&quot;499&quot; height=&quot;358&quot; filename=&quot;windows10_upgrade.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;예약없이 윈도우 10으로 업그레이드하길 원한다면 아래의 링크를 이용해 설치할 수 있다.&lt;/p&gt;
&lt;dl class=&quot;link-box&quot;&gt;
    &lt;div class=&quot;link-row&quot;&gt;
        &lt;dt&gt;DOWN&lt;/dt&gt;
        &lt;dd&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows10&quot; target=&quot;_blank&quot;&gt;Windows 10 다운로드&lt;/a&gt;&lt;/dd&gt;
    &lt;/div&gt;
&lt;/dl&gt; 

&lt;p&gt;오류 없이 설치가 진행된다면 1시간 이내에 설치를 마무리 지을 수 있다. 다만, 윈도우의 중요 업데이트가 항상 매끄럽게 진행되지만은 않기에 불상사를 대비해서 주요 자료의 백업과 넉넉한 시간 배분이 필요하다. 오류를 해결하는데 해가 지고 해가 다시 뜨는 일은 다반사이니 말이다.&lt;/p&gt;

&lt;h3&gt;호환 프로그램 및 게임&lt;/h3&gt;
&lt;p&gt;윈도우 10의 프로그램 호환성은 계속 업데이트되고 있으며 &lt;a href=&quot;https://namu.wiki/w/Windows%2010/%ED%98%B8%ED%99%98%EC%84%B1&quot; target=&quot;_blank&quot;&gt;Windows 10/호환성&lt;/a&gt; 에서 호환 목록을 확인해 볼 수 있다. 특수한 경우를 제외한 대부분의 프로그램 및 게임이 호환성을 보이고 있다.&lt;/p&gt;

&lt;h4&gt;비호환성 프로그램 제거&lt;/h4&gt;
&lt;p&gt;윈도우의 업데이트를 방해하는 몇가지 대표적인 사례가 있다. 윈도우 8과 8.1에서 사리진 시작메뉴를 복구하기 위해 설치하는 각종 유틸리티들이 그들 중 하나이며, 비슷하게 이전 세대의 윈도우에 깊숙히 초점이 맞춰진 프로그램들은 윈도우 10 업그레이드 실패의 원인이 될 수 있다.&lt;/p&gt;

&lt;h3&gt;마이크로소프트 계정준비&lt;/h3&gt;
&lt;p&gt;윈도우 8이상의 운영체제에서는 마이크로소프트의 계정을 설정해 이를 디바이스간의 연결 및 시스템 설정사항등을 저장한다. 윈도우 10에 이르러서는 이 계정을 이용해 아래와 같은 더욱 통합된 시스템을 구축한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 928px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2548FF4D568E891422&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2548FF4D568E891422&quot; width=&quot;928&quot; height=&quot;123&quot; filename=&quot;windows_pre_upgrade5.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;윈도우 10을 설치시 마이크로소프트 계정을 생성할 수 있으나 계정의 인증과 같은 부분에서 다른 기기를 이용해서 확인해야 할 수 있으니 미리미리 생성하자.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>윈도우즈/Windows 10</category>
      <category>Upgrade</category>
      <category>windows10</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/499</guid>
      <comments>https://webdir.tistory.com/499#entry499comment</comments>
      <pubDate>Fri, 8 Jan 2016 11:00:10 +0900</pubDate>
    </item>
    <item>
      <title>티스토리 댓글 및 방명록 디자인 유의사항</title>
      <link>https://webdir.tistory.com/498</link>
      <description>&lt;p&gt;티스토리의 댓글 및 방명록을 디자인할때 겪을 수 있는 유의사항을 살펴봅니다.&lt;/p&gt;

&lt;h3&gt;댓글 및 방명록 스크립트&lt;/h3&gt;
&lt;p&gt;티스토리에서 댓글과 방명록 폼에 입력된 내용을 처리하는 스크립트는 아래와 같다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;function addComment(caller, entryId) {
    var oForm = findFormObject(caller);
    if (!oForm)
    return false;
    var request = new HTTPRequest(&quot;POST&quot;, oForm.action);
    request.onSuccess = function () {
        if(entryId == 0)
            window.location = blogURL + &quot;/guestbook&quot;;
        else {
            document.getElementById(&quot;entry&quot; + entryId + &quot;Comment&quot;).innerHTML = this.getText(&quot;/response/commentBlock&quot;);
            if(document.getElementById(&quot;recentComments&quot;))
                document.getElementById(&quot;recentComments&quot;).innerHTML = this.getText(&quot;/response/recentCommentBlock&quot;);
            if(document.getElementById(&quot;commentCount&quot; + entryId))
                document.getElementById(&quot;commentCount&quot; + entryId).innerHTML = this.getText(&quot;/response/commentView&quot;);
            if(document.getElementById(&quot;commentCountOnRecentEntries&quot; + entryId))
                document.getElementById(&quot;commentCountOnRecentEntries&quot; + entryId).innerHTML = &quot;(&quot; + this.getText(&quot;/response/commentCount&quot;) + &quot;)&quot;;
        }
        if(typeof window.needCommentCaptcha !== &quot;undefined&quot;){
            captchaPlugin.init('complete');
        }
    }
    request.onError = function() {
        var description = this.getText(&quot;/response/description&quot;);
        if (description) { alert(description); }
    }
    var queryString = &quot;key=tistory&quot;;
    var captchaInput = document.getElementById('inputCaptcha');
    if (oForm[&quot;name&quot;])
        queryString += &quot;&amp;amp;name=&quot; + encodeURIComponent(oForm[&quot;name&quot;].value);
    if (oForm[&quot;password&quot;])
        queryString += &quot;&amp;amp;password=&quot; + encodeURIComponent(oForm[&quot;password&quot;].value);
    if (oForm[&quot;homepage&quot;])
        queryString += &quot;&amp;amp;homepage=&quot; + encodeURIComponent(oForm[&quot;homepage&quot;].value);
    if (oForm[&quot;secret&quot;] &amp;amp;&amp;amp; oForm[&quot;secret&quot;].checked)
        queryString += &quot;&amp;amp;secret=1&quot;;
    if (oForm[&quot;comment&quot;])
        queryString += &quot;&amp;amp;comment=&quot; + encodeURIComponent(oForm[&quot;comment&quot;].value);
    if (captchaInput) {
        if (!captchaInput.value) {
            alert('그림문자가 입력되지 않았습니다.');
            return false;
        }
        queryString += &quot;&amp;amp;captcha=&quot; + encodeURIComponent(captchaInput.value);
    }
    request.send(queryString);
}
.....
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;폼에 입력된 내용을 전송하고 내용을 갱신시키기 위해 페이지를 새로고침시키는 일반적인 방식과는 달리 서버측과 통신하기 위해 AJAX를 사용하고 페이지 전체를 새로고침하지 않고 입력된 댓글들을 갱신시키고 있다. &lt;/p&gt;  
&lt;p&gt;AJAX 요청으로 응답받는 내용은 아래 그림과 같이 XML문서이고 이 곳에 정의된 &lt;code&gt;&amp;lt;commentBlock&amp;gt;&lt;/code&gt; 은  스킨제작시 삽입되는 댓글영역 치환자 &lt;code&gt;&amp;lt;s_rp&amp;gt;&lt;/code&gt; 가 정의하고 있는 영역이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot; class=&quot;border&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/244FA033568AB20D06&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F244FA033568AB20D06&quot; width=&quot;1000&quot; height=&quot;445&quot; filename=&quot;tistory_form.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;댓글 및 방명록 이벤트연결&lt;/h3&gt;
&lt;p&gt;다시말하자면 댓글을 입력하고 전송버튼을 누르면 위의 스크립트들이 실행되고 AJAX로 응답받은 내용들로 댓글 및 방명록 영역이 교체된다. 일반적인 디자인을 염두에 두고 있다면 문제발생 소지가 적지만 스크립트를 이용해 이벤트를 연결하고 어떤 행동을 부여하는 등의 디자인을 구상하고 있다면 이는 원하는데로 작동하지 않아 당황스러울지도 모른다. 어떠한 추가적인 에러메세지도 노출되지 않을테니.....&lt;/p&gt;

&lt;p&gt;사실 동적으로 생성된 구조에는 동적인 이벤트연결을 부여해야한다. jQuery를 사용하고 있다면 &lt;code&gt;.on()&lt;/code&gt; 의 사용에 익숙할 것이다.&lt;/p&gt;
&lt;div class=&quot;alert alert-modern&quot;&gt;
on( events [, selector] [, data], handler(eventObject))
&lt;ul&gt;
&lt;li&gt;events : 공백으로 구분된 하나 이상의 이벤트 형식으로 click, keydown, focus 등이 있다.&lt;/li&gt;
&lt;li&gt;selector : 이벤트가 발생할 자식요소들을 찾을 선택자로 일반적인 경우에 이를 생략하여 선택된 요소에만 이벤트를 적용하지만 동적 이벤트연결엔 필요하다.&lt;/li&gt;
&lt;li&gt;data : 이벤트가 발생할 때 핸들러에 전달할 데이터&lt;/li&gt;
&lt;li&gt;handler(eventObject) : 이벤트가 발생하면 실행될 함수&lt;/li&gt;  
&lt;/ul&gt;
&lt;/div&gt; 

&lt;p&gt;일반적인 경우라면 전자와 같이 이벤트를 연결하겠지만 동적인 연결은 후자와 같다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;$('.focus-target').on('focus', function(){
    $(this).closest('.focus-wrap').addClass('focus');
});

$(document).on('focus', '.focus-target', function(){
    $(this).closest('.focus-wrap').addClass('focus');
});
&lt;/code&gt;&lt;/pre&gt; 

&lt;blockquote&gt;
스킨을 제작하면서 댓글폼을 전송시 동적으로 생성되는 구조를 모르고 있다가 당황스러웠다. 그런분들이 또 있을까 싶어 기록을 남겼다.  
&lt;/blockquote&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>티스토리/스킨가이드</category>
      <category>댓글</category>
      <category>방명록</category>
      <category>스킨</category>
      <category>티스토리</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/498</guid>
      <comments>https://webdir.tistory.com/498#entry498comment</comments>
      <pubDate>Tue, 5 Jan 2016 11:00:11 +0900</pubDate>
    </item>
    <item>
      <title>티스토리 카테고리 클래스 추가</title>
      <link>https://webdir.tistory.com/497</link>
      <description>&lt;p&gt;티스토리 스킨의 카테고리 목록형 구조에 클래스명이 새로이 추가되었습니다. 카테고리 디자인을 위해 복잡한 CSS 선택자를 이용하거나 스크립트로 클래스를 추가해 사용해왔는데 조금은 수월해질 듯 싶습니다.&lt;/p&gt;

&lt;h3&gt;카테고리 목록의 구조&lt;/h3&gt;
&lt;p&gt;아래는 &lt;code&gt;[샆샾_category_list_샾샾]&lt;/code&gt; 치환자를 이용할 경우 생성되는 구조이다.&lt;/p&gt;

&lt;blockquote&gt;
샾샾 부분은 &lt;code&gt;##&lt;/code&gt;으로 교체
&lt;/blockquote&gt;

&lt;pre class=&quot;line-numbers&quot; data-line=&quot;1,3,4,6,7,9&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;ul class=&quot;tt_category&quot;&amp;gt;
    &amp;lt;li&amp;gt;
        &amp;lt;a class=&quot;link_tit&quot; href=&quot;/category&quot;&amp;gt;분류 전체보기 &amp;lt;span class=&quot;c_cnt&quot;&amp;gt;(글갯수)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;ul class=&quot;category_list&quot;&amp;gt;
            &amp;lt;li&amp;gt;
                &amp;lt;a class=&quot;link_item&quot; href=&quot;...&quot;&amp;gt;카테고리명 &amp;lt;span class=&quot;c_cnt&quot;&amp;gt;(글갯수)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;
                &amp;lt;ul class=&quot;sub_category_list&quot;&amp;gt;
                    &amp;lt;li&amp;gt;
                        &amp;lt;a class=&quot;link_sub_item&quot; href=&quot;...&quot;&amp;gt;서브 카테고리명 &amp;lt;span class=&quot;c_cnt&quot;&amp;gt;(글갯수)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;
                    &amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
            &amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 

&lt;ul&gt;
&lt;li&gt;카테고리 목록의 시작엔 &lt;code&gt;.tt_category&lt;/code&gt; 가 추가되었다 - 1행.&lt;/li&gt;
&lt;li&gt;카테고리 목록의 최상위 목록엔 &lt;code&gt;.link_tit&lt;/code&gt; 가 추가되었다 - 3행&lt;/li&gt;
&lt;li&gt;카테고리 목록의 1차 카테고리의 시작엔 &lt;code&gt;.category_list&lt;/code&gt; 가 추가되었다. - 4행&lt;/li&gt;
&lt;li&gt;카테고리 목록의 1차 카테고리의 링크엔 &lt;code&gt;.link_item&lt;/code&gt; 이 추가되었다. - 6행&lt;/li&gt;  
&lt;li&gt;카테고리 목록의 2차 카테고리가 있다면 그 시작엔 &lt;code&gt;.sub_category_list&lt;/code&gt; 가 추가된다. - 7행&lt;/li&gt;
&lt;li&gt;카테고리 목록의 2차 카테고리의 링크엔 &lt;code&gt;link_sub_item&lt;/code&gt; 이 추가된다. - 9행&lt;/li&gt;  
&lt;/ul&gt; 

&lt;p&gt;이로써, 일반적인 카테고리 목록의 디자인을 변경하는 것에는 문제가 없을 것이다. 다만, 아직 현재 활성화된 카테고리에 대한 클래스를 부여해주지 않기에 스크립트로 이를 대체해야 한다.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>티스토리/스킨가이드</category>
      <category>스킨</category>
      <category>카테고리</category>
      <category>티스토리</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/497</guid>
      <comments>https://webdir.tistory.com/497#entry497comment</comments>
      <pubDate>Mon, 4 Jan 2016 11:00:10 +0900</pubDate>
    </item>
    <item>
      <title>CCZ-CROSS 패치노트</title>
      <link>https://webdir.tistory.com/496</link>
      <description>&lt;p&gt;테스트가 부족했던 관계로 미흡한 부분이 발견되고 있으며, 이를 보완하고 패치내역을 공개하고 있습니다. 불편하시더라도 패치내역을 둘러 보시길 권합니다.&lt;/p&gt;
&lt;div class=&quot;alert alert-tip&quot;&gt;모든 패치내용을 반드시 수정할 필요는 없습니다. 패치내역을 살펴보시고 적용하길 원한다면 새 파일을 &lt;a class=&quot;tx-link&quot; href=&quot;http://webdir.tistory.com/491#skin-download&quot;&gt;다운로드&lt;/a&gt; 하거나 직접 수정할 수 있도록 설명을 보태고 있습니다(오래된 패치내용 부터 최신순으로 수정하세요).&lt;/div&gt;&lt;br /&gt;

&lt;p class=&quot;alert alert-success&quot;&gt;[2016.01.24]] 패치 내용의 전달을 수월하게 진행하기 위해 GitHub의 변경이력을 살펴볼 수 있도록 변경되었습니다.&lt;/p&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_0&quot; data-id=&quot;496_0&quot;&gt;2018.02.16 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_0&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_0&quot; data-id=&quot;496_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS/commit/73213b7a5ebcd212706baf88d3e5e2b67e134997&quot; target=&quot;_blank&quot;&gt;다음TV 팟이 카카오TV 서비스로 이전하면서 주소체계가 변경되면서 발생한 문제를 대처&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_0&quot; data-id=&quot;496_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_1&quot; data-id=&quot;496_1&quot;&gt;2017.02.26 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_1&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_1&quot; data-id=&quot;496_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS/commit/cb311f3fa4a837a87283a02df7205d173c3f8d0e&quot; target=&quot;_blank&quot;&gt;크롬 브라우저 55 버전 스크롤 이벤트 버그 수정&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_1&quot; data-id=&quot;496_1&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_2&quot; data-id=&quot;496_2&quot;&gt;2016.07.19 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_2&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_2&quot; data-id=&quot;496_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS/commit/77acd0a15d6f80705945666a412620995b376319&quot; target=&quot;_blank&quot;&gt;신고기능 업데이트로 인한 날짜표기 오류수정&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_2&quot; data-id=&quot;496_2&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;


&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_3&quot; data-id=&quot;496_3&quot;&gt;2016.02.23 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_3&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_3&quot; data-id=&quot;496_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS/commit/a95ff47387e24c57bf38c04dde5bae5ea1629579&quot; target=&quot;_blank&quot;&gt;IE10 flexbox 스타일 제거&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_3&quot; data-id=&quot;496_3&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_4&quot; data-id=&quot;496_4&quot;&gt;2016.01.24 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_4&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_4&quot; data-id=&quot;496_4&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS/commit/f02160e005baae1cc76e5e5b85293c08567e1979&quot; target=&quot;_blank&quot;&gt;오탈자 수정 및 누락된 디자인 추가&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS/commit/b736a4c9432125b56ed46e79df3a26134edb3a2f&quot; target=&quot;_blank&quot;&gt;이전 댓글 더보기 디자인 추가&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_4&quot; data-id=&quot;496_4&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_5&quot; data-id=&quot;496_5&quot;&gt;2016.01.04 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_5&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_5&quot; data-id=&quot;496_5&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;h4 style=&quot;MARGIN-TOP: 0px&quot;&gt;댓글과 방명록 폼버그 수정&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 댓글과 방명록에 댓글이나 답글을 작성한 후, 신규 댓글이나 답글을 작성하기 위해 입력폼을 선택해도 동작하지 않는 버그&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;main.js&lt;/b&gt; 파일의 &lt;code&gt;//폼액션&lt;/code&gt; 부분을 찾아 삭제하고 아래의 코드로 대체한다.&lt;/p&gt;
&lt;pre class=&quot;line-numbers&quot; data-start=&quot;526&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;//폼액션
$(document).on('focus', '.focus-target', function(){
    $(this).closest('.focus-wrap').addClass('focus');
});
$(document).on('focusout', '.focus-target', function(){
    $(this).closest('.focus-wrap').removeClass('focus');
});

$(document).on('focus','.textboxs textarea', function(){
    $('.write-form').addClass('active');
    $(this).siblings('label').fadeOut('fast');
});
$(document).on('focusout','.textboxs textarea', function(){
    if($(this).val() == ''){
        $(this).siblings('label').fadeIn('fast');
    }
});

//goToTop
.....
&lt;/code&gt;&lt;/pre&gt; 
&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_5&quot; data-id=&quot;496_5&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_6&quot; data-id=&quot;496_6&quot;&gt;2015.12.31 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_6&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_6&quot; data-id=&quot;496_6&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;h4 style=&quot;MARGIN-TOP: 0px&quot;&gt;더보기 스타일 수정&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 더보기의 접힌 상태의 과도한 줄높이 및 여백, 더보기 콘텐츠의 여백 수정&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;style.css&lt;/b&gt; 파일의 더보기 스타일을 아래의 지시에 따라 수정한다.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.moreless_top,.moreless_content{border-bottom:0;}&lt;/code&gt; 와 &lt;code&gt;.moreless_bottom,.moreless_content{border-top:0;}&lt;/code&gt; 을 삭제하고 아래 스타일을 추가가한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.moreless_top {border-bottom: 0;}
.moreless_bottom {border-top: 0;}
.moreless_content {
    padding: 1.5em 15px; 
    border-top-style: dashed; 
    border-bottom-style: dashed;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;.moreless_fold,.moreless_top,.moreless_bottom {...}&lt;/code&gt; 스타일을 아래와 같이 수정한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.moreless_fold,
.moreless_top,
.moreless_bottom {
    display: table-cell;
    width: 10000px;
    height: 80px;
    vertical-align: middle;
    color: #72787f;
    font-weight: bold;
    border-top-width: 3px;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;old.css&lt;/b&gt; 파일의 &lt;code&gt;.moreless_fold,.moreless_top,.moreless_bottom {...}&lt;/code&gt; 부분을 아래와 같이 수정한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.moreless_fold,
.moreless_top,
.moreless_bottom {
    *display: block;
    *width: auto;
    *height: auto; 
    *padding-left: 15px;
    *line-height: 40px;
    *zoom: 1;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;사이드바 카테고리 카운트 수정&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 구형 IE에서 카테고리 카운트 부분의 위치가 부정확하다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;style.css&lt;/b&gt; 파일의 &lt;code&gt;.module-category .c_cnt&lt;/code&gt; 부분에 위치제어를 추가한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.module-category .c_cnt {
    position: absolute;
    top: 0;
    right: 5px;
    font-size: .8em;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;사이드바 카테고리 NEW 아이콘 FOUC 처리&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 기존의 NEW 아이콘 이미지가 노출된 체로 새로운 NEW 아이콘으로 변경된다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;reset.css&lt;/b&gt; 파일의 FOUC 처리 부분에 NEW 아이콘을 추가한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.loading .fouc,
 .loading .tt-cate img[alt=&quot;N&quot;] {
    opacity: 0 !important;
}
.fouc, 
.tt-cate img[alt=&quot;N&quot;] {
    opacity: 1 !important;
    -webkit-transition-property: opacity;
    -webkit-transition-delay: .6s;
    -webkit-transition-duration: .6s;
    transition-property: opacity;transition-delay: .6s;
    transition-duration: .6s;
}
.no-csstransitions .loading .fouc, 
.no-csstransitions .loading .tt-cate img[alt=&quot;N&quot;] {
    visibility: hidden;
}
.no-csstransitions .fouc, 
.no-csstransitions .tt-cate img[alt=&quot;N&quot;] {
    visibility: visible;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;사이트 헤더와 푸터에 최소너비 지정&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 구형 IE에서 사이트 헤더와 푸터의 최소너비를 지정하여 창의 크기를 줄여도 디자인이 깨지지 않도록 한다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;old.css&lt;/b&gt; 파일의 레이아웃부분에 최소너비를 아래와 같이 지정한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;#site-header,
#site-footer {
    min-width: 1000px;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;테이블 관련 서식 업데이트&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 소스의 원본은 부트스트랩에서 차용해서 쓰고 있으며, 업데이트 내용을 적용한다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;reset.css&lt;/b&gt; 파일의 table 관련 스타일을 삭제하고 이를 아래의 내용으로 대체한다.&lt;/p&gt;&lt;pre style=&quot;MARGIN-BOTTOM: 0px&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;/* table */
table{background-color:transparent;}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left;}th{text-align:left;}.table{width:100%;max-width:100%;margin-bottom:20px}.table&amp;gt;thead&amp;gt;tr&amp;gt;th,.table&amp;gt;tbody&amp;gt;tr&amp;gt;th,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;th,.table&amp;gt;thead&amp;gt;tr&amp;gt;td,.table&amp;gt;tbody&amp;gt;tr&amp;gt;td,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;td{padding:8px;line-height:1.42857143;vertical-align:middle;border-top:1px solid #ddd}.table&amp;gt;thead&amp;gt;tr&amp;gt;th{vertical-align:bottom;border-bottom:2px solid #ddd;}.table&amp;gt;caption+thead&amp;gt;tr:first-child&amp;gt;th,.table&amp;gt;colgroup+thead&amp;gt;tr:first-child&amp;gt;th,.table&amp;gt;thead:first-child&amp;gt;tr:first-child&amp;gt;th,.table&amp;gt;caption+thead&amp;gt;tr:first-child&amp;gt;td,.table&amp;gt;colgroup+thead&amp;gt;tr:first-child&amp;gt;td,.table&amp;gt;thead:first-child&amp;gt;tr:first-child&amp;gt;td{border-top:0}.table&amp;gt;tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed&amp;gt;thead&amp;gt;tr&amp;gt;th,.table-condensed&amp;gt;tbody&amp;gt;tr&amp;gt;th,.table-condensed&amp;gt;tfoot&amp;gt;tr&amp;gt;th,.table-condensed&amp;gt;thead&amp;gt;tr&amp;gt;td,.table-condensed&amp;gt;tbody&amp;gt;tr&amp;gt;td,.table-condensed&amp;gt;tfoot&amp;gt;tr&amp;gt;td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;th,.table-bordered&amp;gt;tbody&amp;gt;tr&amp;gt;th,.table-bordered&amp;gt;tfoot&amp;gt;tr&amp;gt;th,.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;td,.table-bordered&amp;gt;tbody&amp;gt;tr&amp;gt;td,.table-bordered&amp;gt;tfoot&amp;gt;tr&amp;gt;td{border:1px solid #ddd}.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;th,.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;td{border-bottom-width:2px}.table-striped&amp;gt;tbody&amp;gt;tr:nth-child(odd){background-color:#f9f9f9}.table-hover&amp;gt;tbody&amp;gt;tr:hover{background-color:#f5f5f5}table col[class*=&quot;col-&quot;]{position:static;display:table-column;float:none;}table td[class*=&quot;col-&quot;],table th[class*=&quot;col-&quot;]{position:static;display:table-cell;float:none;}.table&amp;gt;thead&amp;gt;tr&amp;gt;td.active,.table&amp;gt;tbody&amp;gt;tr&amp;gt;td.active,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;td.active,.table&amp;gt;thead&amp;gt;tr&amp;gt;th.active,.table&amp;gt;tbody&amp;gt;tr&amp;gt;th.active,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;th.active,.table&amp;gt;thead&amp;gt;tr.active &amp;gt;td,.table&amp;gt;tbody&amp;gt;tr.active&amp;gt;td,.table&amp;gt;tfoot&amp;gt;tr.active&amp;gt;td,.table&amp;gt;thead&amp;gt;tr.active&amp;gt;th,.table&amp;gt;tbody&amp;gt;tr.active&amp;gt;th,.table&amp;gt;tfoot&amp;gt;tr.active&amp;gt;th{background-color:#f5f5f5;}.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;td.active:hover,.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;th.active:hover,.table-hover&amp;gt;tbody&amp;gt;tr.active:hover&amp;gt;td,.table-hover&amp;gt;tbody&amp;gt;tr:hover&amp;gt;.active,.table-hover&amp;gt;tbody&amp;gt;tr.active:hover&amp;gt;th{background-color:#e8e8e8}.table&amp;gt;thead&amp;gt;tr&amp;gt;td.success,.table&amp;gt;tbody&amp;gt;tr&amp;gt;td.success,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;td.success,.table&amp;gt;thead&amp;gt;tr&amp;gt;th.success,.table&amp;gt;tbody&amp;gt;tr&amp;gt;th.success,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;th.success,.table&amp;gt;thead&amp;gt;tr.success&amp;gt;td,.table&amp;gt;tbody&amp;gt;tr.success&amp;gt;td,.table&amp;gt;tfoot&amp;gt;tr.success&amp;gt;td,.table&amp;gt;thead&amp;gt;tr.success&amp;gt;th,.table&amp;gt;tbody&amp;gt;tr.success&amp;gt;th,.table&amp;gt;tfoot&amp;gt;tr.success&amp;gt;th{background-color:#dff0d8}.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;td.success:hover,.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;th.success:hover,.table-hover&amp;gt;tbody&amp;gt;tr.success:hover&amp;gt;td,.table-hover&amp;gt;tbody&amp;gt;tr:hover&amp;gt;.success,.table-hover&amp;gt;tbody&amp;gt;tr.success:hover&amp;gt;th{background-color:#d0e9c6}.table&amp;gt;thead&amp;gt;tr&amp;gt;td.info,.table&amp;gt;tbody&amp;gt;tr&amp;gt;td.info,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;td.info,.table&amp;gt;thead&amp;gt;tr&amp;gt;th.info,.table&amp;gt;tbody&amp;gt;tr&amp;gt;th.info,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;th.info,.table&amp;gt;thead&amp;gt;tr.info&amp;gt;td,.table&amp;gt;tbody&amp;gt;tr.info&amp;gt;td,.table&amp;gt;tfoot&amp;gt;tr.info&amp;gt;td,.table&amp;gt;thead&amp;gt;tr.info&amp;gt;th,.table&amp;gt;tbody&amp;gt;tr.info&amp;gt;th,.table&amp;gt;tfoot&amp;gt;tr.info&amp;gt;th{background-color:#d9edf7}.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;td.info:hover,.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;th.info:hover,.table-hover&amp;gt;tbody&amp;gt;tr.info:hover&amp;gt;td,.table-hover&amp;gt;tbody&amp;gt;tr:hover&amp;gt;.info,.table-hover&amp;gt;tbody&amp;gt;tr.info:hover&amp;gt;th{background-color:#c4e3f3}.table&amp;gt;thead&amp;gt;tr&amp;gt;td.warning,.table&amp;gt;tbody&amp;gt;tr&amp;gt;td.warning,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;td.warning,.table&amp;gt;thead&amp;gt;tr&amp;gt;th.warning,.table&amp;gt;tbody&amp;gt;tr&amp;gt;th.warning,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;th.warning,.table&amp;gt;thead&amp;gt;tr.warning&amp;gt;td,.table&amp;gt;tbody&amp;gt;tr.warning&amp;gt;td,.table&amp;gt;tfoot&amp;gt;tr.warning&amp;gt;td,.table&amp;gt;thead&amp;gt;tr.warning&amp;gt;th,.table&amp;gt;tbody&amp;gt;tr.warning&amp;gt;th,.table&amp;gt;tfoot&amp;gt;tr.warning&amp;gt;th{background-color:#fcf8e3}.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;td.warning:hover,.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;th.warning:hover,.table-hover&amp;gt;tbody&amp;gt;tr.warning:hover&amp;gt;td,.table-hover &amp;gt; tbody &amp;gt; tr:hover &amp;gt; .warning,.table-hover&amp;gt;tbody&amp;gt;tr.warning:hover&amp;gt;th{background-color:#faf2cc}.table&amp;gt;thead&amp;gt;tr&amp;gt;td.danger,.table&amp;gt;tbody&amp;gt;tr&amp;gt;td.danger,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;td.danger,.table&amp;gt;thead&amp;gt;tr&amp;gt;th.danger,.table&amp;gt;tbody&amp;gt;tr&amp;gt;th.danger,.table&amp;gt;tfoot&amp;gt;tr&amp;gt;th.danger,.table&amp;gt;thead&amp;gt;tr.danger&amp;gt;td,.table&amp;gt;tbody&amp;gt;tr.danger&amp;gt;td,.table&amp;gt;tfoot&amp;gt;tr.danger&amp;gt;td,.table&amp;gt;thead&amp;gt;tr.danger&amp;gt;th,.table&amp;gt;tbody&amp;gt;tr.danger&amp;gt;th,.table&amp;gt;tfoot&amp;gt;tr.danger&amp;gt;th{background-color:#f2dede}.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;td.danger:hover,.table-hover&amp;gt;tbody&amp;gt;tr&amp;gt;th.danger:hover,.table-hover&amp;gt;tbody&amp;gt;tr.danger:hover&amp;gt;td,.table-hover &amp;gt; tbody &amp;gt; tr:hover &amp;gt; .danger,.table-hover&amp;gt;tbody&amp;gt;tr.danger:hover&amp;gt;th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto;}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;}.table-responsive&amp;gt;.table{margin-bottom:0}.table-responsive&amp;gt;.table&amp;gt;thead&amp;gt;tr&amp;gt;th,.table-responsive&amp;gt;.table&amp;gt;tbody&amp;gt;tr&amp;gt;th,.table-responsive&amp;gt;.table&amp;gt;tfoot&amp;gt;tr&amp;gt;th,.table-responsive&amp;gt;.table&amp;gt;thead&amp;gt;tr&amp;gt;td,.table-responsive&amp;gt;.table&amp;gt;tbody&amp;gt;tr&amp;gt;td,.table-responsive&amp;gt;.table&amp;gt;tfoot&amp;gt;tr&amp;gt;td{white-space:nowrap}.table-responsive&amp;gt;.table-bordered{border:0}.table-responsive&amp;gt;.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;th:first-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tbody&amp;gt;tr&amp;gt;th:first-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tfoot&amp;gt;tr&amp;gt;th:first-child,.table-responsive&amp;gt;.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;td:first-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tbody&amp;gt;tr&amp;gt;td:first-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tfoot&amp;gt;tr&amp;gt;td:first-child{border-left:0}.table-responsive&amp;gt;.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;th:last-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tbody&amp;gt;tr&amp;gt;th:last-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tfoot&amp;gt;tr&amp;gt;th:last-child,.table-responsive&amp;gt;.table-bordered&amp;gt;thead&amp;gt;tr&amp;gt;td:last-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tbody&amp;gt;tr&amp;gt;td:last-child,.table-responsive&amp;gt;.table-bordered&amp;gt;tfoot&amp;gt;tr&amp;gt;td:last-child{border-right:0}.table-responsive&amp;gt;.table-bordered&amp;gt;tbody&amp;gt;tr:last-child&amp;gt;th,.table-responsive&amp;gt;.table-bordered&amp;gt;tfoot&amp;gt;tr:last-child&amp;gt;th,.table-responsive&amp;gt;.table-bordered&amp;gt;tbody&amp;gt;tr:last-child&amp;gt;td,.table-responsive&amp;gt;.table-bordered&amp;gt;tfoot&amp;gt;tr:last-child&amp;gt;td{border-bottom:0}}
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_6&quot; data-id=&quot;496_6&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;br /&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more496_7&quot; data-id=&quot;496_7&quot;&gt;2015.12.29 패치내역 &lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content496_7&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_7&quot; data-id=&quot;496_7&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;
&lt;h4 style=&quot;MARGIN-TOP: 0px&quot;&gt;홈화면 및 카테고리 목록 스타일 수정&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 홈화면 및 카테고리 목록의 메타정보(카테고리명과 날짜) 부분의 콘텐츠가 길어지면 썸네일 위로 오버랩된다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;style.css&lt;/b&gt; 파일의 &lt;code&gt;.list-meta&lt;/code&gt; 을 아래와 같이 수정한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.list-meta {margin-top: 5px; font-size: .85em; white-space: normal;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;더보기 스타일 수정&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 더보기를 확장했을때 잘못 설정된 여백값으로 인해 콘텐츠가 위로 움직인다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;style.css&lt;/b&gt; 파일의 &lt;code&gt;.moreless_top, .moreless_bottom {margin:0;}&lt;/code&gt; 을 삭제하고 아래의 스타일을 추가한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;.moreless_top {margin-bottom: 0}
.moreless_bottom {margin-top: 0;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;다음맵 반응형 스타일 추가&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 에디터로 삽입하는 다음 지도가 반응형으로 작동하지 않는다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;style.css&lt;/b&gt; 파일의 Tistory Plugins 영역에 아래의 내용을 추가한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;/* 다음맵 */
iframe[id^=&quot;emap&quot;]{max-width: 100%;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;경보 스타일 수정&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;증상&lt;/b&gt; : 경보의 콘텐츠가 한 줄일때, 세로 가운데 정렬이 되지 못한다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt; : &lt;b&gt;reset.css&lt;/b&gt; 파일의 &lt;code&gt;.alert&lt;/code&gt; 의 반응형 부분을 아래와 같이 수정하고 업로드한다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-css&quot;&gt;@media (min-width: 768px) {
    .alert {
        display: table-cell;
        position: relative;
        width: 10000px;
        height: 108px;
        vertical-align: middle;
        padding: 30px 30px 30px 100px;
        color: #666;
        background-color: #fafafa;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;old.css&lt;/b&gt; 파일의 &lt;code&gt;.alert&lt;/code&gt; 부분도 아래와 같이 수정하고 업로드한다.&lt;/p&gt;&lt;pre style=&quot;MARGIN-BOTTOM: 0px&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;.alert {
    display: table-cell;
    position: relative;
    height: 108px;
    width: 10000px;
    vertical-align: middle;
    padding: 30px 30px 30px 100px;
    color: #666;
    font-size: 12px;
    background-color: #fafafa;
    *display: block;
    *width: auto;
    *height: auto;
    *min-height: 50px;
    *zoom:expression(this.runtimeStyle['zoom'] = '1',this.insertBefore(document.createElement(&quot;i&quot;), this.firstChild).className=&quot;ie-before&quot;);
}
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less496_7&quot; data-id=&quot;496_7&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>티스토리/스킨배포</category>
      <category>CCZ-CROSS</category>
      <category>스킨</category>
      <category>티스토리</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/496</guid>
      <comments>https://webdir.tistory.com/496#entry496comment</comments>
      <pubDate>Tue, 29 Dec 2015 05:18:22 +0900</pubDate>
    </item>
    <item>
      <title>CCZ-CROSS 스킨 배포</title>
      <link>https://webdir.tistory.com/491</link>
      <description>&lt;div class=&quot;alert alert-warning&quot;&gt;
티스토리의 관리자 페이지 업데이트 이후로 로그인/로그아웃이 정상작동하지 않는 경우에는 &lt;b&gt;환경설정(블로그관리) &amp;gt; 꾸미기 - 설정&lt;/b&gt;에서 &lt;b&gt;블로그 메뉴바를 표시합니다.&lt;/b&gt;로 설정을 변경해 주시길 바랍니다.    
&lt;/div&gt;
&lt;h3&gt;CCZ-CROSS 스킨 소개&lt;/h3&gt;
&lt;p&gt;기존에 사용하고 있던 스킨에 대한 공유 요청이 있어 배포 가능한 형태로 재작업하여 배포하게 되었습니다. 개인적으로 구형 브라우저 및 기기들을 지원하는 마지막 작업 결과물인 동시에, 여러가지 쓸만한 아이디어를 조합한 시험작입니다.&lt;/p&gt;
&lt;dl class=&quot;link-box&quot;&gt;
&lt;div class=&quot;link-row&quot;&gt;
&lt;dt&gt;DEMO&lt;/dt&gt;
&lt;dd&gt;&lt;a href=&quot;http://ccz-cross.tistory.com/&quot; target=&quot;_blank&quot;&gt;CCZ-CROSS 데모보기&lt;/a&gt;&lt;/dd&gt;&lt;/div&gt;
&lt;div class=&quot;link-row&quot;&gt;
&lt;dt&gt;REPO&lt;/dt&gt;
&lt;dd&gt;&lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS&quot; target=&quot;_blank&quot;&gt;CCZ-CROSS GitHub&lt;/a&gt;&lt;/dd&gt;&lt;/div&gt;
&lt;div class=&quot;link-row&quot;&gt;
&lt;dt&gt;PATCH&lt;/dt&gt;
&lt;dd&gt;&lt;a href=&quot;http://webdir.tistory.com/496&quot; target=&quot;_blank&quot;&gt;CCZ-CROSS 패치노트&lt;/a&gt;&lt;/dd&gt;&lt;/div&gt;&lt;/dl&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2770E850567BE88715&quot;&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;ccz-cross-mobile.jpg&lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/257A8150567BE8890C&quot;&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;ccz-cross-pc.jpg&lt;/div&gt;&lt;/p&gt;
&lt;h4&gt;특징&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;클래식한 테마&lt;/li&gt;
&lt;li&gt;다양한 기기 및 브라우저를 지원하는 반응형 디자인&lt;/li&gt;
&lt;li&gt;옵션 값의 변경으로 일부 기능 ON/OFF 가능&lt;/li&gt;
&lt;li&gt;글 작성시 도움이 될만한 서식 스타일 추가&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;브라우저 지원&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Windows XP 운영체제의 Internet Explorer 7/8&lt;/li&gt;
&lt;li&gt;Windows 7 운영체제의 Internet Explorer 9/11&lt;/li&gt;
&lt;li&gt;Windows 8.1 운영체제의 Internet Explorer 11&lt;/li&gt;
&lt;li&gt;Windows 10 운영체제의 Internet Explorer 11/Edge&lt;/li&gt;
&lt;li&gt;Firefox 최신버전&lt;/li&gt;
&lt;li&gt;Chrome 최신버전&lt;/li&gt;
&lt;li&gt;Opera 최신버전&lt;/li&gt;
&lt;li&gt;iOS Safari&lt;/li&gt;
&lt;li&gt;Android 2.3.x 이상 내장브라우저&lt;/li&gt;
&lt;li&gt;Android Chrome&lt;/li&gt;&lt;/ul&gt;
&lt;div class=&quot;alert alert-warning&quot;&gt;테스트의 진행은 위의 브라우저들에서 진행되었지만 웹 표준을 준수하는 브라우저라면 그 밖의 브라우저에서도 이상없이 작동됩니다. 블로그 주소를 도메인을 연결하여 사용하시거나 개별글 주소를 문자형태로 사용하신다면 테스트가 필요합니다. &lt;/div&gt;
&lt;h4&gt;라이센스&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;CCZ-CROSS 스킨은 무료로 배포되며, 자유로이 수정하셔서 사용하셔도 됩니다.&lt;/li&gt;
&lt;li&gt;판매의 목적으로 사용될 수 없습니다.&lt;/li&gt;
&lt;li&gt;썸네일 추출과 관련된 소스는 &lt;a class=&quot;tx-link&quot; href=&quot;http://ishaiin.com/&quot;&gt;ishaiin&lt;/a&gt; 님이 판매중인 스킨의 썸네일 추출 소스를 참고하였습니다. 공개 라이센스가 아니기에 이의 재사용을 금합니다.&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;스킨 참고 및 참조&lt;/h4&gt;
&lt;p&gt;스킨을 배포판으로 재작업하면서 스킨 공모전에 출품된 많은 작품들을 참고하였습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://tistory.com/&quot; target=&quot;_blank&quot;&gt;티스토리&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ishaiin.com/&quot; target=&quot;_blank&quot;&gt;THINK MORE,&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://nubiz.tistory.com/&quot; target=&quot;_blank&quot;&gt;Life is an egg.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wallel.com/&quot; target=&quot;_blank&quot;&gt;그렇고 그런 이야기&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://kaniwarispace.tistory.com/&quot; target=&quot;_blank&quot;&gt;프라치노 공간&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h3 id=&quot;skin-download&quot;&gt;스킨 다운로드 및 설치&lt;/h3&gt;
&lt;p&gt;아래의 스킨 파일을 다운로드하고 압축을 해제합니다.&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/9908A13A5A86A38A20&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;CCZ-CROSSV1.2.2.fix.zip&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;스킨등록&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;티스토리 관리 페이지에 접속합니다.&lt;/li&gt;
&lt;li&gt;꾸미기 스킨 → 스킨등록 버튼을 클릭합니다.&lt;/li&gt;
&lt;li&gt;스킨저장명에 적당한 이름(ex. ccz-cross)을 입력하고 추가버튼을 통해 &lt;b&gt;index.xml&lt;/b&gt;, &lt;b&gt;skin.html&lt;/b&gt;, &lt;b&gt;style.css&lt;/b&gt;, &lt;b&gt;preview.gif&lt;/b&gt; 및 images 폴더의 모든 파일을 업로드하고 저장합니다.&lt;/li&gt;
&lt;li&gt;보관함 탭의 등록된 스킨을 적용합니다.&lt;/li&gt;&lt;/ol&gt;
&lt;h4&gt;스킨설정&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;꾸미기의 스킨편집 &gt; 홈 화면 꾸미기
&lt;ul&gt;
&lt;li&gt;홈 화면 글 수, 글 목록 글 수를 설정합니다.&lt;/li&gt;
&lt;li&gt;글 목록 형태를 목록+내용으로 설정합니다.&lt;/li&gt;
&lt;li&gt;태그 클라우드 순서를 인기순으로 설정합니다.&lt;/li&gt;
&lt;li&gt;댓글 펼침의 댓글펼침을 활성화합니다.&lt;/li&gt;
&lt;li&gt;사이드바 태그를 인기순으로 설정합니다.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;꾸미기의 사이드바에서 원하는 모듈을 등록하고 저장합니다.&lt;/li&gt;
&lt;li&gt;꾸미기의 메뉴에서 원하는 메뉴를 설정합니다.&lt;/li&gt;
&lt;li&gt;꾸미기의 모바일에서 티스토리 모바일웹 자동 연결을 '사용하지 않습니다.' 로 설정합니다.&lt;/li&gt;
&lt;li&gt;꾸미기의 설정에서 블로그 '메뉴바를 표시합니다.' 로 설정합니다.&lt;/li&gt;

&lt;li&gt;플러그인의 플러그인 설정에서 블로그 아이콘 표시 플러그인을 활성화(64x64) 합니다.&lt;/li&gt;
&lt;li&gt;환경설정의 기본 정보에서 블로그 정보탭의 블로그 화면 이미지와 아이콘을 등록합니다(개인이 준비).&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;스킨 옵션설정&lt;/h3&gt;
&lt;p&gt;images 폴더내의 &lt;b&gt;main.js&lt;/b&gt;에는 몇가지 옵션을 설정할 수 있는 트리거가 준비되어 있습니다. main.js 파일을 메모장이나 기타 편집기로 열어보면 문서의 초입에&amp;nbsp;아래의 구문을 발견할 수 있습니다.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;var setting = {

	activeCate: true,    //현재카테고리위치 표기 
	autoLink: true,      //댓글,방명록 자동링크
	extendThumb: false,  //썸네일 확장
	newIcon: true,    	 //new 아이콘 변경여부
	preloader: false,    //프리로드 활성화
	searchTag: true,  	 //검색시에 우선순위태그를 보여줌
	searchTagCount: 8,   //보여줄 우선순위태그 갯수
	tbHide: true,        //트랙백숨기기
	timeChange: true    //포스트,댓글,방명록 날짜표기 변경 
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;각각의 옵션은 &lt;code&gt;true&lt;/code&gt; 와 &lt;code&gt;false&lt;/code&gt; 값으로, 활성/비활성화 됩니다.&lt;/p&gt;
&lt;h4&gt;activeCate&lt;/h4&gt;
&lt;p&gt;티스토리에서 제공하는 카테고리의 현재 위치 표기가 불량이라 이를 지원하기 위해 새로 만든 옵션입니다. 이후에 티스토리측에서 정상적인 형태로 제공하게 된다면 비활성화 하시면 됩니다.&lt;/p&gt;
&lt;h4&gt;autoLink&lt;/h4&gt;
&lt;p&gt;댓글과 방명록에 링크형식(ex. http://www.tistory.com)의 문자들을 실제 클릭 가능한 링크로 변환하는 옵션입니다. 댓글이 많이 달리는 블로그라면 성능에 영향을 미칠수 있으며, 악의적인 링크연결을 방지하고 싶다면 비활성화 하세요.&lt;/p&gt;
&lt;h4&gt;extendThumb&lt;/h4&gt;
&lt;p&gt;홈화면 또는 카테고리 목록에서 유투브, 비메오, 다음tv팟, 사운드클라우드, 데일리모션과 같은 멀티미어 서비스들의 썸네일을 추가하는 옵션입니다. 관련 서비스들을 이용한 글을 주로 작성한다면 이를 활성화하세요.&lt;/p&gt;
&lt;h4&gt;newIcon&lt;/h4&gt;
&lt;p&gt;새 글을 알리는 NEW 아이콘을 변경하는 옵션입니다. 기존의 이미지형 아이콘은 세로 정렬에 한계가 있어 준비했지만 원치 않는다면 비활성화 하세요.&lt;/p&gt;
&lt;h4&gt;preloader&lt;/h4&gt;
&lt;p&gt;해당 스킨은 스크립트로 변경되는 부분이 존재하며, 이를 콘텐츠가 노출된 상태에서 변경되는 과정을 감추기 위해서 &lt;a href=&quot;http://webdir.tistory.com/416&quot; target=&quot;_blank&quot;&gt;FOUC&lt;/a&gt; 처리가 기본으로 적용되어 있습니다. 다만, 로딩이 길어질 경우 빈 화면을 노출하고 있기에 기호에 따라 로딩 이미지로 대체할 수 있도록 이 옵션을 제공합니다. 활성화하면 페이지 로딩시에 아래와 같은 이미지가 제공됩니다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 95px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26593649567C072216&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26593649567C072216&quot; width=&quot;95&quot; height=&quot;73&quot; filename=&quot;preloader.gif&quot; filemime=&quot;image/gif&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;searchTag&lt;/h4&gt;
&lt;p&gt;검색시에 보여줄 추천 검색어를 인기태그를 활용해 제공합니다. &lt;del&gt;해당 스킨이 기본적으로 태그를 인기태그로 변경하나 변경되지 않는다면&lt;/del&gt; 직접 관리 페이지의 화면설정 → 화면출력에서 사이드바 태그를&amp;nbsp;인기순으로 변경하시길 바랍니다.&lt;/p&gt;
&lt;h4&gt;searchTagCount&lt;/h4&gt;
&lt;p&gt;위의 searchTag 옵션 활성화시에 보여줄 추천 검색어의 갯수를 설정합니다.&lt;/p&gt;
&lt;h4&gt;tbHide&lt;/h4&gt;
&lt;p&gt;엮인글(트랙백)과 관련된 내용을 숨깁니다. 엮인글을 사용하시는 경우 비활성화 하세요.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;본문 하단의 엮인글 영역&lt;/li&gt;
&lt;li&gt;사이드바의 엮인글 영역&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;timeChange&lt;/h4&gt;
&lt;p&gt;날짜표기 방식을 2015.09.07 과 같은 방식에서 3개월전, 몇시간전과 같이 현재를 기준으로 지난 시간을 표기합니다.&lt;/p&gt;
&lt;div class=&quot;alert alert-modern&quot;&gt;기타 궁금하신 내용은 &lt;a href=&quot;http://ccz-cross.tistory.com/&quot; target=&quot;_blank&quot;&gt;CCZ-CROSS 데모페이지&lt;/a&gt;에서 살펴보시기 바랍니다. &lt;/div&gt;
&lt;h3&gt;패치노트&lt;/h3&gt;
&lt;p&gt;파일을 수정할때 마다 위의 다운로드 파일을 갱신하고 있습니다. 스킨을 수정해서 사용하시는 분들은 전체를 변경하기 어려우실꺼라 생각되어 &lt;a class=&quot;tx-link&quot; href=&quot;http://webdir.tistory.com/496&quot;&gt;패치내역&lt;/a&gt; 을 따로 공개하고 있습니다.&lt;/p&gt;
&lt;p&gt;스킨을 사용하시면서 발견되는 미흡한 부분에 대해서 많은 제보 부탁드립니다.&lt;/p&gt;
&lt;h4&gt;알려진 문제점&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;각종 서식, 디자인의 스타일 및 위치정렬과 관련된 문제&lt;/s&gt; - 2015.12.29/2015.12.31 패치&lt;/li&gt;
&lt;li&gt;&lt;s&gt;댓글 및 방명록 작성후, 신규 댓글이나 답글을 작성할 수 없었던 문제&lt;/s&gt; - 2016.01.04 패치&lt;/li&gt;
&lt;li&gt;MAC 운영체제의 크롬브라우저에서 검색이 작동하지 않는 문제 - 티스토리측에서 확인중&lt;/li&gt;
&lt;li&gt;카테고리명에 '&lt;code&gt;/&lt;/code&gt;' 문자가 들어있을 경우, 카테고리명 노출이 오작동을 일으킴(ex. C/C++) - &lt;code&gt;,&lt;/code&gt; 나 &lt;code&gt;&amp;amp;&lt;/code&gt; 같은 다른 문자 사용추천&lt;/li&gt;
&lt;li&gt;카테고리 및 검색결과등의 목록이 보이지 않는 경우 - 스킨을 적용한 후, 관리자 페이지의 꾸미기의 화면설정메뉴로 이동한 후 화면출력의 선택화면 글 목록의 갯수와 표기화면을 목록+내용으로 전환합니다. 이미 표기화면이 목록+내용으로 되어 있어도 다른 방식으로 변경후 저장하고 다시 목록+내용으로 변경해보세요.&lt;/li&gt;
&lt;li&gt;티스토리의 신고기능 업데이트로 인해 기존의 날짜표기 변경 기능이 정상적으로 작동하지 않습니다. 관련해서 &lt;a href=&quot;https://github.com/uzugoer/CCZ-CROSS/commit/77acd0a15d6f80705945666a412620995b376319&quot;&gt;업데이트 사항&lt;/a&gt;을 참고하세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>티스토리/스킨배포</category>
      <category>스킨</category>
      <category>티스토리</category>
      <author>흉내쟁이</author>
      <guid isPermaLink="true">https://webdir.tistory.com/491</guid>
      <comments>https://webdir.tistory.com/491#entry491comment</comments>
      <pubDate>Sat, 26 Dec 2015 10:33:46 +0900</pubDate>
    </item>
  </channel>
</rss>