<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>만두야닷컴</title>
    <link>https://azit4u.tistory.com/</link>
    <description>php, 영카트, 고도몰, 커스터마이징, 웹프로그래머, 개발자 , jquery, 튜닝, 견적의뢰</description>
    <language>ko</language>
    <pubDate>Sun, 10 May 2026 00:47:58 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>만두남</managingEditor>
    <image>
      <title>만두야닷컴</title>
      <url>https://t1.daumcdn.net/cfile/tistory/2475334A52F33EA31F</url>
      <link>https://azit4u.tistory.com</link>
    </image>
    <item>
      <title>PHP 로 특정 아이피 차단</title>
      <link>https://azit4u.tistory.com/entry/PHP-%EB%A1%9C-%ED%8A%B9%EC%A0%95-%EC%95%84%EC%9D%B4%ED%94%BC-%EC%B0%A8%EB%8B%A8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1개의 아이피만 차단 할때&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1732445865793&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
// 차단할 IP 주소
$blocked_ip = '192.168.0.1';

// 사용자의 IP 주소 가져오기
$user_ip = $_SERVER['REMOTE_ADDR'];

// 사용자의 IP가 차단된 IP와 일치하는 경우
if ($user_ip === $blocked_ip) {
    header('HTTP/1.1 403 Forbidden'); // HTTP 상태 코드 403 전송
    echo '접근이 차단되었습니다. (Your access has been blocked)';
    exit; // 스크립트 실행 중단
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;여러개의 아이피를 차단 할 때&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1732445894175&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
// 차단할 IP 리스트
$blocked_ips = [
    '192.168.0.1',  // 특정 IP
    '203.0.113.45', // 특정 IP
    '203.0.113.*'   // 특정 대역 (와일드카드 사용)
];

// 사용자의 IP 주소 가져오기
$user_ip = $_SERVER['REMOTE_ADDR'];

// IP 주소 차단 여부 확인
$block = false;
foreach ($blocked_ips as $blocked_ip) {
    // 와일드카드(*)가 포함된 경우
    if (strpos($blocked_ip, '*') !== false) {
        // 와일드카드를 정규식으로 변환
        $pattern = str_replace('*', '.*', preg_quote($blocked_ip, '/'));
        if (preg_match(&quot;/^$pattern$/&quot;, $user_ip)) {
            $block = true;
            break;
        }
    } elseif ($user_ip === $blocked_ip) {
        $block = true;
        break;
    }
}

// 차단된 경우 메시지 출력 후 중단
if ($block) {
    header('HTTP/1.1 403 Forbidden'); // HTTP 403 상태 코드 전송
    echo '접근이 차단되었습니다. (Your access has been blocked)';
    exit;
}
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/78</guid>
      <comments>https://azit4u.tistory.com/entry/PHP-%EB%A1%9C-%ED%8A%B9%EC%A0%95-%EC%95%84%EC%9D%B4%ED%94%BC-%EC%B0%A8%EB%8B%A8#entry78comment</comments>
      <pubDate>Wed, 27 Nov 2024 00:35:31 +0900</pubDate>
    </item>
    <item>
      <title>JQuery &amp;amp; Ajax &amp;amp; Json  예제</title>
      <link>https://azit4u.tistory.com/entry/JQuery-Ajax-Json-%EC%98%88%EC%A0%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. &lt;b&gt;클라이언트: jQuery Ajax 요청&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GET 요청 (데이터 조회)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트가 서버에서 데이터를 조회하는 GET 요청입니다. 서버로부터 받은 &lt;code&gt;response&lt;/code&gt;를 &lt;code&gt;if&lt;/code&gt; 조건문으로 처리합니다.&lt;/p&gt;
&lt;pre class=&quot;scilab&quot;&gt;&lt;code&gt;$.ajax({
  url: &quot;server.php&quot;, // PHP 파일 경로
  type: &quot;GET&quot;, // GET 요청
  dataType: &quot;json&quot;, // 서버에서 받을 데이터 형식
  success: function(response) {
    // 응답 결과 처리
    if (response.status === &quot;success&quot;) {
      console.log(&quot;요청 성공:&quot;, response.message);
      console.log(&quot;받은 데이터:&quot;, response.data);
      // 성공 시 추가 작업
      alert(&quot;데이터를 성공적으로 가져왔습니다!&quot;);
    } else {
      console.error(&quot;요청 실패:&quot;, response.message);
      alert(&quot;에러 발생: &quot; + response.message);
    }
  },
  error: function(xhr, status, error) {
    console.error(&quot;Ajax 요청 실패:&quot;, error);
    alert(&quot;서버와의 통신 중 문제가 발생했습니다.&quot;);
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;POST 요청 (데이터 전송)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트가 데이터를 서버로 전송하는 POST 요청입니다. 서버 응답에 따라 성공/실패를 처리합니다.&lt;/p&gt;
&lt;pre class=&quot;scilab&quot;&gt;&lt;code&gt;$.ajax({
  url: &quot;server.php&quot;, // PHP 파일 경로
  type: &quot;POST&quot;, // POST 요청
  contentType: &quot;application/json&quot;, // 데이터 형식
  data: JSON.stringify({ name: &quot;Jane&quot;, age: 30 }), // JSON 데이터 전송
  dataType: &quot;json&quot;, // 서버에서 받을 데이터 형식
  success: function(response) {
    // 응답 결과 처리
    if (response.status === &quot;success&quot;) {
      console.log(&quot;POST 요청 성공:&quot;, response.message);
      console.log(&quot;받은 데이터:&quot;, response.data);
      alert(&quot;데이터 전송에 성공했습니다!&quot;);
    } else {
      console.error(&quot;POST 요청 실패:&quot;, response.message);
      alert(&quot;에러 발생: &quot; + response.message);
    }
  },
  error: function(xhr, status, error) {
    console.error(&quot;Ajax 요청 실패:&quot;, error);
    alert(&quot;서버와의 통신 중 문제가 발생했습니다.&quot;);
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. &lt;b&gt;서버: PHP 요청 처리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP에서 클라이언트의 GET 및 POST 요청을 처리하고, JSON 형식으로 응답을 반환합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GET 요청 처리&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;?php
header(&quot;Content-Type: application/json&quot;); // JSON 응답 헤더

// GET 요청에 대한 응답 데이터 생성
$response = [
    &quot;status&quot; =&amp;gt; &quot;success&quot;,
    &quot;message&quot; =&amp;gt; &quot;GET 요청이 성공적으로 처리되었습니다.&quot;,
    &quot;data&quot; =&amp;gt; [
        &quot;id&quot; =&amp;gt; 123,
        &quot;name&quot; =&amp;gt; &quot;John Doe&quot;,
        &quot;email&quot; =&amp;gt; &quot;john.doe@example.com&quot;
    ]
];

// JSON 데이터 반환
echo json_encode($response);
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;POST 요청 처리&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;?php
header(&quot;Content-Type: application/json&quot;); // JSON 응답 헤더

// POST 요청 데이터 읽기
$input = file_get_contents(&quot;php://input&quot;); // JSON 데이터 읽기
$data = json_decode($input, true); // JSON 데이터를 PHP 배열로 변환

// 데이터 유효성 검사 및 처리
if (isset($data['name']) &amp;amp;&amp;amp; isset($data['age'])) {
    // 성공 응답 데이터 생성
    $response = [
        &quot;status&quot; =&amp;gt; &quot;success&quot;,
        &quot;message&quot; =&amp;gt; &quot;POST 요청이 성공적으로 처리되었습니다.&quot;,
        &quot;data&quot; =&amp;gt; [
            &quot;name&quot; =&amp;gt; $data['name'],
            &quot;age&quot; =&amp;gt; $data['age']
        ]
    ];
} else {
    // 실패 응답 데이터 생성
    $response = [
        &quot;status&quot; =&amp;gt; &quot;error&quot;,
        &quot;message&quot; =&amp;gt; &quot;유효하지 않은 요청 데이터입니다.&quot;
    ];
}

// JSON 데이터 반환
echo json_encode($response);
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. &lt;b&gt;응답 결과 처리 흐름&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GET 요청 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트가 GET 요청을 보냈을 때 서버가 반환한 JSON 응답:&lt;/p&gt;
&lt;pre class=&quot;json&quot;&gt;&lt;code&gt;{
  &quot;status&quot;: &quot;success&quot;,
  &quot;message&quot;: &quot;GET 요청이 성공적으로 처리되었습니다.&quot;,
  &quot;data&quot;: {
    &quot;id&quot;: 123,
    &quot;name&quot;: &quot;John Doe&quot;,
    &quot;email&quot;: &quot;john.doe@example.com&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우 클라이언트는 &lt;code&gt;if (response.status === &quot;success&quot;)&lt;/code&gt; 조건을 만족하므로 성공 처리 로직이 실행됩니다:&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;console.log(&quot;요청 성공:&quot;, response.message);
alert(&quot;데이터를 성공적으로 가져왔습니다!&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;POST 요청 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트가 아래 데이터를 전송했을 경우:&lt;/p&gt;
&lt;pre class=&quot;json&quot;&gt;&lt;code&gt;{ &quot;name&quot;: &quot;Jane&quot;, &quot;age&quot;: 30 }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버가 반환한 JSON 응답:&lt;/p&gt;
&lt;pre class=&quot;json&quot;&gt;&lt;code&gt;{
  &quot;status&quot;: &quot;success&quot;,
  &quot;message&quot;: &quot;POST 요청이 성공적으로 처리되었습니다.&quot;,
  &quot;data&quot;: {
    &quot;name&quot;: &quot;Jane&quot;,
    &quot;age&quot;: 30
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트는 &lt;code&gt;if (response.status === &quot;success&quot;)&lt;/code&gt; 조건을 만족하므로 성공 처리 로직이 실행됩니다:&lt;/p&gt;
&lt;pre class=&quot;accesslog&quot;&gt;&lt;code&gt;console.log(&quot;POST 요청 성공:&quot;, response.message);
alert(&quot;데이터 전송에 성공했습니다!&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실패한 요청의 처리&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 클라이언트가 잘못된 데이터를 전송하거나 필요한 필드가 누락되었을 경우, 서버는 아래와 같은 실패 응답을 반환합니다:&lt;/p&gt;
&lt;pre class=&quot;json&quot;&gt;&lt;code&gt;{
  &quot;status&quot;: &quot;error&quot;,
  &quot;message&quot;: &quot;유효하지 않은 요청 데이터입니다.&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트는 &lt;code&gt;if (response.status === &quot;error&quot;)&lt;/code&gt; 조건을 만족하므로 실패 처리 로직이 실행됩니다:&lt;/p&gt;
&lt;pre class=&quot;accesslog&quot;&gt;&lt;code&gt;console.error(&quot;POST 요청 실패:&quot;, response.message);
alert(&quot;에러 발생: 유효하지 않은 요청 데이터입니다.&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/77</guid>
      <comments>https://azit4u.tistory.com/entry/JQuery-Ajax-Json-%EC%98%88%EC%A0%9C#entry77comment</comments>
      <pubDate>Tue, 26 Nov 2024 00:31:49 +0900</pubDate>
    </item>
    <item>
      <title>특정날짜 입력 시 요일 출력</title>
      <link>https://azit4u.tistory.com/entry/%ED%8A%B9%EC%A0%95%EB%82%A0%EC%A7%9C-%EC%9E%85%EB%A0%A5-%EC%8B%9C-%EC%9A%94%EC%9D%BC-%EC%B6%9C%EB%A0%A5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정날짜의 요일이 궁금할때 사용 하기위한 함수&lt;/p&gt;
&lt;pre id=&quot;code_1732446290562&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
// 날짜를 받아 요일을 반환하는 함수
function getDayOfWeek($date, $lang = 'ko') {
    // 요일 배열
    $days = [
        'ko' =&amp;gt; ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'],
        'en' =&amp;gt; ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    ];

    // 지정된 날짜의 요일 인덱스 (0: 일요일, 6: 토요일)
    $timestamp = strtotime($date);
    $dayIndex = date('w', $timestamp); // 0부터 6까지 반환

    // 요일 반환
    return $days[$lang][$dayIndex];
}

// 사용 예시
echo getDayOfWeek('2024-11-25'); // 결과: 월요일
echo getDayOfWeek('2024-11-25', 'en'); // 결과: Monday
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/76</guid>
      <comments>https://azit4u.tistory.com/entry/%ED%8A%B9%EC%A0%95%EB%82%A0%EC%A7%9C-%EC%9E%85%EB%A0%A5-%EC%8B%9C-%EC%9A%94%EC%9D%BC-%EC%B6%9C%EB%A0%A5#entry76comment</comments>
      <pubDate>Mon, 25 Nov 2024 11:18:22 +0900</pubDate>
    </item>
    <item>
      <title>JQuery ajax 사용법</title>
      <link>https://azit4u.tistory.com/entry/JQuery-ajax-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. &lt;b&gt;GET 요청 예제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GET 요청은 서버에서 데이터를 조회할 때 사용됩니다.&lt;/p&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;$.ajax({
  url: &quot;https://api.example.com/users&quot;, // 요청을 보낼 URL
  type: &quot;GET&quot;, // HTTP 요청 방식
  data: { id: 123 }, // 서버로 보낼 데이터 (쿼리 파라미터로 전달)
  dataType: &quot;json&quot;, // 서버로부터 받을 데이터 형식
  success: function(response) {
    console.log(&quot;요청 성공:&quot;, response); // 성공 시 실행
  },
  error: function(xhr, status, error) {
    console.error(&quot;요청 실패:&quot;, error); // 실패 시 실행
    console.error(&quot;상태 코드:&quot;, xhr.status); // HTTP 상태 코드 확인
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. &lt;b&gt;POST 요청 예제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;POST 요청은 서버에 데이터를 생성하거나 전송할 때 사용됩니다.&lt;/p&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;$.ajax({
  url: &quot;https://api.example.com/users&quot;, // 요청을 보낼 URL
  type: &quot;POST&quot;, // HTTP 요청 방식
  contentType: &quot;application/json&quot;, // 전송 데이터가 JSON 형식임을 명시
  data: JSON.stringify({ name: &quot;John&quot;, age: 30 }), // JSON 문자열로 변환하여 전송
  success: function(response) {
    console.log(&quot;요청 성공:&quot;, response); // 성공 시 실행
  },
  error: function(xhr, status, error) {
    console.error(&quot;요청 실패:&quot;, error); // 실패 시 실행
    console.error(&quot;상태 코드:&quot;, xhr.status); // HTTP 상태 코드 확인
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. &lt;b&gt;JSON 데이터 수신 예제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버에서 JSON 데이터를 받아와 처리하는 간단한 예제입니다.&lt;/p&gt;
&lt;pre class=&quot;scilab&quot;&gt;&lt;code&gt;$.ajax({
  url: &quot;https://api.example.com/data&quot;, // 요청을 보낼 URL
  type: &quot;GET&quot;, // HTTP 요청 방식
  dataType: &quot;json&quot;, // 서버 응답 형식이 JSON임을 명시
  success: function(response) {
    console.log(&quot;수신한 데이터:&quot;, response); // JSON 데이터 출력
  },
  error: function(xhr, status, error) {
    console.error(&quot;요청 실패:&quot;, error); // 실패 시 실행
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. &lt;b&gt;에러 처리와 상태 코드 확인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ajax 요청의 실패 상황을 처리하고 상태 코드를 확인하는 예제입니다.&lt;/p&gt;
&lt;pre class=&quot;scilab&quot;&gt;&lt;code&gt;$.ajax({
  url: &quot;https://api.example.com/data&quot;,
  type: &quot;GET&quot;,
  success: function(response) {
    console.log(&quot;요청 성공:&quot;, response);
  },
  error: function(xhr, status, error) {
    console.error(&quot;요청 실패:&quot;, error);
    console.error(&quot;HTTP 상태 코드:&quot;, xhr.status); // 예: 404, 500
    console.error(&quot;서버 응답 메시지:&quot;, xhr.responseText); // 서버가 반환한 메시지
  }
});&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. &lt;b&gt;로딩 스피너와 함께 요청 처리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로딩 스피너를 표시하고 요청 완료 후 숨기는 예제입니다.&lt;/p&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;$.ajax({
  url: &quot;https://api.example.com/data&quot;,
  type: &quot;GET&quot;,
  beforeSend: function() {
    $(&quot;#loading&quot;).show(); // 로딩 스피너 표시
  },
  complete: function() {
    $(&quot;#loading&quot;).hide(); // 로딩 스피너 숨김
  },
  success: function(response) {
    console.log(&quot;요청 성공:&quot;, response);
  },
  error: function(xhr, status, error) {
    console.error(&quot;요청 실패:&quot;, error);
  }
});&lt;/code&gt;&lt;/pre&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/75</guid>
      <comments>https://azit4u.tistory.com/entry/JQuery-ajax-%EC%82%AC%EC%9A%A9%EB%B2%95#entry75comment</comments>
      <pubDate>Sun, 24 Nov 2024 15:19:24 +0900</pubDate>
    </item>
    <item>
      <title>PHP 회원가입에 필요한 정규식</title>
      <link>https://azit4u.tistory.com/entry/PHP-%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%A0%95%EA%B7%9C%EC%8B%9D</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PHP 회원가입 정규표현식 완벽 가이드&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;필수 검증 항목&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;회원가입 필수 검증 요소&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&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;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;검증 클래스 구현&lt;/h2&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;class ValidationHelper {
    private $errors = [];

    // 에러 메시지 설정
    public function addError($field, $message) {
        $this-&amp;gt;errors[$field] = $message;
    }

    // 에러 메시지 반환
    public function getErrors() {
        return $this-&amp;gt;errors;
    }

    // 검증 통과 여부
    public function isPassed() {
        return empty($this-&amp;gt;errors);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;세부 검증 함수&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 아이디 검증&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function validateUserId($userId) {
    // 영문 소문자, 숫자 조합 5~20자
    $pattern = '/^[a-z0-9]{5,20}$/';

    // 숫자로 시작하는 경우 제외
    if (preg_match('/^[0-9]/', $userId)) {
        return false;
    }

    return preg_match($pattern, $userId);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 비밀번호 검증&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function validatePassword($password) {
    // 최소 8자, 최대 20자
    // 영문 대소문자, 숫자, 특수문자 중 3가지 이상 조합
    $pattern = '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&amp;amp;#])[A-Za-z\d@$!%*?&amp;amp;#]{8,20}$/';

    // 연속된 문자/숫자 체크 (4자리 이상)
    if (preg_match('/(.)\1{3,}/', $password)) {
        return false;
    }

    return preg_match($pattern, $password);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 이메일 검증&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;taggerscript&quot;&gt;&lt;code&gt;function validateEmail($email) {
    // RFC 5322 표준 준수
    $pattern = '/^(?:[a-z0-9!#$%&amp;amp;\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;amp;\'*+\/=?^_`{|}~-]+)*|&quot;(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*&quot;)@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i';

    return preg_match($pattern, $email) &amp;amp;&amp;amp; strlen($email) &amp;lt;= 254;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 이름 검증&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;function validateName($name, $type = 'ko') {
    if ($type === 'ko') {
        // 한글 이름 2~5자 (공백 허용하지 않음)
        return preg_match('/^[가-힣]{2,5}$/u', $name);
    } else {
        // 영문 이름 2~20자 (공백, 하이픈 허용)
        return preg_match('/^[a-zA-Z][a-zA-Z\s-]{1,19}$/u', $name);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 전화번호 검증&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function validatePhone($phone) {
    // 숫자만 추출
    $phone = preg_replace('/[^0-9]/', '', $phone);

    // 휴대폰 번호 패턴
    $mobilePattern = '/^01[016789]\d{7,8}$/';

    // 일반 전화번호 패턴
    $telPattern = '/^0[2-6]\d{7,8}$/';

    return preg_match($mobilePattern, $phone) || preg_match($telPattern, $phone);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. 생년월일 검증&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function validateBirthdate($birthdate) {
    // YYYY-MM-DD 형식 검증
    $pattern = '/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/';

    if (!preg_match($pattern, $birthdate)) {
        return false;
    }

    // 날짜 유효성 검증
    $parts = explode('-', $birthdate);
    $year = intval($parts[0]);

    // 현실적인 생년월일 범위 체크 (1900년 이후, 현재까지)
    if ($year &amp;lt; 1900 || $year &amp;gt; date('Y')) {
        return false;
    }

    return checkdate($parts[1], $parts[2], $parts[0]);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;통합 검증 예제&lt;/h2&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;class UserValidator {
    private $validation;

    public function __construct() {
        $this-&amp;gt;validation = new ValidationHelper();
    }

    public function validateRegistration($data) {
        // 아이디 검증
        if (!validateUserId($data['user_id'])) {
            $this-&amp;gt;validation-&amp;gt;addError('user_id', '아이디는 영문 소문자, 숫자 조합 5~20자여야 합니다.');
        }

        // 비밀번호 검증
        if (!validatePassword($data['password'])) {
            $this-&amp;gt;validation-&amp;gt;addError('password', '비밀번호는 8~20자의 영문 대/소문자, 숫자, 특수문자 조합이어야 합니다.');
        }

        // 비밀번호 확인 검증
        if ($data['password'] !== $data['password_confirm']) {
            $this-&amp;gt;validation-&amp;gt;addError('password_confirm', '비밀번호가 일치하지 않습니다.');
        }

        // 이메일 검증
        if (!validateEmail($data['email'])) {
            $this-&amp;gt;validation-&amp;gt;addError('email', '유효하지 않은 이메일 형식입니다.');
        }

        return $this-&amp;gt;validation-&amp;gt;isPassed();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/74</guid>
      <comments>https://azit4u.tistory.com/entry/PHP-%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EC%A0%95%EA%B7%9C%EC%8B%9D#entry74comment</comments>
      <pubDate>Sat, 23 Nov 2024 00:55:33 +0900</pubDate>
    </item>
    <item>
      <title>PHP 정규표현식</title>
      <link>https://azit4u.tistory.com/entry/PHP-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;기본 함수들&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주요 PHP 정규식 함수&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;preg_match(): 패턴 일치 여부 확인 (첫 번째 일치만 반환)&lt;/li&gt;
&lt;li&gt;preg_match_all(): 모든 패턴 일치 검색&lt;/li&gt;
&lt;li&gt;preg_replace(): 패턴 일치 문자열 치환&lt;/li&gt;
&lt;li&gt;preg_split(): 패턴으로 문자열 분할&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;정규식 패턴 작성법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정규표현식은 구분자(일반적으로 '/')로 감싸며, 선택적으로 플래그를 추가할 수 있습니다:&lt;/p&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;$pattern = '/검색패턴/플래그';&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;실용적인 예제와 설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 이메일 유효성 검사&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function validateEmail($email) {
    $pattern = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/';
    if (!preg_match($pattern, $email)) {
        return false;
    }
    return true;
}

// 사용 예
$email = &quot;test@example.com&quot;;
if (validateEmail($email)) {
    echo &quot;유효한 이메일입니다&quot;;
} else {
    echo &quot;유효하지 않은 이메일입니다&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 안전한 문자열 분할&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;$text = &quot;PHP,Python,JavaScript&quot;;
$pattern = '/,/';
$result = preg_split($pattern, $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($result);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 전화번호 형식 변환&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function formatPhoneNumber($phone) {
    // 숫자만 추출
    $phone = preg_replace('/[^0-9]/', '', $phone);

    // 패턴에 따라 형식화
    if (strlen($phone) === 11) {
        return preg_replace('/(\d{3})(\d{4})(\d{4})/', '$1-$2-$3', $phone);
    }
    return false;
}

$phone = &quot;01012345678&quot;;
echo formatPhoneNumber($phone); // 출력: 010-1234-5678&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;자주 사용되는 메타문자&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기본 메타문자&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;\d: 숫자 [0-9]&lt;/li&gt;
&lt;li&gt;\w: 단어 문자 [a-zA-Z0-9_]&lt;/li&gt;
&lt;li&gt;\s: 공백 문자&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수량자&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;+: 1회 이상&lt;/li&gt;
&lt;li&gt;*: 0회 이상&lt;/li&gt;
&lt;li&gt;?: 0회 또는 1회&lt;/li&gt;
&lt;li&gt;{n}: 정확히 n회&lt;/li&gt;
&lt;li&gt;{n,}: n회 이상&lt;/li&gt;
&lt;li&gt;{n,m}: n회 이상 m회 이하&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;플래그 옵션&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주요 플래그&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;i: 대소문자 구분 안함&lt;/li&gt;
&lt;li&gt;m: 다중행 모드&lt;/li&gt;
&lt;li&gt;s: .이 개행 문자도 포함하도록 함&lt;/li&gt;
&lt;li&gt;u: UTF-8 모드 (한글 등 멀티바이트 문자 처리)&lt;/li&gt;
&lt;li&gt;x: 공백 무시 및 주석 허용&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;실전 활용 예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 보안을 고려한 한글 이름 검증&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function validateKoreanName($name) {
    if (mb_strlen($name) &amp;gt; 20) return false;
    return preg_match('/^[가-힣]{2,20}$/', $name);
}

$name = &quot;홍길동&quot;;
if (validateKoreanName($name)) {
    echo &quot;올바른 이름 형식입니다&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 안전한 숫자 추출&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;function extractNumbers($text) {
    if (preg_match_all('/\d+/', $text, $matches)) {
        return $matches[0];
    }
    return [];
}

$text = &quot;가격은 12,345원입니다&quot;;
$numbers = extractNumbers($text);
print_r($numbers); // Array([0] =&amp;gt; 12 [1] =&amp;gt; 345)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/73</guid>
      <comments>https://azit4u.tistory.com/entry/PHP-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D#entry73comment</comments>
      <pubDate>Fri, 22 Nov 2024 13:52:41 +0900</pubDate>
    </item>
    <item>
      <title>PHP 배열 함수 정리</title>
      <link>https://azit4u.tistory.com/entry/PHP-%EB%B0%B0%EC%97%B4-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC</link>
      <description>&lt;h1&gt;PHP 배열 함수 총정리&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;기본 배열 생성 및 조작&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;배열 생성&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;// 1. 기본 배열 생성 - 두 가지 방법 모두 동일한 결과
$fruits = array(&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;);  // 전통적인 방법
$fruits = [&quot;apple&quot;, &quot;banana&quot;, &quot;orange&quot;];       // PHP 5.4+ 단축 구문
print_r($fruits); 
// 결과: Array ( [0] =&amp;gt; apple [1] =&amp;gt; banana [2] =&amp;gt; orange )

// 2. 키와 값을 결합하여 연관 배열 생성
$keys = [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;];
$values = [1, 2, 3];
$result = array_combine($keys, $values);  // 키 배열과 값 배열을 결합
print_r($result); 
// 결과: Array ( [a] =&amp;gt; 1 [b] =&amp;gt; 2 [c] =&amp;gt; 3 )&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;요소 추가/제거&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;awk&quot;&gt;&lt;code&gt;// 1. 스택 구조 구현 (LIFO: Last In First Out)
$stack = [&quot;orange&quot;, &quot;banana&quot;];
array_push($stack, &quot;apple&quot;, &quot;mango&quot;);    // 배열 끝에 여러 요소 추가
print_r($stack); 
// 결과: Array ( [0] =&amp;gt; orange [1] =&amp;gt; banana [2] =&amp;gt; apple [3] =&amp;gt; mango )
$last = array_pop($stack);               // 마지막 요소 제거 후 반환
// $last에는 &quot;mango&quot; 저장됨

// 2. 큐 구조 구현 (FIFO: First In First Out)
$queue = [&quot;orange&quot;, &quot;banana&quot;];
array_unshift($queue, &quot;apple&quot;);          // 배열 앞에 요소 추가
print_r($queue); 
// 결과: Array ( [0] =&amp;gt; apple [1] =&amp;gt; orange [2] =&amp;gt; banana )
$first = array_shift($queue);            // 첫 번째 요소 제거 후 반환
// $first에는 &quot;apple&quot; 저장됨&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;배열 검색 및 필터링&lt;/h2&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;// 1. 배열 검색 함수들
$array = [&quot;name&quot; =&amp;gt; &quot;John&quot;, &quot;age&quot; =&amp;gt; 30];
$key = array_search(&quot;John&quot;, $array);     // 값으로 키 찾기
// 결과: &quot;name&quot;
$exists = array_key_exists(&quot;age&quot;, $array); // 키 존재 여부 확인
// 결과: true
$exists = in_array(&quot;John&quot;, $array);      // 값 존재 여부 확인
// 결과: true

// 2. 조건에 맞는 요소만 필터링
$numbers = [1, 2, 3, 4, 5, 6];
$even = array_filter($numbers, function($n) {
    return $n % 2 == 0;                  // 짝수만 선택
});
print_r($even); 
// 결과: Array ( [1] =&amp;gt; 2 [3] =&amp;gt; 4 [5] =&amp;gt; 6 )

// 3. 중복 제거
$duplicate = [1, 2, 2, 3, 3, 4];
$unique = array_unique($duplicate);       // 중복 값 제거
print_r($unique); 
// 결과: Array ( [0] =&amp;gt; 1 [1] =&amp;gt; 2 [2] =&amp;gt; 3 [3] =&amp;gt; 4 )&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;배열 변환 및 처리&lt;/h2&gt;
&lt;pre class=&quot;php&quot;&gt;&lt;code&gt;// 1. 배열 정렬
$fruits = [&quot;banana&quot;, &quot;apple&quot;, &quot;orange&quot;];
sort($fruits);                           // 알파벳 순으로 정렬
print_r($fruits); 
// 결과: Array ( [0] =&amp;gt; apple [1] =&amp;gt; banana [2] =&amp;gt; orange )

// 2. 배열의 모든 요소를 변환
$numbers = [1, 2, 3, 4];
$doubled = array_map(function($n) {
    return $n * 2;                       // 각 요소를 2배로
}, $numbers);
print_r($doubled); 
// 결과: Array ( [0] =&amp;gt; 2 [1] =&amp;gt; 4 [2] =&amp;gt; 6 [3] =&amp;gt; 8 )

// 3. 배열의 모든 요소를 하나의 값으로 축소
$sum = array_reduce($numbers, function($carry, $item) {
    return $carry + $item;               // 모든 요소의 합 계산
}, 0);                                   // 0은 초기값
// 결과: 10&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;고급 배열 조작&lt;/h2&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;// 1. 배열을 작은 그룹으로 분할
$input = [1, 2, 3, 4, 5];
$chunks = array_chunk($input, 2);        // 2개씩 그룹화
print_r($chunks); 
// 결과: Array (
//   [0] =&amp;gt; Array([0]=&amp;gt;1 [1]=&amp;gt;2)
//   [1] =&amp;gt; Array([0]=&amp;gt;3 [1]=&amp;gt;4)
//   [2] =&amp;gt; Array([0]=&amp;gt;5)
// )

// 2. 배열의 키와 값 추출
$array = [&quot;name&quot; =&amp;gt; &quot;John&quot;, &quot;age&quot; =&amp;gt; 30];
$keys = array_keys($array);              // 모든 키를 배열로
print_r($keys); 
// 결과: Array ( [0] =&amp;gt; name [1] =&amp;gt; age )

$values = array_values($array);          // 모든 값을 배열로
print_r($values); 
// 결과: Array ( [0] =&amp;gt; John [1] =&amp;gt; 30 )

// 3. 여러 배열 병합
$array1 = [1, 2];
$array2 = [3, 4];
$merged = array_merge($array1, $array2);  // 배열들을 순서대로 병합
print_r($merged); 
// 결과: Array ( [0] =&amp;gt; 1 [1] =&amp;gt; 2 [2] =&amp;gt; 3 [3] =&amp;gt; 4 )&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;배열 분석&lt;/h2&gt;
&lt;pre class=&quot;stata&quot;&gt;&lt;code&gt;// 1. 기본 배열 분석
$array = [1, 2, 3, 4, 5];
$count = count($array);                  // 배열 요소 개수
// 결과: 5
$sum = array_sum($array);                // 모든 요소의 합
// 결과: 15
$product = array_product($array);        // 모든 요소의 곱
// 결과: 120

// 2. 배열 비교
$array1 = [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;];
$array2 = [&quot;b&quot;, &quot;c&quot;, &quot;d&quot;];
$diff = array_diff($array1, $array2);    // $array1에만 있는 요소 찾기
print_r($diff); 
// 결과: Array ( [0] =&amp;gt; a )&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/72</guid>
      <comments>https://azit4u.tistory.com/entry/PHP-%EB%B0%B0%EC%97%B4-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC#entry72comment</comments>
      <pubDate>Thu, 21 Nov 2024 01:57:28 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 압축/압축해제</title>
      <link>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%95%95%EC%B6%95%EC%95%95%EC%B6%95%ED%95%B4%EC%A0%9C</link>
      <description>&lt;h1&gt;리눅스 압축/압축해제 명령어 총정리 - 실무 필수 가이드&lt;/h1&gt;
&lt;h2&gt;1. 압축하기&lt;/h2&gt;
&lt;h3&gt;tar 압축&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 기본 tar 압축 (묶기만 함)
tar -cvf [파일명.tar] [압축할 파일/폴더]

# tar.gz 압축 (일반적으로 가장 많이 사용)
tar -zcvf [파일명.tar.gz] [압축할 파일/폴더]

# tar.bz2 압축 (높은 압축률)
tar -jcvf [파일명.tar.bz2] [압축할 파일/폴더]&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;zip 압축&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 파일 압축
zip [파일명.zip] [압축할 파일]

# 폴더 압축
zip -r [파일명.zip] [압축할 폴더]&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;gzip 압축&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 파일 압축 (원본 삭제됨)
gzip [파일명]

# 원본 유지하며 압축
gzip -c [파일명] &amp;gt; [파일명.gz]&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 압축해제&lt;/h2&gt;
&lt;h3&gt;tar 압축해제&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# tar 압축해제
tar -xvf [파일명.tar]

# tar.gz 압축해제
tar -zxvf [파일명.tar.gz]

# tar.bz2 압축해제
tar -jxvf [파일명.tar.bz2]

# 특정 경로에 압축해제
tar -xvf [파일명.tar] -C [경로]&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;zip 압축해제&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 기본 압축해제
unzip [파일명.zip]

# 특정 경로에 압축해제
unzip [파일명.zip] -d [경로]&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;gzip 압축해제&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 압축해제 (원본 삭제됨)
gzip -d [파일명.gz]
# 또는
gunzip [파일명.gz]&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;자주 사용하는 옵션 설명&lt;/h2&gt;
&lt;h3&gt;tar 옵션&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;c : 새로운 묶음 만들기&lt;/li&gt;
&lt;li&gt;x : 묶음 풀기&lt;/li&gt;
&lt;li&gt;v : 진행 과정 화면 출력&lt;/li&gt;
&lt;li&gt;f : 파일 이름 지정&lt;/li&gt;
&lt;li&gt;z : gzip 형식 사용&lt;/li&gt;
&lt;li&gt;j : bzip2 형식 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;zip/unzip 옵션&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;-r : 하위 디렉토리 포함&lt;/li&gt;
&lt;li&gt;-d : 압축 풀 경로 지정&lt;/li&gt;
&lt;li&gt;-q : 진행 과정 숨기기&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/71</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%95%95%EC%B6%95%EC%95%95%EC%B6%95%ED%95%B4%EC%A0%9C#entry71comment</comments>
      <pubDate>Wed, 20 Nov 2024 00:00:28 +0900</pubDate>
    </item>
    <item>
      <title>jQuery 체크박스 제어 [체크, 해제, 전체선택]</title>
      <link>https://azit4u.tistory.com/entry/jQuery-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4-%EC%A0%9C%EC%96%B4-%EC%B2%B4%ED%81%AC-%ED%95%B4%EC%A0%9C-%EC%A0%84%EC%B2%B4%EC%84%A0%ED%83%9D</link>
      <description>&lt;h1&gt;jQuery 체크박스 제어 완벽 가이드 - 체크, 해제, 전체선택 구현하기&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 개발을 하다 보면 체크박스를 다루는 일이 매우 빈번합니다. 특히 jQuery를 사용할 때 체크박스를 효율적으로 제어하는 방법을 알아야 합니다. 이 글에서는 jQuery를 사용한 체크박스 제어 방법을 상세히 알아보겠습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 체크박스 상태 확인하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;체크박스의 상태를 확인하는 것은 폼 처리에서 가장 기본적인 작업입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단일 체크박스 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;// ID로 확인
$(&quot;#checkbox_id&quot;).is(&quot;:checked&quot;);
$(&quot;input:checkbox[id=checkbox_id]&quot;).is(&quot;:checked&quot;);

// NAME으로 확인 
$(&quot;input:checkbox[name=checkbox_name]&quot;).is(&quot;:checked&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 체크박스 선택과 해제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;체크박스를 프로그래밍적으로 선택하거나 해제해야 할 때가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;전체 체크박스 제어&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;// 전체 선택
$(&quot;input:checkbox&quot;).prop(&quot;checked&quot;, true);

// 전체 해제
$(&quot;input:checkbox&quot;).prop(&quot;checked&quot;, false);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특정 체크박스 제어&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;// ID로 제어
$(&quot;#checkbox_id&quot;).prop(&quot;checked&quot;, true);

// NAME으로 제어
$(&quot;input:checkbox[name=checkbox_name]&quot;).prop(&quot;checked&quot;, true);&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 체크박스 개수 파악하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폼 유효성 검사나 데이터 처리를 위해 체크박스 개수를 확인해야 할 때가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;전체 개수와 선택된 개수 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;arcade&quot;&gt;&lt;code&gt;// 전체 체크박스 개수
$(&quot;input:checkbox&quot;).length;

// 선택된 체크박스 개수
$(&quot;input:checked&quot;).length;

// 특정 NAME을 가진 체크박스 개수
$(&quot;input:checkbox[name=checkbox_name]&quot;).length;

// 특정 NAME 중 선택된 체크박스 개수
$(&quot;input:checkbox[name=checkbox_name]:checked&quot;).length;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 전체선택 기능 구현하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서 가장 많이 사용되는 전체선택 기능을 구현해보겠습니다.&lt;/p&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;$(&quot;#select_all&quot;).on(&quot;click&quot;, function() {
    let isChecked = this.checked;
    $(&quot;.checkbox&quot;).each(function() {
        this.checked = isChecked;
    });
});

// 개별 체크박스 클릭 시 전체선택 상태 변경
$(&quot;.checkbox&quot;).on(&quot;click&quot;, function() {
    if($(&quot;.checkbox:checked&quot;).length == $(&quot;.checkbox&quot;).length) {
        $(&quot;#select_all&quot;).prop(&quot;checked&quot;, true);
    } else {
        $(&quot;#select_all&quot;).prop(&quot;checked&quot;, false);
    }
});&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/70</guid>
      <comments>https://azit4u.tistory.com/entry/jQuery-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4-%EC%A0%9C%EC%96%B4-%EC%B2%B4%ED%81%AC-%ED%95%B4%EC%A0%9C-%EC%A0%84%EC%B2%B4%EC%84%A0%ED%83%9D#entry70comment</comments>
      <pubDate>Tue, 19 Nov 2024 00:01:15 +0900</pubDate>
    </item>
    <item>
      <title>CSS로 말줄임표(Ellipsis)</title>
      <link>https://azit4u.tistory.com/entry/CSS%EB%A1%9C-%EB%A7%90%EC%A4%84%EC%9E%84%ED%91%9CEllipsis</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;한 줄 말줄임표 구현하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 기본적인 한 줄 말줄임표는 다음과 같은 CSS 코드로 구현할 수 있습니다[1]:&lt;/p&gt;
&lt;pre class=&quot;css&quot; data-ke-language=&quot;css&quot;&gt;&lt;code&gt;.single-line {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 200px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주요 속성 설명&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;white-space: nowrap으로 텍스트를 한 줄로 유지&lt;/li&gt;
&lt;li&gt;overflow: hidden으로 넘치는 텍스트를 숨김&lt;/li&gt;
&lt;li&gt;text-overflow: ellipsis로 말줄임표 표시&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;여러 줄 말줄임표 구현하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 줄의 텍스트를 말줄임표로 처리하려면 다음 코드를 사용합니다[2]:&lt;/p&gt;
&lt;pre class=&quot;css&quot; data-ke-language=&quot;css&quot;&gt;&lt;code&gt;.multi-line {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;사용자 경험 최적화 팁&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근성 고려사항&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;title 속성을 추가하여 전체 텍스트를 툴팁으로 제공&lt;/li&gt;
&lt;li&gt;스크린리더 사용자를 위한 aria-label 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;반응형 디자인&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;미디어 쿼리를 활용하여 화면 크기별 최적화&lt;/li&gt;
&lt;li&gt;유동적인 width 값 사용&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>웹표준&amp;amp;CSS</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/69</guid>
      <comments>https://azit4u.tistory.com/entry/CSS%EB%A1%9C-%EB%A7%90%EC%A4%84%EC%9E%84%ED%91%9CEllipsis#entry69comment</comments>
      <pubDate>Mon, 18 Nov 2024 20:23:23 +0900</pubDate>
    </item>
    <item>
      <title>CSS로 유튜브 반응형 코딩</title>
      <link>https://azit4u.tistory.com/entry/CSS%EB%A1%9C-%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EB%B0%98%EC%9D%91%ED%98%95-%EC%BD%94%EB%94%A9</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;CSS를 사용하여 유튜브 동영상을 반응형으로 만드는 방법을 설명하겠습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;HTML 구조&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 유튜브 iframe을 div로 감싸는 구조가 필요합니다:&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;video-wrap&quot;&amp;gt;
    &amp;lt;iframe 
        width=&quot;100%&quot; 
        height=&quot;315&quot;
        src=&quot;https://www.youtube.com/embed/VIDEO_ID&quot;
        title=&quot;YouTube video player&quot; 
        loading=&quot;lazy&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen&amp;gt;
    &amp;lt;/iframe&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;CSS 스타일링&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반응형 동영상을 위한 CSS 코드:&lt;/p&gt;
&lt;pre class=&quot;css&quot; data-ke-language=&quot;css&quot;&gt;&lt;code&gt;.video-wrap {
    position: relative;
    width: 100%;    
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.video-wrap iframe {    
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;    
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;작동 원리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방식이 작동하는 원리는 다음과 같습니다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;div 컨테이너에 &lt;code&gt;padding-bottom: 56.25%&lt;/code&gt;를 설정하여 16:9 비율을 유지합니다.&lt;/li&gt;
&lt;li&gt;iframe을 &lt;code&gt;position: absolute&lt;/code&gt;로 설정하여 컨테이너 내부에 고정시킵니다.&lt;/li&gt;
&lt;li&gt;컨테이너의 &lt;code&gt;height: 0&lt;/code&gt;과 &lt;code&gt;overflow: hidden&lt;/code&gt;은 컨텐츠가 정확한 비율로 표시되도록 보장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방식을 사용하면 자바스크립트 없이도 브라우저 크기가 변경될 때 자동으로 동영상 크기가 조절됩니다.&lt;/p&gt;</description>
      <category>웹표준&amp;amp;CSS</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/68</guid>
      <comments>https://azit4u.tistory.com/entry/CSS%EB%A1%9C-%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EB%B0%98%EC%9D%91%ED%98%95-%EC%BD%94%EB%94%A9#entry68comment</comments>
      <pubDate>Sun, 17 Nov 2024 14:57:31 +0900</pubDate>
    </item>
    <item>
      <title>Textarea 에 최대 글자 수 남은 글자 수 출력</title>
      <link>https://azit4u.tistory.com/entry/Textarea-%EC%97%90-%EC%B5%9C%EB%8C%80-%EA%B8%80%EC%9E%90-%EC%88%98-%EB%82%A8%EC%9D%80-%EA%B8%80%EC%9E%90-%EC%88%98-%EC%B6%9C%EB%A0%A5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731763936144&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(document).ready(function() {
    $('.textarea-count').each(function() {
        var $textarea = $(this);
        var $counter = $textarea.next('.character-counter');
        var maxLength = $textarea.attr('maxlength');
        
        // 초기 카운터 텍스트 설정
        $counter.text('0/' + maxLength);
        
        $textarea.on('input', function() {
            var text = $textarea.val();
            var currentLength = text.length;
            
            $counter.text(currentLength + '/' + maxLength);
            
            if(currentLength &amp;gt; maxLength) {
                $textarea.val(text.substring(0, maxLength));
                $counter.text(maxLength + '/' + maxLength);
            }
        });
    });
});&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1731763991061&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;textarea class=&quot;textarea-count&quot; maxlength=&quot;1000&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;div class=&quot;character-counter&quot;&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;textarea class=&quot;textarea-count&quot; maxlength=&quot;500&quot;&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;div class=&quot;character-counter&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. 결과&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JVBV2/btsKK36mYO4/9udyj5ryKsaopAaP2w9f01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JVBV2/btsKK36mYO4/9udyj5ryKsaopAaP2w9f01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JVBV2/btsKK36mYO4/9udyj5ryKsaopAaP2w9f01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJVBV2%2FbtsKK36mYO4%2F9udyj5ryKsaopAaP2w9f01%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;529&quot; height=&quot;318&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/67</guid>
      <comments>https://azit4u.tistory.com/entry/Textarea-%EC%97%90-%EC%B5%9C%EB%8C%80-%EA%B8%80%EC%9E%90-%EC%88%98-%EB%82%A8%EC%9D%80-%EA%B8%80%EC%9E%90-%EC%88%98-%EC%B6%9C%EB%A0%A5#entry67comment</comments>
      <pubDate>Sat, 16 Nov 2024 22:36:47 +0900</pubDate>
    </item>
    <item>
      <title>유튜브 주소에서 유튜브 영상 아이디 가져오기</title>
      <link>https://azit4u.tistory.com/entry/%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EC%A3%BC%EC%86%8C%EC%97%90%EC%84%9C-%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EC%98%81%EC%83%81-%EC%95%84%EC%9D%B4%EB%94%94-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 함수&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731655084177&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function getYoutubeId($url) {
    // 유튜브 URL 형식에 맞는 정규식 패턴 (youtu.be, youtube.com/watch, embed, v, shorts 지원)
    $pattern = '/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/))([^#&amp;amp;?]{11})/';
    
    // 정규식을 사용해 URL에서 비디오 ID 추출
    preg_match($pattern, $url, $matches);
    
    // 추출된 ID가 11자리인지 확인 후 반환, 아니면 false 반환
    return (isset($matches[1]) &amp;amp;&amp;amp; strlen($matches[1]) == 11) ? $matches[1] : false;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;background-color: oklch(0.99 0.004 106.471); color: oklch(0.304 0.04 213.681); text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731655799389&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$videoId = getYoutubeId($url);
echo $videoId;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 예제&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731655812285&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 사용 예제
$urls = [
    &quot;https://www.youtube.com/watch?v=abcd1234efg&quot;,
    &quot;https://youtu.be/abcd1234efg&quot;,
    &quot;https://www.youtube.com/embed/abcd1234efg&quot;,
    &quot;https://www.youtube.com/shorts/abcd1234efg&quot;,
    &quot;https://www.youtube.com/v/abcd1234efg&quot;,
    &quot;https://youtube.com/shorts/abcd1234efg?si=u3aq_zRejUsppB0W&quot;,
    &quot;https://youtu.be/abcd1234efg?si=uGSa0bsJfYVrH-MD&quot;,
];

foreach ($urls as $url) {
    $videoId = getYoutubeId($url);
    if ($videoId) {
        echo &quot;추출된 비디오 ID: $videoId\n&amp;lt;br&amp;gt;&quot;;
    } else {
        echo &quot;유효하지 않은 URL 또는 비디오 ID를 찾을 수 없습니다.\n&amp;lt;br&amp;gt;&quot;;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. 결과&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731655881712&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg
추출된 비디오 ID: abcd1234efg&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;background-color: oklch(0.99 0.004 106.471); color: oklch(0.304 0.04 213.681); text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. 지원되는 URL 형식&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: oklch(0.99 0.004 106.471); color: oklch(0.304 0.04 213.681); text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;기본 YouTube 동영상 URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;https://www.youtube.com/watch?v=dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;짧은 YouTube URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;https://youtu.be/dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;임베드(Embed) URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;https://www.youtube.com/embed/dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;YouTube Shorts URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;https://youtube.com/shorts/dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;쿼리 파라미터가 포함된 Shorts URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;https://youtube.com/shorts/abcd1234efg?si=u3aq_zRejUsppB0W&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;abcd1234efg&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;쿼리 파라미터가 포함된 짧은 URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;https://youtu.be/abcd1234efg?si=uGSa0bsJfYVrH-MD&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;abcd1234efg&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;추가 쿼리 파라미터가 포함된 기본 YouTube URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;https://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;amp;feature=youtu.be&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;플레이리스트가 포함된 기본 YouTube URL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;https://www.youtube.com/watch?v=dQw4w9WgXcQ&amp;amp;list=PLwxnUUM01nt2nMh9DPq09e6fIDbumybgt&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;추출된 ID&lt;/b&gt;&lt;/span&gt;&lt;span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;dQw4w9WgXcQ&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/66</guid>
      <comments>https://azit4u.tistory.com/entry/%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EC%A3%BC%EC%86%8C%EC%97%90%EC%84%9C-%EC%9C%A0%ED%8A%9C%EB%B8%8C-%EC%98%81%EC%83%81-%EC%95%84%EC%9D%B4%EB%94%94-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0#entry66comment</comments>
      <pubDate>Fri, 15 Nov 2024 16:32:19 +0900</pubDate>
    </item>
    <item>
      <title>두 날짜 사이의 날짜들을 배열로 반환 하는 함수</title>
      <link>https://azit4u.tistory.com/entry/%EB%91%90-%EB%82%A0%EC%A7%9C-%EC%82%AC%EC%9D%B4%EC%9D%98-%EB%82%A0%EC%A7%9C%EB%93%A4%EC%9D%84-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B0%98%ED%99%98-%ED%95%98%EB%8A%94-%ED%95%A8%EC%88%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;2024-11-13, 2024-11-16 일 입력하면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2024-11-13, 2024-11-14, 2024-11-15, 2024-11-16을 반환하는 함수를 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하면 시작날짜, 종료날짜를 각각 뺄 수 있게 만들었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;함수&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731557583918&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/**
 * 두 날짜 사이의 날짜들을 배열로 반환하는 함수
 * 
 * @param string $from     시작일 (YYYY-MM-DD 형식)
 * @param string $to       종료일 (YYYY-MM-DD 형식)
 * @param bool   $first    시작일 포함 여부 (true: 포함, false: 미포함)
 * @param bool   $last     종료일 포함 여부 (true: 포함, false: 미포함)
 * @return array|false     성공시 날짜 배열, 실패시 false 반환
 */
 
function getDates($from, $to, $first = true, $last = true) {
    try {
        // 날짜 형식 검증
        $dateFormat = 'Y-m-d';
        $d = DateTime::createFromFormat($dateFormat, $from);
        if (!$d || $d-&amp;gt;format($dateFormat) !== $from) {
            throw new Exception(&quot;잘못된 시작일 형식입니다. YYYY-MM-DD 형식으로 입력하세요.&quot;);
        }
        
        $d = DateTime::createFromFormat($dateFormat, $to);
        if (!$d || $d-&amp;gt;format($dateFormat) !== $to) {
            throw new Exception(&quot;잘못된 종료일 형식입니다. YYYY-MM-DD 형식으로 입력하세요.&quot;);
        }

        $start = new DateTime($from);
        $end = new DateTime($to);
        
        // 시작일이 종료일보다 크면 에러
        if ($start &amp;gt; $end) {
            throw new Exception(&quot;Error: 시작일($from)이 종료일($to)보다 늦습니다.&quot;);
        }
        
		// 배열 생성
        $dates = [];
        $curr = clone $start;
        
        // 시작일 제외시 하루 추가
        if (!$first) {
            $curr-&amp;gt;modify('+1 day');
        }
        
        // 종료일 제외시 하루 감소
        $endDay = clone $end;
        if (!$last) {
            $endDay-&amp;gt;modify('-1 day');
        }
        
        // 날짜 배열 생성
        while ($curr &amp;lt;= $endDay) {
            $dates[] = $curr-&amp;gt;format('Y-m-d');
            $curr-&amp;gt;modify('+1 day');
        }
        
        return $dates;
        
    } catch (Exception $e) {
        echo $e-&amp;gt;getMessage() . &quot;\n&quot;;
        return false;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;함수 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731557949368&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 사용 예제
echo &quot;1. 모든 날짜 포함 (2024-11-10 ~ 2024-11-14)\n&quot;;
$dates1 = getDates('2024-11-10', '2024-11-14');
echo &quot;&amp;lt;xmp&amp;gt;&quot;;
print_r($dates1);
echo &quot;&amp;lt;/xmp&amp;gt;&quot;;

echo &quot;\n2. 시작일 제외\n&quot;;
$dates2 = getDates('2024-11-10', '2024-11-14', false, true);
echo &quot;&amp;lt;xmp&amp;gt;&quot;;
print_r($dates2);
echo &quot;&amp;lt;/xmp&amp;gt;&quot;;

echo &quot;\n3. 종료일 제외\n&quot;;
$dates3 = getDates('2024-11-10', '2024-11-14', true, false);
echo &quot;&amp;lt;xmp&amp;gt;&quot;;
print_r($dates3);
echo &quot;&amp;lt;/xmp&amp;gt;&quot;;

echo &quot;\n4. 시작일과 종료일 모두 제외\n&quot;;
$dates4 = getDates('2024-11-10', '2024-11-14', false, false);
echo &quot;&amp;lt;xmp&amp;gt;&quot;;
print_r($dates4);
echo &quot;&amp;lt;/xmp&amp;gt;&quot;;

// 에러 케이스 예제
echo &quot;\n5. 잘못된 날짜 형식 입력\n&quot;;
$dates5 = getDates('2024-13-10', '2024-11-14');  // 13월은 없으므로 에러
echo &quot;&amp;lt;xmp&amp;gt;&quot;;
print_r($dates5);
echo &quot;&amp;lt;/xmp&amp;gt;&quot;;

echo &quot;\n6. 시작일이 종료일보다 늦은 경우\n&quot;;
$dates6 = getDates('2024-11-15', '2024-11-14');
echo &quot;&amp;lt;xmp&amp;gt;&quot;;
print_r($dates6);
echo &quot;&amp;lt;/xmp&amp;gt;&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;출력 결과&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1731557931294&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1. 모든 날짜 포함 (2024-11-10 ~ 2024-11-14)
Array
(
    [0] =&amp;gt; 2024-11-10
    [1] =&amp;gt; 2024-11-11
    [2] =&amp;gt; 2024-11-12
    [3] =&amp;gt; 2024-11-13
    [4] =&amp;gt; 2024-11-14
)

2. 시작일 제외
Array
(
    [0] =&amp;gt; 2024-11-11
    [1] =&amp;gt; 2024-11-12
    [2] =&amp;gt; 2024-11-13
    [3] =&amp;gt; 2024-11-14
)

3. 종료일 제외
Array
(
    [0] =&amp;gt; 2024-11-10
    [1] =&amp;gt; 2024-11-11
    [2] =&amp;gt; 2024-11-12
    [3] =&amp;gt; 2024-11-13
)

4. 시작일과 종료일 모두 제외
Array
(
    [0] =&amp;gt; 2024-11-11
    [1] =&amp;gt; 2024-11-12
    [2] =&amp;gt; 2024-11-13
)

5. 잘못된 날짜 형식 입력
잘못된 시작일 형식입니다. YYYY-MM-DD 형식으로 입력하세요.

6. 시작일이 종료일보다 늦은 경우
시작일(2024-11-15)이 종료일(2024-11-14)보다 늦습니다.&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/65</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%91%90-%EB%82%A0%EC%A7%9C-%EC%82%AC%EC%9D%B4%EC%9D%98-%EB%82%A0%EC%A7%9C%EB%93%A4%EC%9D%84-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B0%98%ED%99%98-%ED%95%98%EB%8A%94-%ED%95%A8%EC%88%98#entry65comment</comments>
      <pubDate>Thu, 14 Nov 2024 13:20:23 +0900</pubDate>
    </item>
    <item>
      <title>로컬스토리 간단한 다크 모드 구현</title>
      <link>https://azit4u.tistory.com/entry/%EB%A1%9C%EC%BB%AC%EC%8A%A4%ED%86%A0%EB%A6%AC-%EA%B0%84%EB%8B%A8%ED%95%9C-%EB%8B%A4%ED%81%AC-%EB%AA%A8%EB%93%9C-%EA%B5%AC%ED%98%84</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;기본적인 코드로만 구현한 다크모드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;다크모드 토글 버튼&lt;/b&gt;을 누를 때마다 로컬스토리지에 현재 모드를 저장해서&amp;nbsp;불러오는 코드 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;css는 일반, 다크모드 따로 분리해서 파일로 만들어주면 조금 더 쉽게 만들 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;예제)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;ko&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;jQuery로 다크 모드 구현&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        /* 기본 모드 (라이트 모드) */
        body {
            background-color: white;
            color: black;
            transition: background-color 0.3s, color 0.3s;
        }

        /* 다크 모드 */
        body.dark-mode {
            background-color: #333;
            color: white;
        }
    &amp;lt;/style&amp;gt;
    &amp;lt;!-- jQuery CDN --&amp;gt;
    &amp;lt;script src=&quot;https://code.jquery.com/jquery-3.6.0.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

    &amp;lt;h1&amp;gt;다크 모드 예제&amp;lt;/h1&amp;gt;
    &amp;lt;button id=&quot;toggleButton&quot;&amp;gt;다크 모드 토글&amp;lt;/button&amp;gt;

    &amp;lt;script&amp;gt;
        $(document).ready(function() {
            // 페이지 로드 시 로컬 스토리지에서 테마 확인
            if (localStorage.getItem('theme') === 'dark') {
                $('body').addClass('dark-mode');
            }

            // 다크 모드 토글 버튼 클릭 이벤트
            $('#toggleButton').on('click', function() {
                $('body').toggleClass('dark-mode');

                // 다크 모드 상태 저장
                if ($('body').hasClass('dark-mode')) {
                    localStorage.setItem('theme', 'dark');
                } else {
                    localStorage.setItem('theme', 'light');
                }
            });
        });
    &amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/64</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A1%9C%EC%BB%AC%EC%8A%A4%ED%86%A0%EB%A6%AC-%EA%B0%84%EB%8B%A8%ED%95%9C-%EB%8B%A4%ED%81%AC-%EB%AA%A8%EB%93%9C-%EA%B5%AC%ED%98%84#entry64comment</comments>
      <pubDate>Wed, 13 Nov 2024 12:31:30 +0900</pubDate>
    </item>
    <item>
      <title>로컬스토리지 사용방법: 저장, 수정, 삭제</title>
      <link>https://azit4u.tistory.com/entry/%EB%A1%9C%EC%BB%AC%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95-%EC%A0%80%EC%9E%A5-%EC%88%98%EC%A0%95-%EC%82%AD%EC%A0%9C</link>
      <description>&lt;h1&gt;로컬스토리지 사용방법: 저장, 수정, 삭제&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;로컬스토리지(LocalStorage)&lt;/b&gt;는 웹 브라우저에서 데이터를 클라이언트 측에 영구적으로 저장할 수 있는 기능입니다. 이 기능은 페이지가 새로고침되거나 브라우저가 닫혀도 데이터가 유지된다는 장점이 있습니다. 이번 글에서는 &lt;b&gt;로컬스토리지의 저장, 수정, 삭제&lt;/b&gt; 방법을 중심으로 설명하겠습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;로컬스토리지의 주요 특징&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;데이터 영구성&lt;/b&gt;: 브라우저 종료 후에도 데이터가 유지됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;문자열 형식&lt;/b&gt;: 모든 데이터는 문자열로 저장되며, 객체나 배열은 JSON 형식으로 변환해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;5MB 용량 제한&lt;/b&gt;: 각 도메인당 약 5MB의 데이터를 저장할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;도메인 기반&lt;/b&gt;: 동일한 도메인 내에서만 데이터가 공유됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 로컬스토리지 기본 메서드&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.1 데이터 저장하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬스토리지에 데이터를 저장하려면 &lt;code&gt;setItem()&lt;/code&gt; 메서드를 사용합니다. 이 메서드는 두 개의 인자(키와 값)를 받아 데이터를 저장합니다.&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;localStorage.setItem('username', 'JohnDoe');&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.2 데이터 읽기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장된 데이터를 불러오려면 &lt;code&gt;getItem()&lt;/code&gt; 메서드를 사용합니다.&lt;/p&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;const username = localStorage.getItem('username');
console.log(username);  // 출력: JohnDoe&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.3 데이터 삭제&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 키에 해당하는 데이터를 삭제하려면 &lt;code&gt;removeItem()&lt;/code&gt; 메서드를 사용합니다.&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;localStorage.removeItem('username');&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.4 모든 데이터 삭제&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬스토리지에 저장된 모든 데이터를 삭제하려면 &lt;code&gt;clear()&lt;/code&gt; 메서드를 사용합니다.&lt;/p&gt;
&lt;pre class=&quot;abnf&quot;&gt;&lt;code&gt;localStorage.clear();&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 로컬스토리지 수정하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬스토리지는 값을 덮어쓰는 방식으로 수정됩니다. 즉, 특정 키에 새로운 값을 설정하면 기존 값이 덮어씌워집니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.1 간단한 값 수정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 기존에 저장된 값을 새로운 값으로 수정하는 예시입니다.&lt;/p&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;localStorage.setItem('username', 'JaneDoe');&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.2 객체나 배열 수정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체나 배열과 같은 복잡한 데이터 구조를 수정하려면 먼저 데이터를 불러와 수정한 후 다시 저장해야 합니다.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;let user = JSON.parse(localStorage.getItem('user'));
user.age = 31;
localStorage.setItem('user', JSON.stringify(user));&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 로컬스토리지 활용 예제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 간단한 HTML과 JavaScript를 이용해 로컬스토리지를 사용하는 예제입니다.&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; id=&quot;inputData&quot; placeholder=&quot;데이터 입력&quot;&amp;gt;
&amp;lt;button onclick=&quot;saveData()&quot;&amp;gt;저장하기&amp;lt;/button&amp;gt;
&amp;lt;button onclick=&quot;loadData()&quot;&amp;gt;불러오기&amp;lt;/button&amp;gt;
&amp;lt;button onclick=&quot;modifyData()&quot;&amp;gt;수정하기&amp;lt;/button&amp;gt;
&amp;lt;button onclick=&quot;deleteData()&quot;&amp;gt;삭제하기&amp;lt;/button&amp;gt;

&amp;lt;script&amp;gt;
    function saveData() {
        const data = document.getElementById('inputData').value;
        localStorage.setItem('myData', data);
        alert('데이터가 저장되었습니다.');
    }

    function loadData() {
        const data = localStorage.getItem('myData');
        if (data) {
            alert('저장된 데이터: ' + data);
        } else {
            alert('저장된 데이터가 없습니다.');
        }
    }

    function modifyData() {
        const newData = prompt('수정할 데이터를 입력하세요:', localStorage.getItem('myData'));
        if (newData !== null) {
            localStorage.setItem('myData', newData);
            alert('데이터가 수정되었습니다.');
        }
    }

    function deleteData() {
        localStorage.removeItem('myData');
        alert('데이터가 삭제되었습니다.');
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Q&amp;amp;A&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Q1: 로컬스토리지는 모든 브라우저에서 지원되나요?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대부분의 최신 브라우저에서 지원됩니다. 다만 오래된 버전에서는 지원되지 않을 수 있으므로 호환성을 확인하는 것이 좋습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Q2: 로컬스토리지는 얼마나 많은 데이터를 저장할 수 있나요?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 도메인당 약 5MB의 데이터를 저장할 수 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Q3: 로컬스토리지는 보안상 안전한가요?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬스토리지는 클라이언트 측에 저장되므로 민감한 정보를 직접적으로 저장하는 것은 권장되지 않습니다. 암호화 등의 추가적인 보안 조치를 취하는 것이 좋습니다.&lt;/p&gt;
&lt;h1&gt;결론&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬스토리지는 웹 애플리케이션에서 클라이언트 측 데이터를 영구적으로 보관하는 데 매우 유용한 도구입니다. 특히 사용자 설정이나 상태 정보를 유지해야 하는 경우 유용하게 사용할 수 있습니다. 하지만 보안 문제를 고려해 민감한 정보는 별도의 보호 장치를 마련하거나 서버 측에서 관리하는 것이 좋습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/63</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A1%9C%EC%BB%AC%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95-%EC%A0%80%EC%9E%A5-%EC%88%98%EC%A0%95-%EC%82%AD%EC%A0%9C#entry63comment</comments>
      <pubDate>Tue, 12 Nov 2024 00:02:55 +0900</pubDate>
    </item>
    <item>
      <title>SQL 오류 (1067): Invalid default value for 'XXXXX' 해결 방법</title>
      <link>https://azit4u.tistory.com/entry/SQL-%EC%98%A4%EB%A5%98-1067-Invalid-default-value-for-XXXXX-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;SQL 오류 (1067): Invalid default value for 'XXXXX'&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라는 오류가 발생해서 테이블 수정이 안되는 현상입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL에서 발생하는 &quot;Invalid default value (1067)&quot; 오류에 대한 해결 방법을 설명하겠습니다:&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류 발생 원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 오류는 주로 다음과 같은 상황에서 발생합니다:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TIMESTAMP나 DATETIME 컬럼에 잘못된 기본값을 설정할 때&lt;/li&gt;
&lt;li&gt;MySQL의 sql_mode에 NO_ZERO_DATE나 NO_ZERO_IN_DATE가 설정되어 있을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. SQL Mode 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot;&gt;&lt;code&gt;SHOW VARIABLES LIKE 'sql_mode';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 테이블 필드 추가/수정 시 올바른 구문 사용&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;-- 잘못된 방법
ALTER TABLE table_name MODIFY COLUMN created_at timestamp NULL DEFAULT 'NULL';

-- 올바른 방법
ALTER TABLE table_name MODIFY COLUMN created_at timestamp NULL DEFAULT NULL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. PHP에서 테이블 생성/수정 시&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;// SQL 모드 임시 변경
$sql = &quot;SET sql_mode = ''&quot;;
mysqli_query($conn, $sql);

// 테이블 변경 쿼리 실행
$sql = &quot;ALTER TABLE your_table ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP&quot;;
mysqli_query($conn, $sql);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 기본값 설정 시 주의사항&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TIMESTAMP/DATETIME 필드의 경우 'CURRENT_TIMESTAMP' 사용&lt;/li&gt;
&lt;li&gt;NULL 허용 시 'DEFAULT NULL' 사용&lt;/li&gt;
&lt;li&gt;날짜/시간 값은 적절한 형식 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;***해결 방법***&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 관리자일 경우 mysql에 관리자 권한 접속 후 아래 명령허 입력후 테이블 수정 하면 정상 작동 확인&lt;/p&gt;
&lt;pre id=&quot;code_1731213828593&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_IN_DATE',''));

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_DATE',''));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MYSQL</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/62</guid>
      <comments>https://azit4u.tistory.com/entry/SQL-%EC%98%A4%EB%A5%98-1067-Invalid-default-value-for-XXXXX-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95#entry62comment</comments>
      <pubDate>Mon, 11 Nov 2024 00:02:17 +0900</pubDate>
    </item>
    <item>
      <title>PHP 날짜 몇분전, 몇시간전, 몇일전, 몇달전, 몇년전 지난 시간 계산</title>
      <link>https://azit4u.tistory.com/entry/PHP-%EB%82%A0%EC%A7%9C-%EB%AA%87%EB%B6%84%EC%A0%84-%EB%AA%87%EC%8B%9C%EA%B0%84%EC%A0%84-%EB%AA%87%EC%9D%BC%EC%A0%84-%EB%AA%87%EB%8B%AC%EC%A0%84-%EB%AA%87%EB%85%84%EC%A0%84-%EC%A7%80%EB%82%9C-%EC%8B%9C%EA%B0%84-%EA%B3%84%EC%82%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;주로 SNS에서 몇초전, 몇분전, 며칠전 이런 형태로 나오는 부분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$limit_unit에 second, minute, hour, day, month, year를 입력받아서 최대 hour 일경우 몇 시간 전까지만 나오고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후에는 Y-m-d H:i 형태로 나오게 옵션에서 변경 가능 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1731205363545&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function timeAgo($datetime, $limit_unit = 'day') {
    $now = new DateTime();
    $ago = new DateTime($datetime);
    $diff = $now-&amp;gt;diff($ago);
    
    // 시간 단위별 기준값 (초 단위)
    $limits = [
        'second' =&amp;gt; 60,
        'minute' =&amp;gt; 3600,        // 60분
        'hour' =&amp;gt; 86400,         // 24시간
        'day' =&amp;gt; 2592000,        // 30일
        'month' =&amp;gt; 31536000,     // 12개월
        'year' =&amp;gt; PHP_INT_MAX
    ];
    
    // 총 경과 시간을 초 단위로 계산
    $totalSeconds = ($diff-&amp;gt;days * 86400) + ($diff-&amp;gt;h * 3600) + ($diff-&amp;gt;i * 60) + $diff-&amp;gt;s;
    
    // 설정된 제한 단위보다 크면 날짜 형식으로 반환
    if ($totalSeconds &amp;gt;= $limits[$limit_unit]) {
        return $ago-&amp;gt;format('Y-m-d H:i');
    }
    
    // 상대적 시간 반환
    if ($diff-&amp;gt;y &amp;gt; 0) return $diff-&amp;gt;y . '년 전';
    if ($diff-&amp;gt;m &amp;gt; 0) return $diff-&amp;gt;m . '개월 전';
    if ($diff-&amp;gt;d &amp;gt; 0) return $diff-&amp;gt;d . '일 전';
    if ($diff-&amp;gt;h &amp;gt; 0) return $diff-&amp;gt;h . '시간 전';
    if ($diff-&amp;gt;i &amp;gt; 0) return $diff-&amp;gt;i . '분 전';
    return $diff-&amp;gt;s . '초 전';
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용법은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo &lt;b&gt;timeAgo&lt;/b&gt;(&quot;날짜&quot;, &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&quot;단위(입력안해도 됨)&quot;&lt;/span&gt;&lt;/b&gt;);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo &lt;b&gt;timeAgo&lt;/b&gt;(&quot;2024-11-10 09:09:00&quot;, &quot;hour&quot;);&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hour 는 입력 하지 않으면 기본으로 몇일전까지 출력되며 변경 원하면 옵션으로 넣으시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 입력하면 시간 단위 현재(2024-11-10 11:38분) 기준으로 2시간전 이렇게 나옵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조금 더 예제를 만들어보면 아래와 같이 날짜와 단위별로 테스트해보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1731205760342&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 테스트용 날짜 데이터
$test_dates = [
    '2024-11-10 10:59:30',  // 30초 전
    '2024-11-10 10:55:00',  // 5분 전
    '2024-11-10 09:00:00',  // 2시간 전
    '2024-11-10 03:00:00',  // 8시간 전
    '2024-11-09 11:00:00',  // 1일 전
    '2024-11-07 11:00:00',  // 3일 전
    '2024-11-03 11:00:00',  // 7일 전
    '2024-10-10 11:00:00',  // 1개월 전
    '2024-08-10 11:00:00',  // 3개월 전
    '2023-11-10 11:00:00',  // 1년 전
    '2022-11-10 11:00:00'   // 2년 전
];

// 각 제한 단위별로 테스트
$limit_units = ['minute', 'hour', 'day', 'month', 'year'];

foreach ($limit_units as $limit) {
    echo &quot;&amp;lt;h3&amp;gt;[ {$limit} 단위 기준 ]&amp;lt;/h3&amp;gt;&quot;;
    echo &quot;&amp;lt;div style='margin-left: 20px;'&amp;gt;&quot;;
    foreach ($test_dates as $date) {
        echo &quot;&amp;lt;div style='margin-bottom: 8px;'&amp;gt;&quot;;
        echo &quot;&amp;lt;strong&amp;gt;{$date}&amp;lt;/strong&amp;gt; &amp;rarr; &quot; . timeAgo($date, $limit);
        echo &quot;&amp;lt;/div&amp;gt;&quot;;
    }
    echo &quot;&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 시점 날짜는 2024-11-10 11:30입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1731205818493&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[ minute 단위 기준 ]
2024-11-10 10:59:30 &amp;rarr; 30분 전
2024-11-10 10:55:00 &amp;rarr; 35분 전
2024-11-10 09:00:00 &amp;rarr; 2024-11-10 09:00
2024-11-10 03:00:00 &amp;rarr; 2024-11-10 03:00
2024-11-09 11:00:00 &amp;rarr; 2024-11-09 11:00
2024-11-07 11:00:00 &amp;rarr; 2024-11-07 11:00
2024-11-03 11:00:00 &amp;rarr; 2024-11-03 11:00
2024-10-10 11:00:00 &amp;rarr; 2024-10-10 11:00
2024-08-10 11:00:00 &amp;rarr; 2024-08-10 11:00
2023-11-10 11:00:00 &amp;rarr; 2023-11-10 11:00
2022-11-10 11:00:00 &amp;rarr; 2022-11-10 11:00

[ hour 단위 기준 ]
2024-11-10 10:59:30 &amp;rarr; 30분 전
2024-11-10 10:55:00 &amp;rarr; 35분 전
2024-11-10 09:00:00 &amp;rarr; 2시간 전
2024-11-10 03:00:00 &amp;rarr; 8시간 전
2024-11-09 11:00:00 &amp;rarr; 2024-11-09 11:00
2024-11-07 11:00:00 &amp;rarr; 2024-11-07 11:00
2024-11-03 11:00:00 &amp;rarr; 2024-11-03 11:00
2024-10-10 11:00:00 &amp;rarr; 2024-10-10 11:00
2024-08-10 11:00:00 &amp;rarr; 2024-08-10 11:00
2023-11-10 11:00:00 &amp;rarr; 2023-11-10 11:00
2022-11-10 11:00:00 &amp;rarr; 2022-11-10 11:00

[ day 단위 기준 ]
2024-11-10 10:59:30 &amp;rarr; 30분 전
2024-11-10 10:55:00 &amp;rarr; 35분 전
2024-11-10 09:00:00 &amp;rarr; 2시간 전
2024-11-10 03:00:00 &amp;rarr; 8시간 전
2024-11-09 11:00:00 &amp;rarr; 1일 전
2024-11-07 11:00:00 &amp;rarr; 3일 전
2024-11-03 11:00:00 &amp;rarr; 7일 전
2024-10-10 11:00:00 &amp;rarr; 2024-10-10 11:00
2024-08-10 11:00:00 &amp;rarr; 2024-08-10 11:00
2023-11-10 11:00:00 &amp;rarr; 2023-11-10 11:00
2022-11-10 11:00:00 &amp;rarr; 2022-11-10 11:00

[ month 단위 기준 ]
2024-11-10 10:59:30 &amp;rarr; 30분 전
2024-11-10 10:55:00 &amp;rarr; 35분 전
2024-11-10 09:00:00 &amp;rarr; 2시간 전
2024-11-10 03:00:00 &amp;rarr; 8시간 전
2024-11-09 11:00:00 &amp;rarr; 1일 전
2024-11-07 11:00:00 &amp;rarr; 3일 전
2024-11-03 11:00:00 &amp;rarr; 7일 전
2024-10-10 11:00:00 &amp;rarr; 1개월 전
2024-08-10 11:00:00 &amp;rarr; 3개월 전
2023-11-10 11:00:00 &amp;rarr; 2023-11-10 11:00
2022-11-10 11:00:00 &amp;rarr; 2022-11-10 11:00

[ year 단위 기준 ]
2024-11-10 10:59:30 &amp;rarr; 30분 전
2024-11-10 10:55:00 &amp;rarr; 35분 전
2024-11-10 09:00:00 &amp;rarr; 2시간 전
2024-11-10 03:00:00 &amp;rarr; 8시간 전
2024-11-09 11:00:00 &amp;rarr; 1일 전
2024-11-07 11:00:00 &amp;rarr; 3일 전
2024-11-03 11:00:00 &amp;rarr; 7일 전
2024-10-10 11:00:00 &amp;rarr; 1개월 전
2024-08-10 11:00:00 &amp;rarr; 3개월 전
2023-11-10 11:00:00 &amp;rarr; 1년 전
2022-11-10 11:00:00 &amp;rarr; 2년 전&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 형태로 출력됩니다.&lt;/p&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/61</guid>
      <comments>https://azit4u.tistory.com/entry/PHP-%EB%82%A0%EC%A7%9C-%EB%AA%87%EB%B6%84%EC%A0%84-%EB%AA%87%EC%8B%9C%EA%B0%84%EC%A0%84-%EB%AA%87%EC%9D%BC%EC%A0%84-%EB%AA%87%EB%8B%AC%EC%A0%84-%EB%AA%87%EB%85%84%EC%A0%84-%EC%A7%80%EB%82%9C-%EC%8B%9C%EA%B0%84-%EA%B3%84%EC%82%B0#entry61comment</comments>
      <pubDate>Sun, 10 Nov 2024 11:32:02 +0900</pubDate>
    </item>
    <item>
      <title>PHP에서 $_SERVER 변수에 대한 설명</title>
      <link>https://azit4u.tistory.com/entry/PHP%EC%97%90%EC%84%9C-SERVER-%EB%B3%80%EC%88%98%EC%97%90-%EB%8C%80%ED%95%9C-%EC%84%A4%EB%AA%85</link>
      <description>&lt;p&gt;PHP의 &lt;strong&gt;$_SERVER&lt;/strong&gt; 변수는 서버와 실행 환경에 대한 다양한 정보를 제공하는 슈퍼 글로벌 배열입니다. 이 글에서는 &lt;strong&gt;$_SERVER&lt;/strong&gt; 변수에 포함된 주요 항목들을 설명하고, 각각의 예제와 함께 실제로 어떻게 동작하는지 보여드리겠습니다. 예제 도메인으로 &lt;strong&gt;mandooya.com&lt;/strong&gt;과 &lt;strong&gt;test.mandooya.com&lt;/strong&gt;을 사용하여 결과를 확인할 수 있습니다.&lt;/p&gt;
&lt;h2&gt;본론&lt;/h2&gt;
&lt;h3&gt;1. &lt;code&gt;$_SERVER[&amp;#39;PHP_SELF&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 현재 실행 중인 스크립트의 파일명을 반환합니다. 경로는 웹 루트에서부터 시작합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;현재 스크립트 경로: &amp;quot; . $_SERVER[&amp;#39;PHP_SELF&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;현재 스크립트 경로: /index.php&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;2. &lt;code&gt;$_SERVER[&amp;#39;SERVER_NAME&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 서버의 호스트 이름을 반환합니다. 예를 들어, 웹사이트가 &lt;strong&gt;mandooya.com&lt;/strong&gt;에서 실행 중이라면 이 값은 &lt;code&gt;mandooya.com&lt;/code&gt;이 됩니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;서버 이름: &amp;quot; . $_SERVER[&amp;#39;SERVER_NAME&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;서버 이름: mandooya.com&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;3. &lt;code&gt;$_SERVER[&amp;#39;HTTP_HOST&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 요청된 호스트 헤더를 반환합니다. 이는 도메인 이름과 포트를 포함할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;HTTP 호스트: &amp;quot; . $_SERVER[&amp;#39;HTTP_HOST&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;HTTP 호스트: mandooya.com&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;4. &lt;code&gt;$_SERVER[&amp;#39;HTTP_REFERER&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 사용자가 이전에 방문한 페이지의 URL을 반환합니다. 이 값은 항상 신뢰할 수 없으며, 일부 브라우저나 프록시는 이 정보를 제공하지 않을 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;이전 페이지(Referer): &amp;quot; . $_SERVER[&amp;#39;HTTP_REFERER&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;이전 페이지(Referer): http://test.mandooya.com/previous_page.php&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;5. &lt;code&gt;$_SERVER[&amp;#39;HTTP_USER_AGENT&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 현재 사용자의 브라우저 정보를 포함한 사용자 에이전트 문자열을 반환합니다. 이를 통해 사용자가 어떤 브라우저와 운영체제를 사용하는지 확인할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;사용자 에이전트: &amp;quot; . $_SERVER[&amp;#39;HTTP_USER_AGENT&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;사용자 에이전트: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;6. &lt;code&gt;$_SERVER[&amp;#39;SCRIPT_NAME&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 현재 실행 중인 스크립트의 경로를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;스크립트 이름: &amp;quot; . $_SERVER[&amp;#39;SCRIPT_NAME&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;스크립트 이름: /index.php&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;7. &lt;code&gt;$_SERVER[&amp;#39;REQUEST_METHOD&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 현재 페이지에 접근할 때 사용된 HTTP 요청 방식을 반환합니다(예: GET, POST).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;요청 방식: &amp;quot; . $_SERVER[&amp;#39;REQUEST_METHOD&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;요청 방식: GET&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;8. &lt;code&gt;$_SERVER[&amp;#39;REMOTE_ADDR&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 사용자가 접속한 IP 주소를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;사용자 IP 주소: &amp;quot; . $_SERVER[&amp;#39;REMOTE_ADDR&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;사용자 IP 주소: 192.168.1.100&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;9. &lt;code&gt;$_SERVER[&amp;#39;QUERY_STRING&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: URL에 포함된 쿼리 문자열을 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;쿼리 문자열: &amp;quot; . $_SERVER[&amp;#39;QUERY_STRING&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시 (URL이 &lt;code&gt;http://mandooya.com/index.php?name=John&amp;amp;age=25&lt;/code&gt;일 때)&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;쿼리 문자열: name=John&amp;amp;age=25&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;10. &lt;code&gt;$_SERVER[&amp;#39;DOCUMENT_ROOT&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 서버의 문서 루트 디렉토리 경로를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;문서 루트 디렉토리 경로: &amp;quot; . $_SERVER[&amp;#39;DOCUMENT_ROOT&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시 (Apache 서버에서)&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;문서 루트 디렉토리 경로: /var/www/html/&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;11. &lt;code&gt;$_SERVER[&amp;#39;REQUEST_URI&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 현재 페이지에 대한 URI를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;요청된 URI: &amp;quot; . $_SERVER[&amp;#39;REQUEST_URI&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시 (URL이 &lt;code&gt;http://mandooya.com/index.php?name=John&amp;amp;age=25&lt;/code&gt;일 때)&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;요청된 URI: /index.php?name=John&amp;amp;age=25 &lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;12. &lt;code&gt;$_SERVER[&amp;#39;SCRIPT_FILENAME&amp;#39;]&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;설명&lt;/strong&gt;: 현재 실행 중인 스크립트의 절대 경로를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;예시 코드&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
echo &amp;quot;스크립트 파일 경로: &amp;quot; . $_SERVER[&amp;#39;SCRIPT_FILENAME&amp;#39;];
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;출력 예시 (Apache 서버에서)&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;스크립트 파일 경로: /var/www/html/index.php &lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;기타 유용한 $_SERVER 변수들&lt;/h2&gt;
&lt;h4&gt;13. &lt;code&gt;$_SERVER[&amp;#39;GATEWAY_INTERFACE&amp;#39;]&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;서버가 사용하는 CGI(Common Gateway Interface)의 버전을 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;14. &lt;code&gt;$_SERVER[&amp;#39;HTTPS&amp;#39;]&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;HTTPS를 통해 페이지가 요청되었는지 여부를 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;15. &lt;code&gt;$_SERVER[&amp;#39;REMOTE_PORT&amp;#39;]&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;웹 서버와 통신하는 데 사용된 사용자 측 포트를 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;16. &lt;code&gt;$_SERVER[&amp;#39;HTTP_ACCEPT_LANGUAGE&amp;#39;]&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;브라우저가 선호하는 언어 목록을 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;17. &lt;code&gt;$_SERVER[&amp;#39;HTTP_ACCEPT_ENCODING&amp;#39;]&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;브라우저가 지원하는 인코딩 형식을 반환합니다(예: gzip, deflate).&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>PHP</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/60</guid>
      <comments>https://azit4u.tistory.com/entry/PHP%EC%97%90%EC%84%9C-SERVER-%EB%B3%80%EC%88%98%EC%97%90-%EB%8C%80%ED%95%9C-%EC%84%A4%EB%AA%85#entry60comment</comments>
      <pubDate>Sat, 9 Nov 2024 02:19:15 +0900</pubDate>
    </item>
    <item>
      <title>PHP 에러 메세지 출력</title>
      <link>https://azit4u.tistory.com/entry/PHP-%EC%97%90%EB%9F%AC-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%B6%9C%EB%A0%A5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PHP 로 작업을 하다가 제대로 작동을 안하거나 에러메시지가 나오지 않는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 상단에&amp;nbsp;아래 부분을 추가 해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1731035977197&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    error_reporting( E_ALL );
    ini_set( &quot;display_errors&quot;, 1 );
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드를 추가 하면 PHP 에러가 있을 경우 츨력 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에러 메시지가 출력 안되게 하고 싶은경우는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드를 넣으면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1731036106959&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    ini_set( &quot;display_errors&quot;, 1 );
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/59</guid>
      <comments>https://azit4u.tistory.com/entry/PHP-%EC%97%90%EB%9F%AC-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%B6%9C%EB%A0%A5#entry59comment</comments>
      <pubDate>Fri, 8 Nov 2024 12:22:31 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu Directory Listing(Index of) 막기</title>
      <link>https://azit4u.tistory.com/entry/Ubuntu-Directory-ListingIndex-of-%EB%A7%89%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스 서버 세팅후 웹 페이지 접근하면&amp;nbsp; 아래와 같이 하위 디렉토리나 파일명이 나오는 취약점입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_화면 캡처 2024-11-07 133631.png&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nS8KT/btsKyGp8Pmb/oU67HsIbQBC9duAK57eBH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nS8KT/btsKyGp8Pmb/oU67HsIbQBC9duAK57eBH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nS8KT/btsKyGp8Pmb/oU67HsIbQBC9duAK57eBH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnS8KT%2FbtsKyGp8Pmb%2FoU67HsIbQBC9duAK57eBH1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;497&quot; height=&quot;311&quot; data-filename=&quot;edited_화면 캡처 2024-11-07 133631.png&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이럴 경우는 아파치설정 파일에서 수정이 필요 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 우선 관리자 권한으로 아래 접근 후&lt;/p&gt;
&lt;pre id=&quot;code_1730954336619&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi /etc/apache2/apache2.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_화면 캡처 2024-11-07 132010.png&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSOTrN/btsKzKrkSfb/a6UygTFX04Dlaf4nNmxAkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSOTrN/btsKzKrkSfb/a6UygTFX04Dlaf4nNmxAkk/img.png&quot; data-alt=&quot;apache2.conf 파일에서 indexes 검색&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSOTrN/btsKzKrkSfb/a6UygTFX04Dlaf4nNmxAkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSOTrN%2FbtsKzKrkSfb%2Fa6UygTFX04Dlaf4nNmxAkk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;619&quot; height=&quot;580&quot; data-filename=&quot;edited_화면 캡처 2024-11-07 132010.png&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;apache2.conf 파일에서 indexes 검색&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Indexes 로 검색해서 해당 부분을 삭제 해 줍니다. &quot;Indexes&quot; 부분만 입니다. 이후 저장 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_화면 캡처 2024-11-07 132050.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zi1J2/btsKyJ8f4T5/dOwYZxvO6urB0FUvK0NSzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zi1J2/btsKyJ8f4T5/dOwYZxvO6urB0FUvK0NSzk/img.png&quot; data-alt=&quot;Indexes 삭제 후 저장&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zi1J2/btsKyJ8f4T5/dOwYZxvO6urB0FUvK0NSzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzi1J2%2FbtsKyJ8f4T5%2FdOwYZxvO6urB0FUvK0NSzk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;568&quot; data-filename=&quot;edited_화면 캡처 2024-11-07 132050.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Indexes 삭제 후 저장&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 수정 후 아파치 재시작&lt;/p&gt;
&lt;pre id=&quot;code_1730954435879&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;service apache2 restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아파치 재시작 후 접근 해보면 처리되었습니다.&lt;/p&gt;</description>
      <category>Linux</category>
      <category>오블완</category>
      <category>티스토리챌린지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/58</guid>
      <comments>https://azit4u.tistory.com/entry/Ubuntu-Directory-ListingIndex-of-%EB%A7%89%EA%B8%B0#entry58comment</comments>
      <pubDate>Thu, 7 Nov 2024 13:42:47 +0900</pubDate>
    </item>
    <item>
      <title>에디트플러스 한줄 반복 소스 줄바꿈 처리</title>
      <link>https://azit4u.tistory.com/entry/%EC%97%90%EB%94%94%ED%8A%B8%ED%94%8C%EB%9F%AC%EC%8A%A4-%ED%95%9C%EC%A4%84-%EB%B0%98%EB%B3%B5-%EC%86%8C%EC%8A%A4-%EC%A4%84%EB%B0%94%EA%BF%88-%EC%B2%98%EB%A6%AC</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 은행의 소스나 option 이 여러줄로 있을때 에디트플러스에서 여러줄로 쉽게 변경하는 방법을 알려드리겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1729404010322&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;option value=&quot;카카오뱅크&quot;&amp;gt;카카오뱅크&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;케이뱅크&quot;&amp;gt;케이뱅크&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;신한&quot;&amp;gt;신한&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;국민&quot;&amp;gt;국민&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;주택&quot;&amp;gt;주택&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;농협&quot;&amp;gt;농협&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;우리&quot;&amp;gt;우리&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;조흥&quot;&amp;gt;조흥&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;외환&quot;&amp;gt;외환&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;하나&quot;&amp;gt;하나&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;한미&quot;&amp;gt;한미&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;제일&quot;&amp;gt;제일&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;서울&quot;&amp;gt;서울&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;기업&quot;&amp;gt;기업&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;평화&quot;&amp;gt;평화&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;우체국&quot;&amp;gt;우체국&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;경남&quot;&amp;gt;경남&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;광주&quot;&amp;gt;광주&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;대구&quot;&amp;gt;대구&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;부산&quot;&amp;gt;부산&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;산업&quot;&amp;gt;산업&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;수협&quot;&amp;gt;수협&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;전북&quot;&amp;gt;전북&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;제주&quot;&amp;gt;제주&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;씨티&quot;&amp;gt;씨티&amp;lt;/option&amp;gt;&amp;lt;option value=&quot;암로&quot;&amp;gt;암로&amp;lt;/option&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 있는 소스를 에디트 플러스에 넣으시고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리 (2).png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DeSS4/btsKb6IPAeg/ugosZTKV50RE867exGHYik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DeSS4/btsKb6IPAeg/ugosZTKV50RE867exGHYik/img.png&quot; data-alt=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DeSS4/btsKb6IPAeg/ugosZTKV50RE867exGHYik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDeSS4%2FbtsKb6IPAeg%2FugosZTKV50RE867exGHYik%2Fimg.png&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; alt=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리&quot; loading=&quot;lazy&quot; width=&quot;671&quot; height=&quot;236&quot; data-filename=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리 (2).png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;에디트플러스 한줄 반복 소스 줄바꿈 처리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl(컨트럴) + H 키를 눌러서 바꾸기 창을 띄운다음, 찾을 말에 &amp;lt;/option&amp;gt;을 바꿀 말에 &amp;lt;/option&amp;gt;\n 을 넣으시고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리 (1).png&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;521&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOgag2/btsKdo9vZUN/wf2tSq07cjUtqhAH88nJG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOgag2/btsKdo9vZUN/wf2tSq07cjUtqhAH88nJG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOgag2/btsKdo9vZUN/wf2tSq07cjUtqhAH88nJG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOgag2%2FbtsKdo9vZUN%2Fwf2tSq07cjUtqhAH88nJG1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;670&quot; height=&quot;521&quot; data-filename=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리 (1).png&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;521&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모두 바꾸기 범위를 현재 파일이나 필요부분을 선택하셨으면 선택부분으로 변경후 &quot;모두바꿈&quot; 을 클릭 하시면&lt;/p&gt;
&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-7710142305453567&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리 (3).png&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk5RLo/btsKcbiV21e/ksBXBkJ1UMRi2M6kEn0A5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk5RLo/btsKcbiV21e/ksBXBkJ1UMRi2M6kEn0A5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk5RLo/btsKcbiV21e/ksBXBkJ1UMRi2M6kEn0A5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk5RLo%2FbtsKcbiV21e%2FksBXBkJ1UMRi2M6kEn0A5K%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;664&quot; height=&quot;492&quot; data-filename=&quot;에디트플러스 한줄 반복 소스 줄바꿈 처리 (3).png&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 여러 줄로 구분되어 변경됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 다른 에디터에서도 가능 할 것 같습니다.&lt;/p&gt;</description>
      <category>기타</category>
      <category>에디트플러스줄바꿈</category>
      <category>자동줄바꿈</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/57</guid>
      <comments>https://azit4u.tistory.com/entry/%EC%97%90%EB%94%94%ED%8A%B8%ED%94%8C%EB%9F%AC%EC%8A%A4-%ED%95%9C%EC%A4%84-%EB%B0%98%EB%B3%B5-%EC%86%8C%EC%8A%A4-%EC%A4%84%EB%B0%94%EA%BF%88-%EC%B2%98%EB%A6%AC#entry57comment</comments>
      <pubDate>Sun, 20 Oct 2024 15:13:19 +0900</pubDate>
    </item>
    <item>
      <title>100일 뒤 날짜구하기, 특정 날짜 구하기</title>
      <link>https://azit4u.tistory.com/entry/100%EC%9D%BC-%EB%92%A4-%EB%82%A0%EC%A7%9C%EA%B5%AC%ED%95%98%EA%B8%B0-%ED%8A%B9%EC%A0%95-%EB%82%A0%EC%A7%9C-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1723172998545&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo date(&quot;Y-m-d&quot;); //현재 일자
echo date(&quot;Y-m-d&quot;, strtotime(&quot;+ 100days&quot;)); //100일뒤 날짜 - 오늘 기준

//디비에서 넘어온 특정 날짜 기준으로 100일 뒤 날짜 

echo date(&quot;Y-m-d&quot;, strtotime(&quot;+ 100 days&quot;, strtotime($date)));
echo date(&quot;Y-m-d&quot;, strtotime($date.&quot;+ 100 days&quot;));

echo date(&quot;Y-m-d&quot;, strtotime(&quot;-1 day&quot;)); // 어제
echo date(&quot;Y-m-d&quot;, strtotime(&quot;+1 day&quot;)); //내일

echo date(&quot;Y-m-d&quot;, strtotime(&quot;+1 week&quot;)); //일주일 후 
echo  date(&quot;Y-m-d&quot;, strtotime(&quot;-1 month&quot;)); // 한달 전
echo  date(&quot;Y-m-d&quot;, strtotime(&quot;+1 month&quot;)); // 한달 후
echo date(&quot;Y-m-d&quot;, strtotime(&quot;last Sunday&quot;)); //지난주 일요일
echo date(&quot;Y-m-d&quot;, strtotime(&quot;Next Sunday&quot;)); //다음주 일요일&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: center; width: 300px; margin: 0 auto;&quot;&gt;&lt;iframe src=&quot;https://ads-partners.coupang.com/widgets.html?id=800783&amp;amp;template=carousel&amp;amp;trackingCode=AF7492866&amp;amp;subId=&amp;amp;width=300&amp;amp;height=150&amp;amp;tsource=&quot; width=&quot;300&quot; height=&quot;150&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; font-size: 12px;&quot;&gt;이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>PHP</category>
      <category>php날짜</category>
      <category>php날짜구하기</category>
      <category>날짜</category>
      <category>날짜구하기</category>
      <category>특정일자계산</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/53</guid>
      <comments>https://azit4u.tistory.com/entry/100%EC%9D%BC-%EB%92%A4-%EB%82%A0%EC%A7%9C%EA%B5%AC%ED%95%98%EA%B8%B0-%ED%8A%B9%EC%A0%95-%EB%82%A0%EC%A7%9C-%EA%B5%AC%ED%95%98%EA%B8%B0#entry53comment</comments>
      <pubDate>Sun, 19 Nov 2023 17:28:49 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 계정생성(new)</title>
      <link>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B3%84%EC%A0%95%EC%83%9D%EC%84%B1new</link>
      <description>&lt;pre id=&quot;code_1599237153593&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/bin/bash


echo &quot;

[1] 사용자계정 추가 + Mysql DB 추가

[2] 사용자계정 삭제 + Mysql DB 삭제

              
&quot;
echo -n &quot;번호를 선택 하세요:&quot;
read Num

case &quot;$Num&quot; in
 
# 사용자 계정 추가 + mysqlDb 추가 
1)
echo ==================================================================
echo &quot;                     UserAdd Process Start                      &quot;
echo ==================================================================
 
echo -n &quot;User Name : &quot;
read username
useradd $username
echo ------------------------
echo PassWord Setting
echo ------------------------
passwd $username
 
echo ==================================================================
echo &quot;                     www root directory making                      &quot;
echo ==================================================================
echo
echo -n &quot;www root Directory path : &quot;
echo /home/$username/www
mkdir -p /home/$username/www
 
echo ==================================================================
echo &quot;             root directory setting &amp;amp; test index.php making     &quot;
echo ==================================================================
chmod 775 /home/$username
chmod 707 /home/$username/www
chown $username.$username /home/$username/www
echo $username &amp;gt;&amp;gt;/home/$username/www/index.php
echo &quot;&amp;lt;?php phpinfo(); ?&amp;gt;&quot; &amp;gt;&amp;gt; /home/$username/www/index.php
chown $username.$username /home/$username/www/index.php
chmod 775 /home/$username/www/index.php
 
echo checking -----------------------------------------------------------
ls -al /home/$username
echo checking -----------------------------------------------------------
ls -al /home/$username/www
 
 
echo ==================================================================
echo &quot;                        MySQL useradd&quot;
echo ==================================================================
echo &quot;Username : $username&quot;
echo &quot;dbname : $username&quot;
echo -n &quot;User p/w : &quot;
read userpw
echo &quot; &quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;use mysql;&quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;create database $username;&quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;grant all privileges on $username.* to $username@localhost identified by '$userpw';&quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;FLUSH PRIVILEGES;&quot; &amp;gt;&amp;gt; mysql_useradd.sql

echo &quot;Mysql 루트 패스워드를 입력하세요.&quot;

/usr/bin/mysql -uroot -p &amp;lt; ./mysql_useradd.sql
cat ./mysql_useradd.sql
rm -rf ./mysql_useradd.sql

service httpd restart

exit;;


# 사용자 계정 삭제 
2)
echo =======================================================
echo  &quot;&amp;lt; Hosting Server 사용자 삭제 스크립트&amp;gt;&quot;
echo =======================================================

echo 

echo -n &quot;사용자 계정 입력:&quot;

         read id

 

echo -n &quot;사용자 계정 확인: $id

 

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

맞으면 &amp;lt;Enter&amp;gt;를 누르고 틀리면 No를 입력하세요: &quot;

read chk

 

if [ &quot;$chk&quot; != &quot;&quot; ]

 

then

         exit

fi

 

# 사용자 계정 삭제

userdel -r $id

 

# Mysql DB 삭제

echo &quot;use mysql;

delete from db where user = '$id';

delete from user where user = '$id';

drop database $id;

flush privileges;&quot; &amp;gt; ./tmp

 

echo &quot;Mysql 루트 패스워드를 입력하세요.&quot;

 

mysql -u root -p mysql &amp;lt; ./tmp

 

rm -f ./tmp

 

echo &quot;

사용자 계정이 삭제되었습니다.

Mysql DB가 삭제되었습니다.&quot;

 
exit;;*)

esac&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당자료는 제가 작성한 것이 아닙니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 출처가 명확치 않아 표기하지 않았으며, 원 제작자님이 계시면 메일이나 글 남겨 주시면 출처 표시 하도록 하겠습다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 계정에선 mkuser 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비번에 비번&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/bin 에 이동해서 touch mkuser&amp;nbsp; &amp;gt; vi mkuser&lt;/p&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/52</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B3%84%EC%A0%95%EC%83%9D%EC%84%B1new#entry52comment</comments>
      <pubDate>Sat, 5 Sep 2020 01:29:53 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 한글깨짐 (centos7)</title>
      <link>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%95%9C%EA%B8%80%EA%B9%A8%EC%A7%90-centos7</link>
      <description>&lt;pre id=&quot;code_1723221315063&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;localedef -c -i ko_KR -f UTF-8 ko_KR.UTF-8
localectl set-locale LANG=ko_KR.UTF-8&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/51</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%95%9C%EA%B8%80%EA%B9%A8%EC%A7%90-centos7#entry51comment</comments>
      <pubDate>Fri, 4 Sep 2020 18:39:12 +0900</pubDate>
    </item>
    <item>
      <title>mysql custom 값으로 정렬하기</title>
      <link>https://azit4u.tistory.com/entry/mysql-custom-%EA%B0%92%EC%9C%BC%EB%A1%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;mysql 필드에서 원하는 값 우선으로 정렬 하는 방법.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1723221392735&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select * from 테이블 order by FIELD(필드명, '정렬1순위', '정렬2순위', '정렬3순위', '정렬4순위');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 같은 형태로 가능..&lt;/p&gt;</description>
      <category>MYSQL</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/50</guid>
      <comments>https://azit4u.tistory.com/entry/mysql-custom-%EA%B0%92%EC%9C%BC%EB%A1%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0#entry50comment</comments>
      <pubDate>Mon, 6 Apr 2020 21:05:24 +0900</pubDate>
    </item>
    <item>
      <title>css, js , 이미지 캐시 방지</title>
      <link>https://azit4u.tistory.com/entry/cssjs%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%BA%90%EC%8B%9C%EB%B0%A9%EC%A7%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이미지나 js css 등을 불러올때 캐시된 파일들을 불러와서 수정전 파일들을 불러올 경우에는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불러오는 부분에 ?ver=&amp;lt;?php echo time()?&amp;gt; 이런 형태로 불러와주면 다른 주소로 인식해서 캐시 기능을 피하실 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1723221494757&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;customize.css?ver=&amp;lt;?php echo time() ?&amp;gt;&quot;&amp;gt;

&amp;lt;script src=&quot;menu.js?ver=&amp;lt;?php echo time() ?&amp;gt;&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;img src=&quot;img.jpg?ver=&amp;lt;?php echo time()?&amp;gt;&quot; alt=&quot;&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 형태로 변경&lt;/p&gt;</description>
      <category>기타</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/49</guid>
      <comments>https://azit4u.tistory.com/entry/cssjs%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%BA%90%EC%8B%9C%EB%B0%A9%EC%A7%80#entry49comment</comments>
      <pubDate>Wed, 20 Sep 2017 15:10:32 +0900</pubDate>
    </item>
    <item>
      <title>bxslider loading issue bxslider 로딩 이슈 해결방법</title>
      <link>https://azit4u.tistory.com/entry/bxslider-loading-issue-bxslider-%EB%A1%9C%EB%94%A9-%EC%9D%B4%EC%8A%88-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;jquery 로 슬라이드배너를 만들때 주로 bxslider 를 사용하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고쳐져야할 오류가 몇가지 보이네요..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 처음 페이지에 접속 했을때 이미지들이 쭉 나열 되면서 페이지 레이아웃이 깨져서 보이는 부분인데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이부분은 먼저 레이아웃을 잡기전엔 슬라이더 영역을 안보이게 하고, 로딩이 완료 된 후에 보이게 하는 방식으로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처리를 하면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1723221553643&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;edd&quot; style=&quot;visibility:hidden;opacity:0&quot;&amp;gt; 
    &amp;lt;ul class=&quot;bxslider&quot;&amp;gt; 
        &amp;lt;li&amp;gt;&amp;lt;img src=&quot;/image/banner/main_banner_01.jpg&quot;/&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;&amp;lt;img src=&quot;/image/banner/main_banner_01.jpg&quot;/&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;&amp;lt;img src=&quot;/image/banner/main_banner_01.jpg&quot;/&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 bxslider를 둘러싸고 있는 div 를 하나 만드신 후 style=&quot;visibility:hidden&quot; 을 주시고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로고침 해보시면 해당 영역은 잡혀 있는데 이미지는 보이지 않으실 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이제 bxslider이 완료 되면 해당 부분을 다시 보이게 처리 해야 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1723221646899&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
$(document).ready(function() {
	$('.bxslider').bxSlider({
    	mode: 'vertical', 
        slideMargin: 5, 
        pager:false, 
        onSliderLoad: function(){ 
        	$(&quot;#edd&quot;).css(&quot;visibility&quot;, &quot;visible&quot;).animate({opacity:1});
        }
    });
 }); 
 &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background: #fff;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background: #fff;&quot; data-ke-size=&quot;size16&quot;&gt;위와 같이 onSliderLoad 부분을 넣으시면 슬라이더 로딩이 완료 되면 #edd 의 visibility 를 visible 로 변경 해라 이런 뜻입니다.&lt;/p&gt;
&lt;p style=&quot;background: #fff;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 처리하면 따로 잡힌 영역이 깨지지 않고 레이아웃이 잡히고, bxslider 가 로딩이 완료 된 후에 해당 영역에 출력이 됩니다.&lt;/p&gt;
&lt;p style=&quot;background: #fff;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background: #fff;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background: #fff;&quot; data-ke-size=&quot;size16&quot;&gt;다른 이슈는 ie에서 무한으로 이미지로딩만 출력 되는 현상인데 이부분은 다음에 다시 올리도록 하겠습니다.&lt;/p&gt;</description>
      <category>기타</category>
      <category>bxslider</category>
      <category>bxslider loading</category>
      <category>bxslider loading issue</category>
      <category>bxslider 로딩</category>
      <category>jQuery</category>
      <category>비엑스슬라이더</category>
      <category>슬라이딩배너</category>
      <category>제이쿼리 슬라이더</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/48</guid>
      <comments>https://azit4u.tistory.com/entry/bxslider-loading-issue-bxslider-%EB%A1%9C%EB%94%A9-%EC%9D%B4%EC%8A%88-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95#entry48comment</comments>
      <pubDate>Thu, 19 Jan 2017 15:32:06 +0900</pubDate>
    </item>
    <item>
      <title>회사 퇴사 시 퇴직금, 임금 체불 시 노동부에 진정 신청 방법</title>
      <link>https://azit4u.tistory.com/entry/%ED%9A%8C%EC%82%AC-%ED%87%B4%EC%82%AC-%EC%8B%9C-%ED%87%B4%EC%A7%81%EA%B8%88-%EC%9E%84%EA%B8%88-%EC%B2%B4%EB%B6%88-%EC%8B%9C-%EB%85%B8%EB%8F%99%EB%B6%80%EC%97%90-%EC%A7%84%EC%A0%95-%EC%8B%A0%EC%B2%AD-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;P&gt;이번에 회사를 퇴사 하게 되면서 &lt;/P&gt;
&lt;P&gt;회사 대표가 퇴직금을 차일 피일 미루다 퇴직한지 네달이 지났는데도 한푼도 입금을 안해주며 버티고 있어서 &lt;/P&gt;
&lt;P&gt;어쩔 수 없이 노동부에 퇴직금 미지급 신고를 하게 되었습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;접수 방법은 쉽습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1.고용노동부 민원마당 사이트 접속&amp;gt; 민원신청&amp;gt;서식 민원으로 이동 하시거나&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://minwon.moel.go.kr/minwon2008/lc_minwon/lc_form_apply.jsp&quot;&gt;http://minwon.moel.go.kr/minwon2008/lc_minwon/lc_form_apply.jsp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;위 사이트 링크로 이동 하셔서 공인인증서나 회원가입을 합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. 임금체불 진정신고서에 신청을 클릭&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 793px; WIDTH: 793px; HEIGHT: 908px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2240C93C52F89BC70D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2240C93C52F89BC70D&quot; width=&quot;793&quot; height=&quot;908&quot; filename=&quot;2014-02-10 13;23;37.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 793px; HEIGHT: 908px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. 항목을 꼼꼼히 입력해서 작성.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 549px; WIDTH: 549px; HEIGHT: 1096px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2706883C52F89BC62D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2706883C52F89BC62D&quot; width=&quot;549&quot; height=&quot;1096&quot; filename=&quot;2014-02-10 13;23;20.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 549px; HEIGHT: 1096px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;등록 하시면 됩니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기타</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/47</guid>
      <comments>https://azit4u.tistory.com/entry/%ED%9A%8C%EC%82%AC-%ED%87%B4%EC%82%AC-%EC%8B%9C-%ED%87%B4%EC%A7%81%EA%B8%88-%EC%9E%84%EA%B8%88-%EC%B2%B4%EB%B6%88-%EC%8B%9C-%EB%85%B8%EB%8F%99%EB%B6%80%EC%97%90-%EC%A7%84%EC%A0%95-%EC%8B%A0%EC%B2%AD-%EB%B0%A9%EB%B2%95#entry47comment</comments>
      <pubDate>Mon, 10 Feb 2014 18:29:40 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 계정 추가 스크립트</title>
      <link>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B3%84%EC%A0%95-%EC%B6%94%EA%B0%80-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8</link>
      <description>&lt;pre id=&quot;code_1723221682291&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/bin/bash
 
clear
 
echo ==================================================================
echo &quot;                     UserAdd Process Start                      &quot;
echo ==================================================================
 
echo -n &quot;User Name : &quot;
read username
useradd $username
echo ------------------------
echo PassWord Setting
echo ------------------------
passwd $username
 
echo ==================================================================
echo &quot;                     www root directory making                      &quot;
echo ==================================================================
echo
echo -n &quot;www root Directory path : &quot;
echo /home/$username/www
mkdir -p /home/$username/www
 
echo ==================================================================
echo &quot;             root directory setting &amp;amp; test index.php making     &quot;
echo ==================================================================
chmod 775 /home/$username
chmod 707 /home/$username/www
chown $username.$username /home/$username/www
echo &quot; &quot; &amp;gt;&amp;gt;/home/$username/www/index.php
echo &quot;&amp;lt;?php phpinfo(); ?&amp;gt;&quot; &amp;gt;&amp;gt; /home/$username/www/index.php
chown $username.$username /home/$username/www/index.php
chmod 775 /home/$username/www/index.php
 
echo checking -----------------------------------------------------------
ls -al /home/$username
echo checking -----------------------------------------------------------
ls -al /home/$username/www
 
 
echo ==================================================================
echo &quot;                        MySQL useradd&quot;
echo ==================================================================
echo &quot;Username : $username&quot;
echo &quot;dbname : $username&quot;
echo -n &quot;User p/w : &quot;
read userpw
echo &quot; &quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;use mysql;&quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;create database $username;&quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;grant all privileges on $username.* to $username@localhost identified by '$userpw';&quot; &amp;gt;&amp;gt; mysql_useradd.sql
echo &quot;FLUSH PRIVILEGES;&quot; &amp;gt;&amp;gt; mysql_useradd.sql
/usr/bin/mysql -uroot -p비번 &amp;lt; ./mysql_useradd.sql
cat ./mysql_useradd.sql
rm -rf ./mysql_useradd.sql&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당자료는 제가 작성한 것이 아닙니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 출처가 명확치 않아 표기하지 않았으며, 원 제작자님이 계시면 메일이나 글 남겨 주시면 출처 표시 하도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 계정에선 mkuser 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비번에 비번&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/bin 에 이동해서 touch mkuser&amp;nbsp; &amp;gt; vi mkuser&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vhost.conf 파일에 가상호스팅 추가&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vi /etc/httpd/conf/vhost.conf 후 하단에 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/45</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B3%84%EC%A0%95-%EC%B6%94%EA%B0%80-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8#entry45comment</comments>
      <pubDate>Sat, 8 Feb 2014 05:19:03 +0900</pubDate>
    </item>
    <item>
      <title>[warn] _default_ VirtualHost overlap on port 80, the first has precedence</title>
      <link>https://azit4u.tistory.com/entry/warn-default-VirtualHost-overlap-on-port-80-the-first-has-precedence</link>
      <description>&lt;P&gt;리눅스 가상호스팅 관련 httpd 재시작시 아래와 같은 에러 발생&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.2&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;BACKGROUND-COLOR: #000000; COLOR: #ffffff&quot;&gt;[warn] _default_ VirtualHost overlap on port 80, the first has precedence&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;httpd.conf 파일을 열어 &lt;/P&gt;
&lt;P&gt;NameVirtualHost *:80&amp;nbsp; 해당 라인 주석 해제 해준다.&lt;/P&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/44</guid>
      <comments>https://azit4u.tistory.com/entry/warn-default-VirtualHost-overlap-on-port-80-the-first-has-precedence#entry44comment</comments>
      <pubDate>Sat, 8 Feb 2014 05:17:09 +0900</pubDate>
    </item>
    <item>
      <title>쉘스크립트에서 한글이 깨져 보일때 해결 방법</title>
      <link>https://azit4u.tistory.com/entry/%EC%89%98%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C-%ED%95%9C%EA%B8%80%EC%9D%B4-%EA%B9%A8%EC%A0%B8-%EB%B3%B4%EC%9D%BC%EB%95%8C-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;P&gt;쉘스크립트에서 한글이 깨져 보일때 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 458px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2743D24B52F526C41A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2743D24B52F526C41A&quot; width=&quot;458&quot; height=&quot;112&quot; filename=&quot;env.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;P&gt;위와 같이 &lt;/P&gt;
&lt;P&gt;명령어 창에 &lt;STRONG&gt;env | grep LANG&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;이라 치면 나오는 값을 #!/bin/bash 아래에 붙여 넣어서 해결 &lt;/P&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/43</guid>
      <comments>https://azit4u.tistory.com/entry/%EC%89%98%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C-%ED%95%9C%EA%B8%80%EC%9D%B4-%EA%B9%A8%EC%A0%B8-%EB%B3%B4%EC%9D%BC%EB%95%8C-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95#entry43comment</comments>
      <pubDate>Sat, 8 Feb 2014 03:33:13 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트로 각자리 숫자 합계 구하기</title>
      <link>https://azit4u.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C-%EA%B0%81%EC%9E%90%EB%A6%AC-%EC%88%AB%EC%9E%90-%ED%95%A9%EA%B3%84-%EA%B5%AC%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;김호의 뜬금 없는 과제..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;var num = 12345;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일때 각 자리수를 더한 결과 값을 15가 되도록 출력.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열로 변환하지말고 작업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음엔 아래와 같이 코드 작성&lt;/p&gt;
&lt;pre id=&quot;code_1723217658653&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
var num = 12345;
var sum = 0;

for(i=0;i&amp;lt;5;i++) {
	sum+=num%10;
	num = parseInt(num/10);
}

document.write(sum);

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 위와 같이 작성시에는 &lt;br /&gt;자리수를 알고 계산 해야 하므로 &lt;span style=&quot;background-color: #ff0000; color: #ffffff;&quot;&gt;while&lt;/span&gt; 문을 이용해서 자리수 제한 없이 계산 가능 하도록 &lt;br /&gt;(&lt;a class=&quot;tx-link&quot; href=&quot;http://jokack01.tistory.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;background-color: #66e8ff; color: #000000;&quot;&gt;김호&lt;/span&gt;&lt;/a&gt;가 작성한 코드와 병합(while문) )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1723217689355&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script&amp;gt;
var num = 123456;
var sum = 0;

while(num &amp;gt; 0) {
sum += num%10;
num = parseInt(num/10);
}
document.write(sum);

&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/42</guid>
      <comments>https://azit4u.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C-%EA%B0%81%EC%9E%90%EB%A6%AC-%EC%88%AB%EC%9E%90-%ED%95%A9%EA%B3%84-%EA%B5%AC%ED%95%98%EA%B8%B0#entry42comment</comments>
      <pubDate>Fri, 24 Jan 2014 14:21:46 +0900</pubDate>
    </item>
    <item>
      <title>scp</title>
      <link>https://azit4u.tistory.com/entry/scp</link>
      <description>&lt;P&gt;scp -r id@domain.com:/절대경로/ .&lt;/P&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/41</guid>
      <comments>https://azit4u.tistory.com/entry/scp#entry41comment</comments>
      <pubDate>Fri, 28 Jun 2013 09:13:50 +0900</pubDate>
    </item>
    <item>
      <title>ps aux | grep apache</title>
      <link>https://azit4u.tistory.com/entry/ps-aux-grep-apache</link>
      <description>ps aux | grep apache 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;현재 실행되고 있는 데몬(현재는 apache) 검색&lt;/P&gt;</description>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/38</guid>
      <comments>https://azit4u.tistory.com/entry/ps-aux-grep-apache#entry38comment</comments>
      <pubDate>Mon, 11 Mar 2013 19:54:43 +0900</pubDate>
    </item>
    <item>
      <title>Notice: Use of undefined constant 오류</title>
      <link>https://azit4u.tistory.com/entry/Notice-Use-of-undefined-constant-%EC%98%A4%EB%A5%98</link>
      <description>&lt;P&gt;Notice: Use of undefined constant&amp;nbsp; 오류&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;$query = &quot;select * from board_notice where idx = '&quot;.$_GET[idx].&quot;'&quot;;&lt;/P&gt;
&lt;P&gt;위와 같은 형태에서 &lt;/P&gt;
&lt;P&gt;$query = &quot;select * from board_notice where idx = '&quot;.$_GET['idx'].&quot;'&quot;;&lt;/P&gt;
&lt;P&gt;위와 같은 형식으로 처리 하니 오류는 미발생 &lt;/P&gt;
&lt;P&gt;근본적인 처리 방법은 아래와 같이&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;php.ini 에서&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;error_reporting = E_ALL 주석 &lt;/P&gt;
&lt;P&gt;or &lt;br /&gt;error_reporting = E_ALL &amp;amp; ~E_NOTICE 수정&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>PHP</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/37</guid>
      <comments>https://azit4u.tistory.com/entry/Notice-Use-of-undefined-constant-%EC%98%A4%EB%A5%98#entry37comment</comments>
      <pubDate>Mon, 11 Feb 2013 13:48:32 +0900</pubDate>
    </item>
    <item>
      <title>홈페이지 제작해 드립니다.</title>
      <link>https://azit4u.tistory.com/entry/%ED%99%88%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%A0%9C%EC%9E%91%ED%95%B4-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4</link>
      <description>&lt;P&gt;홈페이지 제작해 드립니다.&lt;br /&gt;&lt;br /&gt;주로 그누보드, 영카트, 고도몰로 작업합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;HTML 코딩도 가능합니다(모바일 코딩은 시간대비 단가가 낮아서 좀 힘들어서 받지 않겠습니다).&lt;/P&gt;
&lt;P&gt;고도몰의 경우는 독립형만 커스터마이징이 가능하기에 독립형을 구매하신 후에 의뢰해 주시기 바랍니다.&lt;br /&gt;&lt;SPAN style=&quot;WIDTH: 1px; FLOAT: right; HEIGHT: 1px&quot; id=callbacknestnyaongnyaongcom10468012&gt;&lt;/SPAN&gt;디자이너, 개발자는 2명 이상씩 대기 중이기 때문에 디자인부터 프로그램까지 가능합니다.&lt;br /&gt;&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;작업 의뢰는 &lt;A href=&quot;mailto:admin@mandooya.com&quot;&gt;admin@mandooya.com&lt;/A&gt;으로 하시면 되구요, 팀으로 움직이긴 하지만 회사가 아닌지라 세금 계산서 발행이 불가능합니다.&lt;/P&gt;
&lt;P&gt;이 점 충분히 감안하시고 연락 주시기 바랍니다.&lt;/P&gt;</description>
      <category>기타</category>
      <category>개발자</category>
      <category>고도몰</category>
      <category>그누보드</category>
      <category>디자이너</category>
      <category>리뉴얼</category>
      <category>영카트</category>
      <category>웹사이트</category>
      <category>커스터마이징</category>
      <category>튜닝</category>
      <category>프로그래머</category>
      <category>홈페이지</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/32</guid>
      <comments>https://azit4u.tistory.com/entry/%ED%99%88%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%A0%9C%EC%9E%91%ED%95%B4-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4#entry32comment</comments>
      <pubDate>Fri, 11 Jan 2013 23:59:41 +0900</pubDate>
    </item>
    <item>
      <title>고도몰 커스터마이징 작업</title>
      <link>https://azit4u.tistory.com/entry/%EA%B3%A0%EB%8F%84%EB%AA%B0-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95-%EC%9E%91%EC%97%85</link>
      <description>&lt;P&gt;고도몰 커스터마이징 작업의뢰 받습니다.&lt;/P&gt;
&lt;P&gt;커스터마이징(튜닝) 전문 업체에서 근무 하면서 쌓은 노하우 소스로 빠르고 정확한 처리가 가능 합니다.&lt;/P&gt;
&lt;P&gt;원하시는 기능을 정리해서 메일을 보내주시면 충분한 상담으로 가능여부를 회신 드리도록 하겠습니다.&lt;/P&gt;
&lt;P&gt;또한&amp;nbsp;저희는 팀의 형태로 작업을 진행해 다년간 손을 맞춰온 작업자들 이므로 &lt;/P&gt;
&lt;P&gt;더 신속한 처리가 가능 할 것 같습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;mail:&amp;nbsp;&amp;nbsp; &lt;A href=&quot;mailto:admin@mandooya.com&quot;&gt;admin@mandooya.com&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;----------------- 작업 불가 부분 -----------------------------&lt;/P&gt;
&lt;P&gt;1. 해외 pg 관련&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; - 위부분은 해당 국가에 해당 하는 개발자 분들에게 요청 하는 편이 테스트나 작업이 훨씬 용이 합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 저희가 매뉴얼 숙지 및 작업 테스트를 완벽히 할 수 없기 때문에 작업이 불가능 합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. 패치 관련 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; - 패치의 경우네는 완전한 노가다 작업입니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;한라인 한라인 비교 하면서 커스터마이징 된 부분을 빼고 수정 및 추가 를 해야 하므로 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 작업 시간도 많이 걸릴 뿐더러 비용 또한 문제가 되므로 업체에 요청하는것이 더 좋은 방법인 것 같습니다.&lt;/P&gt;</description>
      <category>기타</category>
      <category>고도몰</category>
      <category>쇼핑몰</category>
      <category>커스터마이징</category>
      <category>튜닝</category>
      <category>홈페이지</category>
      <category>홈페이지제작</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/36</guid>
      <comments>https://azit4u.tistory.com/entry/%EA%B3%A0%EB%8F%84%EB%AA%B0-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95-%EC%9E%91%EC%97%85#entry36comment</comments>
      <pubDate>Fri, 11 Jan 2013 23:58:23 +0900</pubDate>
    </item>
    <item>
      <title>파일 및 디렉토리 구조</title>
      <link>https://azit4u.tistory.com/entry/%ED%8C%8C%EC%9D%BC-%EB%B0%8F-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0</link>
      <description>&lt;P&gt;기본 실행 명령어 (/bin) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 시스템을 관리하는 명령어를 제외하고 일반저인 명령어(ls,ps,cp,mv,cat,chmod,chown,date,kill,mount) 들이 포함된&amp;nbsp; &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&amp;nbsp; 디렉토리 &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;시스템 운영 명령어 (/sbin) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 시스템 운영에 필요한 명령어 포함, 슈퍼 유저만 사용할 수 있는 명령어구성 (halt, shutdown, fdisk, mkfs)&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;시스템 설정 파일 (/etc) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;-&amp;nbsp;시스템 설정 파일 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;-&amp;nbsp;마운트 정보(/etc/fstab) 파일 : 리눅스 부팅 시 처리되는 마운트와 관련된 내용 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;-&amp;nbsp;사용자 계정 정보(/etc/passwd) 파일&amp;nbsp;: 사용자 계정 정보와 패스워드, 사용하는 쉘 및 홈 디렉토리에 대한 정보&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;-&amp;nbsp;사용자 패스워드 정보(/etc/shadow) 파일 : passwd 파일의 패스워드 정보가 암호회 된 파일, 유효 기간 내용 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;-&amp;nbsp;그룹 정보(/etc/group) 파일 : 사용자 그룹에 대해 정의된 파일, 시스템의 모든 계정은 한 개 이상의 그룹에 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;-&amp;nbsp;cron 설정(/etc/cron.*) 디렉토리 : 시스템에기적인 스케쥴링을 하고자 하는경우 사용 , hourly, daily, weeklym &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&amp;nbsp; monthly&amp;nbsp;등이 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 수퍼데몬 설정(/etc/xinetd.d) 디렉토리 : xinetd 데몬에 의해 동작하는 서비스 데몬들의 설정 파일 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 실행 프로그램(/etc/init.d) 디렉토리 : 리눅스 시스템 부팅 시 실행되는 프로그램들을 실행하거나 시스템 종료 시&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&amp;nbsp; 동작중인 프로그램을 중단 하는 쉘 스크립트가 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 계정 생성 환경(/etc/skel) 디렉토리 : adduser 혹은 useraddd 명령어 사용시 각 계정의 홈에 생성 되는 &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&amp;nbsp; 환경 설정 파일들이 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 계정 메일(/etc/mail) 디렉토리 : sendmail 기본으로 사용 하는 설정 파일 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 데몬 환경 설정(/etc/httpd, /etc/vsftpd, /etc/squid, /etc/*) 디렉토리 : rpm 형식으로 프로그램 설치시 설정 파일 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;마운트 (/media) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 시디롬 이나 플로피 디스크 혹은 usb 메로리등이 임시로 마운트 되는 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;부트 파일(/boot) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;- 리눅스 부팅에 관한 모든 파일이 포함&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;장치 파일(/dev) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 리눅스 시스템에서 인식한 모든 장치들이 파일 형태로 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;사용자 홈(/home) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 일반 사용자들의 홈 디렉토리가 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;라이브러리(/lib) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 명령어나 응용 프로그램이 실행하거나 새로운 프로그램을 개발하는 데 필요한 동적 라이브러리와 정적 라이브러리 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;응용 프로그램(/usr) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 실행 가능한 명령어, 시스템 프로그램, 라이브러리 루틴 등을 포함 하고 있는 디렉토리 &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 사용자 실행 명령어(/usr/bin) 디렉토리 : /bin 디렉토리에 포함 되지 않은 대부분의 사용자 명령어 들이 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 추가 시스템 명령어(/usr/sbin) 디렉토리 : /sbin 디렉토리에 포함 되지 않은 시스템 관련 명령어들이 포함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 헤더파일(/usr/include) 디렉토리 : c나 c++ 프로그램의 헤더 파일이 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 추가 프로그램 설치(/usr/local) 디렉토리 : 리눅스 시스템에 새로운 프로그램을 설치 하게 되면 대부분 이 디렉토리에&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp; 설치&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;가변 자료 저장(/var) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 리눅스에서 여러 프로그램들이 실행 되면서 만들어지는 로그 파일이나 스풀 파일들이 존재&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;프로그램 추가 설치(/opt) 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 리눅스에 번들로 제공되지 않는 프로그램을 추가로 설치 할 경우 사용 하는 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;lost+found 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;- 디스크의 오류나 부적절한 시스템 종료에 의해 잃어 버리는 파일을 위해 사용되는 디렉토리&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/35</guid>
      <comments>https://azit4u.tistory.com/entry/%ED%8C%8C%EC%9D%BC-%EB%B0%8F-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0#entry35comment</comments>
      <pubDate>Mon, 2 Jul 2012 02:15:10 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 명령어</title>
      <link>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%AA%85%EB%A0%B9%EC%96%B4</link>
      <description>&lt;P&gt;명령어 경로 확인 : &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;which [명령어]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;시간과 날짜 출력 : &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;date&amp;nbsp; - 현재 시스템의 시간과 날짜&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;date MMDDhhmmYY - MM:월, DD:일, hh:시간, mm:분, YY:년도&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;date -d '3 months 2day'&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;date -d '3 days ago'&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;달력 출력 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;cal - 현재 달력&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;cal 11 2012 - 2012년 11월의 달력&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;사용자 정보 확인 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;id 유저아이디&amp;nbsp;- 해당 유저의 사용자 정보 출력&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;id - 로그인된 사용자 정보&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;로그인명 확인 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;logname &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;사용자 정보 보기 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;who [옵션] &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;로그인정보 보기 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;whoami &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;who am i -&amp;nbsp;whoami 보다 많은 정보 출력&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;로그인된 사용자 보기 : &amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;users &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;사용자 정보 알기 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;finger [옵션] [사용자아이디]&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 4em&quot;&gt;[옵션] - i : 기본값 , -p : 정보 출력 시&amp;nbsp; .plan 파일으 내용은 생략 , -s : 간단하게 정보 출력&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;서버 이름 알기 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;hostname&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;명령어의 간단한 설명 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;whatis &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;매뉴얼 보기 : &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;man &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;컴퓨터 종류 알기 :&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;arch&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;화면 지우기 : &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;clear&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/34</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%AA%85%EB%A0%B9%EC%96%B4#entry34comment</comments>
      <pubDate>Sat, 30 Jun 2012 00:24:47 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 사용자 생성</title>
      <link>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%83%9D%EC%84%B1</link>
      <description>&lt;P&gt;&lt;STRONG&gt;사용자 계정 생성&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;useradd 사용자명&lt;/P&gt;
&lt;P&gt;paswod 사용자명&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/home/사용자명/ &lt;/P&gt;
&lt;P&gt;아래 디렉토리 생성 mkdir www&lt;/P&gt;
&lt;P&gt;등으로..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;chmod -R 퍼미션 디렉토리명 //-R 은 하위 디렉토리까지 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;chown -R 사용자 디렉토리명&lt;/P&gt;
&lt;P&gt;chgrp -R&amp;nbsp;사용자 디렉토리명 &lt;/P&gt;
&lt;P&gt;(그룹,소유자 한번에 변경 chown -R 사용자명:그룹명 디렉토리명)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;mysql 에 root 패스워드 설정한 적이 없을때(초기세팅후)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;mysql -uroot 접속&lt;/P&gt;
&lt;P&gt;use mysql;&lt;/P&gt;
&lt;P&gt;update set user set password=password('비밀번호') where user='root';&lt;/P&gt;
&lt;P&gt;flush privileges;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;mysql 사용자 생성&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;mysql -uroot -p루트패스워드;&lt;/P&gt;
&lt;P&gt;create database 데이터베이스명;&lt;/P&gt;
&lt;P&gt;grant all privileges on &lt;A href=&quot;mailto:데이터베이스명@localhost&quot;&gt;데이터베이스명&lt;/A&gt;.* to &lt;A href=&quot;mailto:사용자아이디@localhost&quot;&gt;사용자아이디@localhost&lt;/A&gt; identified by '패스워드';&lt;/P&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/31</guid>
      <comments>https://azit4u.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%83%9D%EC%84%B1#entry31comment</comments>
      <pubDate>Sat, 12 May 2012 14:42:29 +0900</pubDate>
    </item>
    <item>
      <title>서브 도메인 무제한 사용 하기</title>
      <link>https://azit4u.tistory.com/entry/%EC%84%9C%EB%B8%8C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%AC%B4%EC%A0%9C%ED%95%9C-%EC%82%AC%EC%9A%A9-%ED%95%98%EA%B8%B0</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;etc/httpd/conf/httpd.conf&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;&amp;lt;VirtualHost *:80&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAdmin &lt;A href=&quot;mailto:webmaster@test.com&quot;&gt;webmaster@test.com&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerName&amp;nbsp; test.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAlias &lt;A href=&quot;http://www.test.com/&quot;&gt;www.test.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteEngine on&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteCond&amp;nbsp; %{HTTP_HOST}&amp;nbsp;!^www\.test\.com$&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteCond&amp;nbsp; %{HTTP_HOST}&amp;nbsp;!^test\.com$&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteCond&amp;nbsp; %{HTTP_HOST}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^[^.]+\.test.com$&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteRule&amp;nbsp; ^(.+)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %{HTTP_HOST}$1 [C]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RewriteRule&amp;nbsp; ^([^.]+)\.test\.com(.*) /home/$1/www$2&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ErrorLog logs/test.com-error_log&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CustomLog logs/test.com-access_log common&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DocumentRoot /home/test/www/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;&lt;br /&gt;위와 같을 경우 &lt;br /&gt;&lt;br /&gt;study.test.com 로 접속할 경우&lt;br /&gt;/home/study/www디렉토리로 접속&lt;br /&gt;&lt;br /&gt;jquery.test.com 로 접속할 경우&lt;br /&gt;/home/jquery/www디렉토리로 접속&lt;br /&gt;&lt;br /&gt;www.test.com,test.com&lt;br /&gt;의 경우 test/www로 접속&lt;br /&gt;&lt;/P&gt;</description>
      <category>Linux</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/30</guid>
      <comments>https://azit4u.tistory.com/entry/%EC%84%9C%EB%B8%8C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%AC%B4%EC%A0%9C%ED%95%9C-%EC%82%AC%EC%9A%A9-%ED%95%98%EA%B8%B0#entry30comment</comments>
      <pubDate>Fri, 23 Mar 2012 01:16:07 +0900</pubDate>
    </item>
    <item>
      <title>group_concat</title>
      <link>https://azit4u.tistory.com/entry/groupconcat</link>
      <description>&lt;br /&gt;
&lt;br /&gt;mysql&amp;gt; select * from tableA;&lt;br /&gt;
+-----------+------+&lt;br /&gt;
| name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | age&amp;nbsp; |&lt;br /&gt;
+-----------+------+&lt;br /&gt;
| 임상현 |&amp;nbsp;&amp;nbsp; 30 | &lt;br /&gt;
| 김희철 |&amp;nbsp;&amp;nbsp; 30 | &lt;br /&gt;
| 이진희 |&amp;nbsp;&amp;nbsp; 34 | &lt;br /&gt;
| 김재언 |&amp;nbsp;&amp;nbsp; 37 | &lt;br /&gt;
| 정경호 |&amp;nbsp;&amp;nbsp; 30 | &lt;br /&gt;
+-----------+------+&lt;br /&gt;
5 rows in set (0.00 sec)&lt;br /&gt;
&lt;br /&gt;위와 같은 테이블에서 age가 30인 사람들의 열을 한필드에 뽑아 오고 싶을때 &lt;br /&gt;
&lt;br /&gt;mysql&amp;gt; select group_concat(name)as names, age from tableA where age=30;&lt;br /&gt;
+-------------------------------+------+&lt;br /&gt;
| names&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | age&amp;nbsp; |&lt;br /&gt;
+-------------------------------+------+&lt;br /&gt;
| 임상현,김희철,정경호 |&amp;nbsp;&amp;nbsp; 30 | &lt;br /&gt;
+-------------------------------+------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&lt;br /&gt;위와 같이 하면&amp;nbsp;names에 (임상현,김희철,정경호)의 값을 불러 올 수가 있다.</description>
      <category>MYSQL</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/29</guid>
      <comments>https://azit4u.tistory.com/entry/groupconcat#entry29comment</comments>
      <pubDate>Sun, 5 Feb 2012 20:42:29 +0900</pubDate>
    </item>
    <item>
      <title>jquery scrollTop(), position()</title>
      <link>https://azit4u.tistory.com/entry/jquery-scrollTop-position</link>
      <description>&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;&amp;lt;!DOCTYPE &lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;html&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#84c1ff&gt;&amp;lt;html&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#84c1ff&gt;&amp;lt;head&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;meta &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;http-equiv&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;Content-type&quot; &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;content&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;text/html; charset=UTF-8&quot; &lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;/&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;script &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;type&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;text/javascript&quot; &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;src&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;style &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;type&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;text/css&quot;&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=#fddba8&gt;#diva {&lt;/FONT&gt;
			&lt;FONT color=#84c1ff&gt;height:&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;2500px;&lt;/FONT&gt;
		&lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;
		&lt;FONT color=#fddba8&gt;#scrollBtn1,#scrollBtn2 {&lt;/FONT&gt;
			&lt;FONT color=#84c1ff&gt;cursor:&lt;/FONT&gt;&lt;FONT color=#ff8080&gt;pointer&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;;&lt;/FONT&gt;
		&lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;&amp;lt;/style&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;script &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;type&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;text/javascript&quot;&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ff8080&gt;document&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;ready&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(){&lt;/FONT&gt;

			&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#scrollBtn1&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#faaa32&gt;click&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(){&lt;/FONT&gt;
				&lt;FONT color=#d2ffd2&gt;//divb의 top의 위치 값으로 이동&lt;/FONT&gt;
				&lt;FONT color=#84c1ff&gt;var &lt;/FONT&gt;&lt;FONT color=#fddba8&gt;pos=&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#divb&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;position&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;().&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;top&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;;&lt;/FONT&gt;
				&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;html, body&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;animate&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;({&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;scrollTop&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;:pos},&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'slow'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
			&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;

			&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#scrollBtn2&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#faaa32&gt;click&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(){&lt;/FONT&gt;
				&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;html, body&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;animate&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;({&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;scrollTop&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;:0},&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'slow'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
			&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
		&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;&amp;lt;/script&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#84c1ff&gt;&amp;lt;/head&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#84c1ff&gt;&amp;lt;body&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;div &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;id&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;diva&quot;&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&lt;/FONT&gt;&lt;FONT color=#e1e1e1&gt; &lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;		맨위&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;		&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;p &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;id&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;scrollBtn1&quot;&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&lt;/FONT&gt;&lt;FONT color=#e1e1e1&gt;[맨아래로 이동]&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;/p&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;/div&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;div &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;id&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;divb&quot;&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;		맨 아래 &lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;		&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;p &lt;/FONT&gt;&lt;FONT color=#ff8080&gt;id&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;=&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;scrollBtn2&quot;&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;gt;&lt;/FONT&gt;&lt;FONT color=#e1e1e1&gt;[맨위로 이동]&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;/p&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#e1e1e1&gt;	&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;&amp;lt;/div&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#84c1ff&gt;&amp;lt;/body&amp;gt;&lt;/FONT&gt;
&lt;FONT color=#84c1ff&gt;&amp;lt;/html&amp;gt;&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;&lt;br /&gt;
dd&lt;br /&gt;
해당 페이지 맨위와 divb(맨 아래)로 애니메이션 이동&lt;br /&gt;
&lt;br /&gt;확인:&lt;A title=&quot;[http://azit4u.phps.kr/jquery/scrollTop.html]로 이동합니다.&quot; href=&quot;http://azit4u.phps.kr/jquery/scrollTop.html&quot; target=_blank&gt;http://azit4u.phps.kr/jquery/scrollTop.html&lt;/A&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>jQuery</category>
      <category>position</category>
      <category>scrollTop</category>
      <category>맨 아래로</category>
      <category>맨위로</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/28</guid>
      <comments>https://azit4u.tistory.com/entry/jquery-scrollTop-position#entry28comment</comments>
      <pubDate>Thu, 27 Oct 2011 16:16:55 +0900</pubDate>
    </item>
    <item>
      <title>jQuery preventDefault();</title>
      <link>https://azit4u.tistory.com/entry/jQuery-preventDefault</link>
      <description>하이퍼 링크가 작동 하지않는다.&lt;br /&gt;
&lt;br /&gt;&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;.roll&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#faaa32&gt;click&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ff8080&gt;event&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;) {&lt;/FONT&gt;
	&lt;FONT color=#ff8080&gt;event&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;.preventDefault();&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/27</guid>
      <comments>https://azit4u.tistory.com/entry/jQuery-preventDefault#entry27comment</comments>
      <pubDate>Mon, 17 Oct 2011 15:53:01 +0900</pubDate>
    </item>
    <item>
      <title>jQuery hover(), toggleClass(), toggle()</title>
      <link>https://azit4u.tistory.com/entry/jQuery-hover-toggleClass-toggle</link>
      <description>&lt;FONT color=#b8d63d&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt&quot;&gt;hover(마우스오버시 이벤트,마우스아웃시 이벤트)&lt;/SPAN&gt;&lt;br /&gt;
&lt;/STRONG&gt;&lt;/FONT&gt;&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#button&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;hover&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;() {&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;this&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;addClass&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;hover&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
	&lt;FONT color=#fddba8&gt;},&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;() {&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;this&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;removeClass&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;hover&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
	&lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#button&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;hover&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(){&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#button&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;toggleClass&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;hover&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;&lt;br /&gt;
위 두 소스는 같은 결과를 출력&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#b8d63d&gt;&lt;STRONG&gt;toggleClass() &lt;/STRONG&gt;&lt;/FONT&gt;- 선택한 엘리먼트에 클래스가 이미 적용되어 있으면 해당 클래스를 제거 하고 그렇지 않으면&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 해당 클래스를 적용 한다.&lt;br /&gt;
&lt;br /&gt;&lt;FONT color=#b8d63d&gt;&lt;STRONG&gt;toggle(handler0,handler1) &lt;/STRONG&gt;&lt;/FONT&gt;- 선택한 엘리먼트에 두개 이벤트 연결 한번 실행 마다 0,1 의 핸들러 함수 실행&lt;br /&gt;
&lt;br /&gt;&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#button&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;toggle&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(){&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;this&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;removeClass&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;hover2&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;this&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;addClass&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;hover&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
	&lt;FONT color=#fddba8&gt;},&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(){&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;this&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;removeClass&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;hover&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;this&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;addClass&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;hover2&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
	&lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <category>hover</category>
      <category>jQuery</category>
      <category>Toggle</category>
      <category>toggleClass</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/26</guid>
      <comments>https://azit4u.tistory.com/entry/jQuery-hover-toggleClass-toggle#entry26comment</comments>
      <pubDate>Fri, 14 Oct 2011 16:27:44 +0900</pubDate>
    </item>
    <item>
      <title>jQuery css</title>
      <link>https://azit4u.tistory.com/entry/jQuery-css</link>
      <description>&lt;br /&gt;
&lt;FONT color=#b8d63d&gt;.css(propertyName,value) &lt;/FONT&gt;-&amp;nbsp; 기본적 형태 css( 속성명 , 속성값)&lt;br /&gt;
&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;.box&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;css&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;width&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;,&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;100px&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;FONT color=#b8d63d&gt;.css(propertyName,function(index,value) { })&lt;/FONT&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; - function 사용 자신이 원하는 기능 확장 // index는 선택한 개체 순서, value 는 해당 개체의 현재 속성값&lt;br /&gt;
&lt;/P&gt;&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#inText&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;css&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;color&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;,&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;index&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;,&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;value&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;) {&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;if&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;value&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;==&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;rgb(0, 0, 255)&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;){ &lt;/FONT&gt;&lt;FONT color=#d2ffd2&gt;//color 가 rgb(0, 0, 255) 이면 red로 변경&lt;/FONT&gt;
		&lt;FONT color=#84c1ff&gt;return &lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;red&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;;&lt;/FONT&gt;
	&lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;FONT color=#b8d63d&gt;.css(map) &lt;/FONT&gt;- 맵형태로 입력 {key:value}&lt;/P&gt;&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#button&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;bind&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;mouseover&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;, &lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;() {&lt;/FONT&gt;
	&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#inText&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;css&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;({&lt;/FONT&gt;
		&lt;FONT color=#ffc1ff&gt;'background'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;:&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'cyan'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;,&lt;/FONT&gt;
		&lt;FONT color=#ffc1ff&gt;'font-weight'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;:&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'bold'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;,&lt;/FONT&gt;
		&lt;FONT color=#ffc1ff&gt;'color'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;:&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'blue'&lt;/FONT&gt;
	&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/25</guid>
      <comments>https://azit4u.tistory.com/entry/jQuery-css#entry25comment</comments>
      <pubDate>Fri, 14 Oct 2011 13:16:23 +0900</pubDate>
    </item>
    <item>
      <title>jQuery 마우스 이벤트(클릭한 버튼, 클릭한 위치)  event.button, event.screenX, event.screenY</title>
      <link>https://azit4u.tistory.com/entry/jQuery-%EB%A7%88%EC%9A%B0%EC%8A%A4-%EC%9D%B4%EB%B2%A4%ED%8A%B8%ED%81%B4%EB%A6%AD%ED%95%9C-%EB%B2%84%ED%8A%BC-%ED%81%B4%EB%A6%AD%ED%95%9C-%EC%9C%84%EC%B9%98-eventbutton-eventscreenX-eventscreenY</link>
      <description>&lt;br /&gt;
&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Dotum&quot;&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #576fbd&quot; color=#ffffff&gt;1. 클릭한 버튼 알아내기 &lt;br /&gt;
&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;br /&gt;
&lt;/STRONG&gt;&lt;FONT color=#5fb636&gt;익플: 왼쪽=1, 오른쪽=2 ,휠=4&lt;br /&gt;
사파리,크롬,파폭:왼쪽=0,오른쪽=2,휠=1&lt;br /&gt;
&lt;/FONT&gt;2를 먼저 판단하는게 좋을 듯..&lt;br /&gt;
&lt;PRE style=&quot;PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: #000; PADDING-TOP: 5px&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;.mouseBtn&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;mousedown&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ff8080&gt;event&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;){&lt;/FONT&gt;
       &lt;FONT color=#faaa32&gt;alert&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ff8080&gt;event&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;.&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;button&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
   &lt;FONT color=#84c1ff&gt;if&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ff8080&gt;event&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;.&lt;/FONT&gt;&lt;FONT color=#8bdede&gt;button&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;==2){&lt;/FONT&gt;
       &lt;FONT color=#faaa32&gt;alert&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'right button'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
   &lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;else&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;{&lt;/FONT&gt;
       &lt;FONT color=#faaa32&gt;alert&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'left button'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
   &lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;
 &lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;FONT style=&quot;BACKGROUND-COLOR: #576fbd&quot;&gt;&lt;FONT color=#ffffff&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Dotum&quot;&gt;&lt;STRONG&gt;2.&amp;nbsp;클릭한&amp;nbsp;위치 알아내기&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;br /&gt;
&lt;/FONT&gt;&lt;/FONT&gt;&lt;br /&gt;
&lt;pre style=&quot;background:#000&quot;&gt;
&lt;font face=&quot;Bitstream Vera Sans Mono&quot;&gt;
 &lt;font color=&quot;#84c1ff&quot;&gt;$&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#ffc1ff&quot;&gt;&amp;quot;#inArea&amp;quot;&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;).&lt;/font&gt;&lt;font color=&quot;#faaa32&quot;&gt;click&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#84c1ff&quot;&gt;function&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#ff8080&quot;&gt;event&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;){&lt;/font&gt;
    &lt;font color=&quot;#84c1ff&quot;&gt;var &lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;$x=&lt;/font&gt;&lt;font color=&quot;#ff8080&quot;&gt;event&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#8bdede&quot;&gt;screenX&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;;&lt;/font&gt;
    &lt;font color=&quot;#84c1ff&quot;&gt;var &lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;$y=&lt;/font&gt;&lt;font color=&quot;#ff8080&quot;&gt;event&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#8bdede&quot;&gt;screenY&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;;&lt;/font&gt;
    &lt;font color=&quot;#84c1ff&quot;&gt;$&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#ffc1ff&quot;&gt;&amp;quot;#inText&amp;quot;&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;).&lt;/font&gt;&lt;font color=&quot;#d0a5fc&quot;&gt;html&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#ffc1ff&quot;&gt;'&amp;lt;font color=red&amp;gt;x좌표:'&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;+$x+&lt;/font&gt;&lt;font color=&quot;#ffc1ff&quot;&gt;'&amp;lt;/font&amp;gt;  &amp;lt;font color=blue&amp;gt;y좌표:'&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;+$y+&lt;/font&gt;&lt;font color=&quot;#ffc1ff&quot;&gt;'&amp;lt;/font&amp;gt;'&lt;/font&gt;&lt;font color=&quot;#fddba8&quot;&gt;);&lt;/font&gt;
 &lt;font color=&quot;#fddba8&quot;&gt;});&lt;/font&gt;
&lt;/font&gt;
&lt;/pre&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/24</guid>
      <comments>https://azit4u.tistory.com/entry/jQuery-%EB%A7%88%EC%9A%B0%EC%8A%A4-%EC%9D%B4%EB%B2%A4%ED%8A%B8%ED%81%B4%EB%A6%AD%ED%95%9C-%EB%B2%84%ED%8A%BC-%ED%81%B4%EB%A6%AD%ED%95%9C-%EC%9C%84%EC%B9%98-eventbutton-eventscreenX-eventscreenY#entry24comment</comments>
      <pubDate>Fri, 14 Oct 2011 01:44:57 +0900</pubDate>
    </item>
    <item>
      <title>jQuery bind(), unbind(), trigger()</title>
      <link>https://azit4u.tistory.com/entry/jQuery-bind-unbind-trigger</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#b8d63d&gt;bind() - 여러개의 이벤트와 펑션을 묶어준다&lt;br /&gt;
&lt;/FONT&gt;&lt;/STRONG&gt;ex)&amp;nbsp; &lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#buttons&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;bind&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;click mouseover&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;,&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;() {&lt;/FONT&gt;
&amp;nbsp;&amp;nbsp; &lt;FONT color=#faaa32&gt;alert&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'click or mouseOver'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;);&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;});&lt;/FONT&gt;&lt;/FONT&gt;
&lt;/PRE&gt;&lt;br /&gt;
&lt;STRONG&gt;&lt;FONT color=#b8d63d&gt;unbind() - 이벤트 제거&lt;br /&gt;
&lt;/FONT&gt;&lt;/STRONG&gt;ex)&lt;br /&gt;
&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#buttons&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;bind&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;click mousevoer&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;,&lt;/FONT&gt;&lt;FONT color=#84c1ff&gt;function&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(){&lt;/FONT&gt;
   &lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#buttons&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;unbind&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;click&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;); &lt;/FONT&gt;&lt;FONT color=#d2ffd2&gt;//click 이벤트 비활성 unbind(&quot;click mouseover&quot;)= click mouseover 둘다 비활성&lt;/FONT&gt;
&lt;FONT color=#fddba8&gt;}&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;STRONG&gt;&lt;FONT color=#b8d63d&gt;trigger() - 이벤트의 자동 발생&lt;br /&gt;
&lt;/FONT&gt;&lt;/STRONG&gt;ex) &lt;br /&gt;
&lt;PRE style=&quot;BACKGROUND: #000&quot;&gt;&lt;FONT face=&quot;Bitstream Vera Sans Mono&quot;&gt;
&lt;FONT color=#84c1ff&gt;$&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;&quot;#buttons&quot;&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;).&lt;/FONT&gt;&lt;FONT color=#d0a5fc&gt;trigger&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;(&lt;/FONT&gt;&lt;FONT color=#ffc1ff&gt;'click'&lt;/FONT&gt;&lt;FONT color=#fddba8&gt;); &lt;/FONT&gt;&lt;FONT color=#d2ffd2&gt;//p 엘리먼트 클릭 - 자동발생 &lt;/FONT&gt;
&lt;/FONT&gt;
&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;/PRE&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/23</guid>
      <comments>https://azit4u.tistory.com/entry/jQuery-bind-unbind-trigger#entry23comment</comments>
      <pubDate>Fri, 14 Oct 2011 00:47:57 +0900</pubDate>
    </item>
    <item>
      <title>google jQuery 최신 버전 지원(1.버전대)</title>
      <link>https://azit4u.tistory.com/entry/google-jQuery-%EC%B5%9C%EC%8B%A0-%EB%B2%84%EC%A0%84-%EC%A7%80%EC%9B%901%EB%B2%84%EC%A0%84%EB%8C%80</link>
      <description>&lt;br /&gt;
&amp;nbsp;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;&lt;A href=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js%22%3E%3C/script&quot;&gt;http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&lt;/A&gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;1.x.x 버전대의 jQuery 를 지원 해줍니다.&lt;br /&gt;</description>
      <category>자바스크립트&amp;amp;jQuery</category>
      <author>만두남</author>
      <guid isPermaLink="true">https://azit4u.tistory.com/22</guid>
      <comments>https://azit4u.tistory.com/entry/google-jQuery-%EC%B5%9C%EC%8B%A0-%EB%B2%84%EC%A0%84-%EC%A7%80%EC%9B%901%EB%B2%84%EC%A0%84%EB%8C%80#entry22comment</comments>
      <pubDate>Fri, 7 Oct 2011 16:35:04 +0900</pubDate>
    </item>
  </channel>
</rss>