<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Chillax  in dev</title>
    <link>https://chillin-dev.tistory.com/</link>
    <description>내가 원하는것을 망설임없이 만들고 구현할 수 있는 엔지니어를 꿈꾸며 공부합니다.</description>
    <language>ko</language>
    <pubDate>Sat, 4 Jul 2026 17:14:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Seong Story</managingEditor>
    <image>
      <title>Chillax  in dev</title>
      <url>https://tistory1.daumcdn.net/tistory/4040183/attach/620dae0cbf61420995622e54497aab1a</url>
      <link>https://chillin-dev.tistory.com</link>
    </image>
    <item>
      <title>[PHP] 롯데온 상세페이지 크롤링하기</title>
      <link>https://chillin-dev.tistory.com/89</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;[PHP]&amp;nbsp;롯데온&amp;nbsp;상세페이지&amp;nbsp;크롤링하기&lt;/h2&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;getProductDetail() PHP 함수를 만들어서 상세 정보를 가져와봅니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1744074134903&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// iframe 으로 묶여있는 상세페이지를 크롤링합니다.
	public function getProductDetail($cnt){
		ini_set(&quot;allow_url_fopen&quot;,1); //php 내부 설정으로 URL을 통해 파일을 열 수 있도록 허용합니다. 이는 외부 URL에서 데이터를 가져오는 데 필요합니다.
		
		$url = &quot;https://llis-goodsdetail.lotteon.com/goodsdetail?model=itemdetail&quot;.$cnt; // 상세페이지 url을 가져옵니다. 예시는 롯데온의 상품상세입니다.
		
		require_once APPPATH . &quot;/third_party/simplehtmldom/simple_html_dom.php&quot;; //simple_html_dom.php 파일을 포함합니다. 이 파일은 HTML을 쉽게 파싱하고 조작할 수 있도록 도와주는 라이브러리입니다.
		
		$data = file_get_html($url); //file_get_html 함수를 사용하여 위에서 생성한 URL의 HTML 내용을 가져와 $data 변수에 저장합니다.
		
		$content = $data-&amp;gt;find(&quot;div#llis-root&quot;); //$data에서 div 태그 중 id가 llis-root인 요소를 찾아 $content 변수에 저장합니다. 이 요소는 상품 상세 정보가 포함된 부분입니다.
		
		//$content의 요소 개수가 1개인지 확인합니다. 즉, div#llis-root가 정확히 하나만 존재하는지 체크합니다.
		if(count($content) == 1){
			$return = '';
			foreach($content as $key =&amp;gt; $row){
				$return .= $row-&amp;gt;innertext; //현재 요소의 내부 HTML 내용을 $return 문자열에 추가합니다.
			}
			return $return;
		}else{
			return false;
		}
	}&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;뒤 $cnt 부분은 롯데온 api를 통해 확인 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gl4YT/btsNduL0EUw/MWkaAYnfRgiMIkX3lapC8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gl4YT/btsNduL0EUw/MWkaAYnfRgiMIkX3lapC8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gl4YT/btsNduL0EUw/MWkaAYnfRgiMIkX3lapC8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGl4YT%2FbtsNduL0EUw%2FMWkaAYnfRgiMIkX3lapC8K%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;829&quot; height=&quot;48&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecaEyp/btsNcI5iKbA/tzPshgCrWRpPWwQA4tRukk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecaEyp/btsNcI5iKbA/tzPshgCrWRpPWwQA4tRukk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecaEyp/btsNcI5iKbA/tzPshgCrWRpPWwQA4tRukk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecaEyp%2FbtsNcI5iKbA%2FtzPshgCrWRpPWwQA4tRukk%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;1252&quot; height=&quot;76&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;76&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;태그 구조에 맞게 $content = $data-&amp;gt;find(&quot;div#llis-root&quot;); 부분을 설정해서 가져옵니다.&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;php를 통해 크롤링 데이터를 가져와 필요한 부분을 $return에 저장해 string으로 가져오는 로직이었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;감사합니다.&lt;/p&gt;</description>
      <category>PHP</category>
      <category>크롤링</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/89</guid>
      <comments>https://chillin-dev.tistory.com/89#entry89comment</comments>
      <pubDate>Tue, 8 Apr 2025 10:09:27 +0900</pubDate>
    </item>
    <item>
      <title>PHP에서 현재 날짜와 시간을 특정 형식으로 출력하기</title>
      <link>https://chillin-dev.tistory.com/86</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;PHP에서 현재 날짜와 시간을 특정 형식으로 출력하기&amp;nbsp;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;b&gt;$data(&quot;Y-m-d H:i:s&quot;) 함수를 활용합니다.&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;date(&quot;Y-m-d&amp;nbsp;H:i:s&quot;)는&amp;nbsp;PHP에서&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;자세히&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;date()&amp;nbsp;함수는&amp;nbsp;주어진&amp;nbsp;형식에&amp;nbsp;따라&amp;nbsp;날짜와&amp;nbsp;시간을&amp;nbsp;포맷하여&amp;nbsp;문자열로&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;date(format,&amp;nbsp;timestamp)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;- format: 날짜와 시간을 표현하는 형식 문자열입니다.&lt;br /&gt;- timestamp: 선택적 매개변수로, 특정 시간의 타임스탬프를 지정합니다. 이 매개변수를 생략하면 현재 시간을 사용합니다.&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;date(&quot;Y-m-d&amp;nbsp;H:i:s&quot;)의&amp;nbsp;구성&amp;nbsp;요소&lt;br /&gt;Y:&amp;nbsp;4자리&amp;nbsp;연도&amp;nbsp;(예:&amp;nbsp;2025)&lt;br /&gt;m:&amp;nbsp;2자리&amp;nbsp;월&amp;nbsp;(01부터&amp;nbsp;12까지)&lt;br /&gt;d:&amp;nbsp;2자리&amp;nbsp;일&amp;nbsp;(01부터&amp;nbsp;31까지)&lt;br /&gt;H:&amp;nbsp;24시간&amp;nbsp;형식의&amp;nbsp;시간&amp;nbsp;(00부터&amp;nbsp;23까지)&lt;br /&gt;i:&amp;nbsp;분&amp;nbsp;(00부터&amp;nbsp;59까지)&lt;br /&gt;s:&amp;nbsp;초&amp;nbsp;(00부터&amp;nbsp;59까지)&lt;br /&gt;이&amp;nbsp;조합은&amp;nbsp;&quot;년-월-일&amp;nbsp;시:분:초&quot;&amp;nbsp;형식으로&amp;nbsp;현재&amp;nbsp;날짜와&amp;nbsp;시간을&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_1743657272159&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 H:i:s&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;코드를&amp;nbsp;실행하면,&amp;nbsp;예를&amp;nbsp;들어&amp;nbsp;&quot;2025-04-03&amp;nbsp;14:09:09&quot;와&amp;nbsp;같은&amp;nbsp;형식의&amp;nbsp;문자열이&amp;nbsp;출력됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1743657325312&quot; class=&quot;lasso&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;php&quot;&gt;&lt;code&gt;$timestamp = strtotime(&quot;2025-04-03 14:00:00&quot;);
echo date(&quot;Y-m-d H:i:s&quot;, $timestamp); // 특정 날짜 출력&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>Date()</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/86</guid>
      <comments>https://chillin-dev.tistory.com/86#entry86comment</comments>
      <pubDate>Thu, 3 Apr 2025 20:00:20 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] 함수 vs 메소드 의 차이?</title>
      <link>https://chillin-dev.tistory.com/83</link>
      <description>&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;함수&amp;nbsp;vs&amp;nbsp;메소드&amp;nbsp;의&amp;nbsp;차이?&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;함수와 메소드는 프로그래밍에서 자주 사용되는 용어이며, 둘 다 특정 작업을 수행하는 코드 블록을 의미합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그러나 사용하는 맥락에 따라 차이가 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;php에서 어떤 차이가 있는지 확인해보겠습니다.&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;함수 (Function)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;함수는 독립적으로 정의된 코드 블록으로, &lt;b&gt;어떤 클래스에도 속하지 않습니다.&lt;/b&gt; 함수는 입력값(매개변수)을 받아서 특정 작업을 수행하고, 필요에 따라 결과값을 반환할 수 있습니다. PHP에서 함수는 function 키워드를 사용하여 정의합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예시:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;php&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc;&quot;&gt;&lt;code&gt;function add($a, $b) {
    return $a + $b;
}

echo add(2, 3); // 출력: 5
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;메소드 (Method)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;메소드는 클래스 내에 정의된 함수로, 객체 지향 프로그래밍(OOP)에서 사용됩니다. &lt;b&gt;메소드는 클래스의 인스턴스(객체)와 연관되어 있으며, 해당 객체의 상태를 읽거나 변경하는 데 사용됩니다&lt;/b&gt;. 메소드는 클래스의 멤버 함수라고도 합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예시:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;php&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc;&quot;&gt;&lt;code&gt;class Calculator {
    public function add($a, $b) {
        return $a + $b;
    }
}

$calc = new Calculator();
echo $calc-&amp;gt;add(2, 3); // 출력: 5
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위 예시에서 add는 Calculator 클래스의 메소드입니다. 이 메소드는 Calculator 클래스의 인스턴스를 통해 호출됩니다.&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;주요 차이점 요약&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;정의 위치&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;함수: 클래스 외부에서 독립적으로 정의됩니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;메소드: 클래스 내부에서 정의됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;호출 방식&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;함수: 직접 호출합니다. 예:&lt;span&gt;&amp;nbsp;&lt;/span&gt;add(2, 3);&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;메소드: 클래스의 인스턴스를 통해 호출합니다. 예:&lt;span&gt;&amp;nbsp;&lt;/span&gt;$calc-&amp;gt;add(2, 3);&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;연관성&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;함수: 특정 객체와 연관되지 않습니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;메소드: 특정 객체와 연관되어 있으며, 해당 객체의 상태를 변경하거나 참조합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이러한 차이점을 이해하면 함수와 메소드를 올바르게 사용할 수 있습니다. PHP에서는 객체 지향 프로그래밍을 사용할 때 메소드를 정의하고, 일반적인 절차적 프로그래밍에서는 함수를 정의하는 방식으로 코드를 작성합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;한가지 더&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;PHP 는 함수,메소드를 다른 함수,메소드 내부에서 정의하는것을 허용하지 않습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이는 PHP의 기본 문법입니다. 따라서&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;클래스내에서 메소드를 정의할때는 항상 클래스의 최상위 레벨에 작성해야하고 내부에 작성하지 않도록 주의해야겠습니다.&lt;/p&gt;</description>
      <category>PHP</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/83</guid>
      <comments>https://chillin-dev.tistory.com/83#entry83comment</comments>
      <pubDate>Fri, 21 Jun 2024 11:26:32 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] 코드이그나이터 _remap 메소드의 역할</title>
      <link>https://chillin-dev.tistory.com/82</link>
      <description>&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;코드이그나이터&amp;nbsp;_remap&amp;nbsp;메소드의&amp;nbsp;역할&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;_remap&lt;/b&gt; 메소드는 CodeIgniter 프레임워크에서 사용되는 특별한 메소드로, 모든 컨트롤러 메소드 호출을 가로채어 특정 로직을 실행할 수 있도록 합니다. 이 메소드를 사용하면 요청된 메소드가 존재하지 않더라도&lt;b&gt; 커스텀 로직&lt;/b&gt;을 적용할 수 있습니다.&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;_remap&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드의 역할&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;모든 요청 가로채기&lt;/b&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;_remap&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드는 컨트롤러에서 호출된 모든 메소드를 가로채어 처리할 수 있습니다. 즉, 사용자가 컨트롤러의 어떤 메소드를 호출하든&lt;span&gt;&amp;nbsp;&lt;/span&gt;_remap&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드가 먼저 실행됩니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;커스텀 로직 적용&lt;/b&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;_remap&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드는 호출된 메소드 이름과 매개변수를 인수로 받아, 이를 기반으로 커스텀 로직을 적용할 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;_remap&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드의 구조&lt;/h3&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: #42413d;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;pre class=&quot;php&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc;&quot;&gt;&lt;code&gt;public function _remap($method, $input = null) {
    // 호출된 메소드명: $method
    // 전달된 매개변수: $input

    // 예: 특정 메소드에 대해 다른 메소드를 호출
    if ($method === '특정메소드명') {
        $this-&amp;gt;특정메소드($input);
    } else {
        // 기본 처리 로직
        $this-&amp;gt;기본메소드($method, $input);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;예시 코드&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 _remap 메소드를 사용하여 호출된 메소드에 따라 다른 로직을 적용하는 예시입니다.&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;php&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc;&quot; data-ke-language=&quot;php&quot;&gt;&lt;code&gt;class Category extends CI_Controller {
    
    public function _remap($method, $input = null) {
        // 알리 모델을 불러옴
        $this-&amp;gt;load-&amp;gt;model(&quot;test&quot;);
        
        // Input Data Checking POST Method
        $data = file_get_contents('php://input');
        $data = $this-&amp;gt;lib-&amp;gt;decode_json($data);
        
        // 호출된 메소드에 따라 다른 메소드를 호출
        switch ($method) {
            case &quot;info&quot;:
                $this-&amp;gt;getCategory($data);
                break;
            default:
                $this-&amp;gt;auth-&amp;gt;getResponseJSONError(404, &quot;요청한 메소드가 존재하지 않습니다.&quot;);
                break;
        }
    }
    
    public function getCategory($data) {
        // 이곳에 getCategory 메소드의 내용을 작성하세요.
        
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;예시 설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;_remap&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드는&lt;span&gt;&amp;nbsp;&lt;/span&gt;$method와&lt;span&gt;&amp;nbsp;&lt;/span&gt;$input을 인수로 받습니다.
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;$method: 호출된 메소드명입니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;$input: 전달된 매개변수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;switch&lt;span&gt;&amp;nbsp;&lt;/span&gt;문을 사용하여 호출된 메소드명에 따라 다른 메소드를 호출합니다.
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;info&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드가 호출되면&lt;span&gt;&amp;nbsp;&lt;/span&gt;getCategory&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드를 실행합니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;그 외의 메소드가 호출되면 404 에러를 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;요약&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;_remap&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드는 CodeIgniter의 특별한 메소드로, 모든 컨트롤러 메소드 호출을 가로채어 커스텀 로직을 적용할 수 있습니다. 즉 $method에 따라 원하는 기능을 하나의 컨트롤러로 실행 가능합니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;호출된 메소드명과 매개변수를 인수로 받아 처리할 수 있습니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;이를 통해 유연한 메소드 호출 로직을 구현할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 _remap 메소드를 사용하면 특정 메소드가 존재하지 않더라도 원하는 로직을 적용하여 처리할 수 있습니다.&lt;/p&gt;</description>
      <category>PHP</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/82</guid>
      <comments>https://chillin-dev.tistory.com/82#entry82comment</comments>
      <pubDate>Fri, 21 Jun 2024 11:22:19 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] 코드이그나이터에서 특정 IP만 코드 적용시키기</title>
      <link>https://chillin-dev.tistory.com/81</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;[PHP]&amp;nbsp; 코드이그나이터에서 특정 IP만 코드 적용시키기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드이그나이터에서 접근한 사용자의 IP 주소를 가져오는 메서드가 있습니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;$this-&amp;gt;input-&amp;gt;ip_address();&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;$this-&amp;gt;input-&amp;gt;ip_address()&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;는 CodeIgniter 프레임워크에서 사용자의 IP 주소를 가져오는 메서드입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;이 메서드는 사용자가 웹 애플리케이션에 접근할 때 사용된 IP 주소를 반환합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1718092471211&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;php&quot;&gt;&lt;code&gt;&amp;lt;?php
$ip_address = $this-&amp;gt;input-&amp;gt;ip_address();
echo $ip_address;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;보안&lt;/b&gt;: 이 메서드는 사용자의 IP 주소를 가져올 때 몇 가지 보안 검사를 수행합니다. 예를 들어, IP 주소가 유효한지 확인하고, 프록시 서버를 통한 접근을 감지할 수 있습니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;유효성 검사&lt;/b&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;ip_address()&lt;span&gt;&amp;nbsp;&lt;/span&gt;메서드는 IP 주소의 유효성을 확인합니다. IPv4와 IPv6 주소를 모두 지원합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1718093483546&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {
        // 사용자 IP 주소 가져오기
        $ip_address = $this-&amp;gt;input-&amp;gt;ip_address();
        
        // IP 주소 출력
        echo 'Your IP address is: ' . $ip_address;
        
        // 뷰 로드
        if( $ip_address == '111.11.1.11'){
          $this-&amp;gt;load-&amp;gt;view('welcome_message');
        }
      
    }
}&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;활용&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;로그 기록&lt;/b&gt;: 사용자의 IP 주소를 로그 파일에 기록하여 추적 및 분석에 사용합니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;접근 제어&lt;/b&gt;: 특정 IP 주소를 차단하거나 허용하여 접근 제어 정책을 구현할 수 있습니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&lt;b&gt;보안 강화&lt;/b&gt;: 의심스러운 활동을 탐지하고, 여러 번의 실패한 로그인 시도를 특정 IP 주소에서 차단할 수 있습니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정리&amp;nbsp;&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;$this-&amp;gt;input-&amp;gt;ip_address()&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt; 메서드는 CodeIgniter에서 사용자의 IP 주소를 가져오는 편리한 방법을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt; 이를 통해 로그 기록, 접근 제어, 보안 강화 등 다양한 목적으로 IP 주소를 활용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>PHP</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/81</guid>
      <comments>https://chillin-dev.tistory.com/81#entry81comment</comments>
      <pubDate>Tue, 11 Jun 2024 17:12:58 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] defined('BASEPATH') OR exit('NO direct script access allowed');</title>
      <link>https://chillin-dev.tistory.com/80</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;defined('BASEPATH')&amp;nbsp;OR&amp;nbsp;exit('NO&amp;nbsp;direct&amp;nbsp;script&amp;nbsp;access&amp;nbsp;allowed');&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP 코드이그아니터 프레임워크에서 흔히 상단에 확인할 수 있는 이 코드를 살펴봅니다.&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;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;이 코드는 CodeIgniter 프레임워크에서 흔히 사용되는 보안 수단입니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1718091838986&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;php&quot;&gt;&lt;code&gt;&amp;lt;?php

defined('BASEPATH') OR exit('No direct script access allowed');&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;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;파일이 직접 접근되는 것을 방지하고, 오직 CodeIgniter 애플리케이션을 통해서만 접근할 수 있도록 합니다.&lt;/span&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;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;이 문구가 파일 상단에 위치해 있으면, CodeIgniter의 핵심 파일 중 하나에서 로드된 경우에만 파일이 실행됩니다. 그렇지 않으면 &quot;No direct script access allowed&quot; 메시지를 출력하고 스크립트 실행을 중단합니다.&lt;/span&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;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;1. &lt;b&gt;defined('BASEPATH')&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1a1918; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;BASEPATH는 CodeIgniter의 기본 경로를 정의하는 상수이다. 상수는 CodeIgniter의 기본 파일들이 로드될 때 정의됩니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;defined('BASEPATH')는&lt;span&gt;&amp;nbsp;&lt;/span&gt;BASEPATH&lt;span&gt;&amp;nbsp;&lt;/span&gt;상수가 정의되어 있는지 확인합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;OR exit('No direct script access allowed')&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1a1918; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;만약&lt;span&gt;&amp;nbsp;&lt;/span&gt;BASEPATH&lt;span&gt;&amp;nbsp;&lt;/span&gt;상수가 정의되지 않은 경우, 즉 이 파일이 직접 접근되었을 경우 스크립트 실행을 중단시킵니다.&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot;&gt;exit('No direct script access allowed');는 메시지를 출력하고, 스크립트 실행을 중단합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;왜 사용할까?&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;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;보안적인 이유입니다. &lt;/span&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;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;이는 사용자가 웹 브라우저를 통해 직접 모델 또는 컨트롤러 파일에 접근하려고 시도할 경우, 이 코드는 그 접근을 차단합니다. 이는 직접 파일 접근으로 인해 발생할 수 있는 잠재적인 보안 취약점을 방지합니다.&lt;/span&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;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;언제 사용할까?&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;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: start;&quot;&gt;이 코드는 CodeIgniter의 모든 &lt;u&gt;컨트롤러, 모델, 뷰&lt;/u&gt; 파일의 맨 위에 위치하여 파일이 올바른 방식으로 로드되었는지 확인합니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>코드이그나이터</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/80</guid>
      <comments>https://chillin-dev.tistory.com/80#entry80comment</comments>
      <pubDate>Tue, 11 Jun 2024 16:50:05 +0900</pubDate>
    </item>
    <item>
      <title>[PHP]  웹에서 데이터를 전송하는 두 가지 주요한 방법</title>
      <link>https://chillin-dev.tistory.com/79</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;GET 방식과 POST 방식&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;웹에서 데이터를 전송하는 두 가지 주요한 방식은 GET 방식과 POST 방식이 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;각방식의 특징과 사용법을 살펴보겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;GET 방식&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- GET 방식은 URL에 데이터를 첨부하여 전송하는 방식입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;데이터가 URL에 그대로 노출되기 때문에 보안에 취약한 부분이 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;URL을 통해 값을 붙여 전송하는 방식이기 때문에 전송용량에 제한이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;용량 제한은 클라이언트가 사용하는 브라우저나 서버에 따라 상이하지만 많은 브라우저들이 일반적으로 2,048자(또는 2KB)로 제한됩니다. 이는 URL에 허용하는 전체 길이 즉 URL 자체를 포함한 용량입니다.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;웹 서버의 경우는 대부분 2KB ~ 3KB 사이의 제한을 가지고 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니 대량의 데이터를 전송해야 한다면 POST 방식을 사용하고 가능하면 GET 방식은 전송하는 데이터의 크기를 작게 유지해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;따라서 주로 데이터를 조회하거나 검색등의 요청을 수행할 때 많이 사용합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;개념&lt;/span&gt;&lt;/h4&gt;
&lt;pre class=&quot;html xml&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc; text-align: left;&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;http://example.com/search?keyword=apple&amp;amp;page=1&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;a href=&quot;http://example.com/search&quot;&gt;http://example.com/search는&lt;/a&gt; 요청 경로입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;? 이후 KEY=VALUE 형태로 데이터를 첨부하는 겁니다.&amp;nbsp; 위 예시에선 KEY : keyword , VALUE : apple 이되겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;amp;를 통해 같은 방식으로 더 많은 KEY와 VALUE를 붙여서 전송 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예시에선&amp;nbsp; keyword=apple , page=1&amp;nbsp; 두 가지 데이터를 전송하고 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;활용&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자 이제 PHP 프레임워크 &lt;b&gt;CodeIgniter&lt;/b&gt; 환경,&amp;nbsp; controller에서 GET 방식은 어떤 식으로 적용되는지 살펴보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc; text-align: left;&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;http://example.com/manager?popup=Y&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;위의 예시를 보면 GET 방식으로 KEY : popup , VALUE : Y로 URL을 통해 접근했습니다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1703141801856&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Manager extends CI_Controller {
	
	/*
		///////////////////////////////////////////////////////////////////////////////
		Remap indexing
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
	*/
	public function _remap($method, $data){
		
		if(isset($_GET['popup']) &amp;amp;&amp;amp; $_GET['popup'] == &quot;Y&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;위 코드를 보면 $_GET ['KEY'] 방식으로 데이터를 가져옵니다.&amp;nbsp; 위 예시의&amp;nbsp; $_GET ['popup']로 활용가능합니다.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;POST 방식&lt;/span&gt;&lt;/h3&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- POST 방식은 HTTP 요청의 본문에 데이터를 포함하여 전송하는 방식입니다.&amp;nbsp; URL에 데이터를 노출하지 않으므로 GET방식보다는 보안적으로 더 안전합니다. 또한 데이터 전송량에 제한이 없어 더 많은 양의 데이터를 전송할 수 있어 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;데이터 생성, 수정, 삭제 등의 요청에 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;개념&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;pre class=&quot;http&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc; text-align: left;&quot;&gt;&lt;code&gt;POST /form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

name=John&amp;amp;age=25&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;예시에서&amp;nbsp;&quot;POST&amp;nbsp;/form&quot;은&amp;nbsp;요청할&amp;nbsp;경로를&amp;nbsp;나타내고,&amp;nbsp;&quot;Host&quot;는&amp;nbsp;요청을&amp;nbsp;보낼&amp;nbsp;호스트&amp;nbsp;주소를&amp;nbsp;나타냅니다.&amp;nbsp;&quot;Content-Type&quot;은&amp;nbsp;전송할&amp;nbsp;데이터의&amp;nbsp;형식을&amp;nbsp;지정하며,&amp;nbsp;일반적으로&amp;nbsp;&quot;application/x-www-form-urlencoded&quot;를&amp;nbsp;사용합니다.&amp;nbsp;본문에는&amp;nbsp;key=value&amp;nbsp;형태로&amp;nbsp;데이터를&amp;nbsp;포함시킵니다.&amp;nbsp;위&amp;nbsp;예시에서는&amp;nbsp;&quot;name&quot;과&amp;nbsp;&quot;age&quot;라는&amp;nbsp;두&amp;nbsp;개의&amp;nbsp;데이터를&amp;nbsp;전송하고&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;활용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자 이제 PHP 프레임워크&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;CodeIgniter&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;환경,&amp;nbsp; controller에서 POST 방식은 어떤 식으로 적용되는지 살펴보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML &amp;lt;form&amp;gt; 태그를 활용해서 url로 submit 한경우를 예시로 살펴볼까요&lt;/p&gt;
&lt;pre id=&quot;code_1703143028863&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;form method=&quot;post&quot; action=&quot;/User/register&quot;&amp;gt;
    &amp;lt;label for=&quot;name&quot;&amp;gt;이름:&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;text&quot; id=&quot;name&quot; name=&quot;name&quot;&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;label for=&quot;email&quot;&amp;gt;이메일:&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;text&quot; id=&quot;email&quot; name=&quot;email&quot;&amp;gt;&amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;submit&quot; value=&quot;등록&quot;&amp;gt;
&amp;lt;/form&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;다음으로 사용자가 form을 submit 하면 POST방식으로 데이터를 받아서 controller에서 처리해 봅시다.&lt;/p&gt;
&lt;pre id=&quot;code_1703143082874&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class User extends CI_Controller {
    public function register() {
        $name = $this-&amp;gt;input-&amp;gt;post('name'); // POST 데이터에서 'name'을 가져옵니다.
        $email = $this-&amp;gt;input-&amp;gt;post('email'); // POST 데이터에서 'email'을 가져옵니다.

        $this-&amp;gt;load-&amp;gt;model('User_model'); // User_model을 로드합니다.
        $this-&amp;gt;User_model-&amp;gt;add_user($name, $email); // 모델을 통해 DB에 사용자 정보를 추가합니다.

        echo '등록이 완료되었습니다!';
    }
}&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;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt;그러나 이렇게 입력한 데이터는 사용자로부터 직접적으로 받는 데이터이므로 바안상의 이유로 꼭 필터링이 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt;특히 php Codeigmiter에서는 다음과 같이 필터링을 지원합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; style=&quot;background-color: #1e1e1e; color: #dcdcdc; text-align: left;&quot;&gt;&lt;code&gt;$data = $this-&amp;gt;input-&amp;gt;post('변수명', TRUE); // 두 번째 인자를 TRUE로 설정하면 XSS 필터링이 적용됩니다.&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;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt;이렇게 GET 방식과 POST 방식을 CodeIgniter에서는 &lt;/span&gt;input&lt;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt; 클래스를 이용하여 쉽게 사용할 수 있습니다.\&lt;/span&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;h1 data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;정리&lt;/span&gt;&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;웹에 데이터를 전송하는 GET 방식과 POST 방식을 알아봤어요.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. GET 방식&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt;GET 방식은 일반적으로 데이터를 조회할 때 사용합니다. 주소(URL)에 변수가 그대로 보이며, 데이터를 조회하는 데 사용됩니다.&lt;/span&gt;&lt;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt;&lt;/span&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;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt;CodeIgniter에서는 아래와 같이 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1703208545421&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$data = $this-&amp;gt;input-&amp;gt;get('변수명'); // $_GET['변수명']과 동일합니다.&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;2. POST 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;POST 방식은 사용자의 데이터를 서버로 전송할 때 사용합니다. 주로 로그인, 회원가입 등 폼 데이터를 전송할 때 사용되며, 데이터가 URL에 노출되지 않습니다.&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;span style=&quot;color: #3b3f4e; text-align: left;&quot;&gt;CodeIgniter에서는 아래와 같이 사용할 수 있습니다&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1703208566027&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$data = $this-&amp;gt;input-&amp;gt;post('변수명'); // $_POST['변수명']과 동일합니다.&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP &amp;amp; MySQL</category>
      <category>Get</category>
      <category>php</category>
      <category>post</category>
      <category>보안</category>
      <category>웹에 데이터를 전송하는 방법</category>
      <category>코드이그나이터</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/79</guid>
      <comments>https://chillin-dev.tistory.com/79#entry79comment</comments>
      <pubDate>Fri, 22 Dec 2023 11:38:55 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] 내가 작성한 코드의 실행 시간을 알고 싶다면?</title>
      <link>https://chillin-dev.tistory.com/78</link>
      <description>&lt;h2 data-ke-size=&quot;size16&quot;&gt;내가 작성한 코드의 실행 시간을 알아봅니다.&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 코드를 작성할 때 항상 염두해야 할 점이 뭐가 있을까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 데이터를 View딴에서 수행할 때 항상 걱정하게 되는 것은 처리 속도가 아닐까 생각해요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 내가 작성한 코드가 많은 데이터를 헨들링해야하거나 처리하는 중 많은 loop를 순환하는 과정에서 어떤 부분에서 딜레이가 되는지 알면 코드를 최적화하는데 도움이 될 것입니다.&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;/h3&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgtYys/btsz82wu1p4/tfSk5bhWWZ6KlKy6xYOGjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgtYys/btsz82wu1p4/tfSk5bhWWZ6KlKy6xYOGjK/img.png&quot; data-alt=&quot;브라우저 메모리를 초과한 경우&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgtYys/btsz82wu1p4/tfSk5bhWWZ6KlKy6xYOGjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgtYys%2Fbtsz82wu1p4%2FtfSk5bhWWZ6KlKy6xYOGjK%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;819&quot; height=&quot;296&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;296&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;&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;ol style=&quot;list-style-type: decimal; background-color: #f7f7f8; color: #374151; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Chrome:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로컬 스토리지: 대략 5MB&lt;/li&gt;
&lt;li&gt;쿠키: 대략 4KB/쿠키, 도메인당 약 50개의 쿠키, 전체 쿠키 제한은 도메인당 약 180개&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Firefox:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로컬 스토리지: 대략 5MB&lt;/li&gt;
&lt;li&gt;쿠키: 대략 4KB/쿠키, 도메인당 약 50개의 쿠키, 전체 쿠키 제한은 도메인당 약 3500개&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Safari:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로컬 스토리지: 대략 5MB&lt;/li&gt;
&lt;li&gt;쿠키: 대략 4KB/쿠키, 도메인당 약 50개의 쿠키&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Edge:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로컬 스토리지: 대략 5MB&lt;/li&gt;
&lt;li&gt;쿠키: 대략 4KB/쿠키, 도메인당 약 50개의 쿠키&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;이러한 제한은 단일 도메인에 대한 것이며, 다양한 도메인 간에는 서로 다른 쿠키 저장소가 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&amp;nbsp;항상 프론트 개발할 때 이러한 용량 제한을 고려하여 프로그램하는 것이 좋겠습니다.&lt;/span&gt;&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;span style=&quot;color: #374151; text-align: start;&quot;&gt;[php] 코드 실행 시간 확인 함수 만들어 사용하기&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;measureExecutionTime&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;()함수를 호출하여 php 코드 실행 시간을 확인할 수 있습니다.&lt;/span&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1699794660205&quot; class=&quot;xml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;php&quot;&gt;&lt;code&gt;&amp;lt;?php
function measureExecutionTime()
{
    // 시작 시간 기록
    $startTime = microtime(true);

    // 여기에 코드를 넣습니다.
    for ($i = 0; $i &amp;lt; 1000000; $i++) {
        // 작업 수행
    }

    // 종료 시간 기록
    $endTime = microtime(true);

    // 실행 시간 계산
    $executionTime = $endTime - $startTime;

    // 결과 출력
    echo &quot;코드 실행 속도: {$executionTime} 초&quot;;
}

// 함수 호출
measureExecutionTime();
?&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;[javascript] 코드 실행 시간 확인함수 만들어 사용하기&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;measureExecutionTime&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;()함수를 호출하여 js 코드 실행 시간을 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1699794790425&quot; class=&quot;javascript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;function measureExecutionTime() {
    // 시작 시간 기록
    var startTime = performance.now();

    // 여기에 코드를 넣습니다.
    for (var i = 0; i &amp;lt; 1000000; i++) {
        // 작업 수행
    }

    // 종료 시간 기록
    var endTime = performance.now();

    // 실행 시간 계산
    var executionTime = endTime - startTime;

    // 결과 출력
    console.log(&quot;코드 실행 속도: &quot; + executionTime + &quot; 밀리초&quot;);
}

// 함수 호출
measureExecutionTime();&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;span style=&quot;color: #374151; text-align: start;&quot;&gt;현재 시간을 밀리초 단위로 가져와요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt; 그런 다음, 코드 실행 전후에 시작 시간과 종료 시간을 기록하고, 두 시간의 차이를 계산하여 실행 시간을 측정해요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;마지막으로 실행 시간을 콘솔에 출력해 줘요.&lt;/span&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;b&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&amp;lt;정리&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;프론트 개발 시 내가 만든 코드의 실행 시간을 알아보는 공부를 해봤어요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;웹 브라우저별 메모리 처리 제한을 알아봤습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt; 같은 코드도 크롬과 사파리에서 각각 다르게 동작할 수 있으니 확인이 필요하겠습니다.&lt;/span&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;b&gt; measureExecutionTime&lt;/b&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&lt;b&gt;()&lt;/b&gt;함수 를 만들어두고 내가 걱정되는 부분에 활용하면 처리시간을 밀리초 기준으로 알 수 있겠습니다. 감사합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP &amp;amp; MySQL</category>
      <category>js</category>
      <category>php</category>
      <category>디버깅</category>
      <category>속도향상</category>
      <category>최적화</category>
      <category>코드 정리</category>
      <category>코드 처리 시간</category>
      <category>코드 테스트</category>
      <category>코드개선</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/78</guid>
      <comments>https://chillin-dev.tistory.com/78#entry78comment</comments>
      <pubDate>Sun, 12 Nov 2023 22:23:08 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] 특정 문자열이 포함되어있나 확인</title>
      <link>https://chillin-dev.tistory.com/77</link>
      <description>&lt;h2 data-ke-size=&quot;size16&quot;&gt;[PHP]&amp;nbsp;특정&amp;nbsp;문자열이&amp;nbsp;포함되어있나&amp;nbsp;확인&lt;/h2&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;strpos() 내장 함수 를 자세히 알고 싶다면&amp;nbsp; 여기서 확인하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://chillin-dev.tistory.com/70&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://chillin-dev.tistory.com/70&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1692951930753&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[php] 원하는 데이터 찾기 strpos(), in_array()&quot; data-og-description=&quot;원하는 데이터 찾기 strpos(), in_array() - 매번 원하는 데이터를 찾을 때 자주 검색해 보게 되는 strpos() , in_array()는 PHP개발 중 거의 매일 사용하는 함수들이다. 이런 함수는 외워주면 좋습니다. strpos(&quot; data-og-host=&quot;chillin-dev.tistory.com&quot; data-og-source-url=&quot;https://chillin-dev.tistory.com/70&quot; data-og-url=&quot;https://chillin-dev.tistory.com/70&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/CLBSE/hyTIEh3YfP/gPKfpFHohWU3gDCwAK7Rk0/img.png?width=217&amp;amp;height=122&amp;amp;face=0_0_217_122,https://scrap.kakaocdn.net/dn/gzdRf/hyTMcc8t6m/2qJirjxaIPXOnVbNl19UZK/img.png?width=217&amp;amp;height=122&amp;amp;face=0_0_217_122,https://scrap.kakaocdn.net/dn/tvWPz/hyTIFnJLOx/ZjgOprSVEVj8bcOiNqdjyk/img.jpg?width=1016&amp;amp;height=995&amp;amp;face=0_0_1016_995&quot;&gt;&lt;a href=&quot;https://chillin-dev.tistory.com/70&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://chillin-dev.tistory.com/70&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/CLBSE/hyTIEh3YfP/gPKfpFHohWU3gDCwAK7Rk0/img.png?width=217&amp;amp;height=122&amp;amp;face=0_0_217_122,https://scrap.kakaocdn.net/dn/gzdRf/hyTMcc8t6m/2qJirjxaIPXOnVbNl19UZK/img.png?width=217&amp;amp;height=122&amp;amp;face=0_0_217_122,https://scrap.kakaocdn.net/dn/tvWPz/hyTIFnJLOx/ZjgOprSVEVj8bcOiNqdjyk/img.jpg?width=1016&amp;amp;height=995&amp;amp;face=0_0_1016_995');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[php] 원하는 데이터 찾기 strpos(), in_array()&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;원하는 데이터 찾기 strpos(), in_array() - 매번 원하는 데이터를 찾을 때 자주 검색해 보게 되는 strpos() , in_array()는 PHP개발 중 거의 매일 사용하는 함수들이다. 이런 함수는 외워주면 좋습니다. strpos(&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;chillin-dev.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구분자 | 로 구성된 string 데이터에서 특정 코드를 포함한 문자열인지 검증합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1692951831276&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$txtString = &quot;1001429|22300314|223578|22311&quot;;  
$targetString = &quot;1001429&quot;;  
  
if(strpos($txtString, $targetString) !== false) {  
    // 포함
    echo &quot;txt 코드에 1001429 가 포함되있네어요&quot;;
} else {  
    // 미포함
  echo &quot;txt 코드에 1001429 가 없습니다.&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;span style=&quot;background-color: #ffffff; color: #202124; text-align: left;&quot;&gt;=== 는 값과 타입이 같은지 비교합니다 .&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;값이 다르거나 타입이 다르면 거짓( false )&lt;/b&gt;입니다.&lt;/p&gt;</description>
      <category>PHP &amp;amp; MySQL</category>
      <category>php</category>
      <category>strpos</category>
      <category>특정 문자열 찾기</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/77</guid>
      <comments>https://chillin-dev.tistory.com/77#entry77comment</comments>
      <pubDate>Fri, 25 Aug 2023 17:28:05 +0900</pubDate>
    </item>
    <item>
      <title>[php] 문자열 날자 데이터로 저장하기</title>
      <link>https://chillin-dev.tistory.com/76</link>
      <description>&lt;h1 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;[php] 문자열&amp;nbsp;날자&amp;nbsp;데이터로&amp;nbsp;저장하기&lt;/span&gt;&lt;/h1&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;흔히 기간에 대한 데이터를 저장할 때 php의 date()와 strtotime()을 많이 활용합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;단순하게 2023-07-06 11:00:00 와 같이 날자, 시간, 분 초까지 문자열을 DATETIME 타입으로 변환하여 저장하고 싶을 때&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;어떻게 할까요?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Y-m-d H:i:s&amp;nbsp;&lt;/b&gt; 형식으로 문자열을 날자데이터로 저장합니다.&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1688624008293&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php 
 $start_day = &quot;2023-07-06&quot;;
 
 $start_hour = &quot;11&quot;;
 
 $val = date(&quot;Y-m-d H:i:s&quot;,strtotime($start_day.&quot; &quot;.$start_hour.&quot;:00:00&quot;));
 
 echo $val;
// 2023-07-06 11:00:00

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;반드시 date 포멧에 맞춰주자!&amp;nbsp;&amp;nbsp;&lt;b&gt;Y-m-d H:i:s&amp;nbsp;&lt;/b&gt;&amp;nbsp;형식으로&amp;nbsp; 문자열을 맞춰주면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;date() 함수&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;PHP에서&amp;nbsp;date()&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;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;다음은&amp;nbsp;date()&amp;nbsp;함수의&amp;nbsp;사용법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688632162033&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
 echo date(&quot;Y-m-d H:i:s&quot;); //현재 날짜와 시간을 Y-m-d H:i:s 형식으로 출력합니다.
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위&amp;nbsp;코드에서&amp;nbsp;Y는&amp;nbsp;연도,&amp;nbsp;m은&amp;nbsp;월,&amp;nbsp;d는&amp;nbsp;일,&amp;nbsp;H는&amp;nbsp;24시간&amp;nbsp;형식의&amp;nbsp;시간,&amp;nbsp;i는&amp;nbsp;분,&amp;nbsp;s는&amp;nbsp;초를&amp;nbsp;나타내는&amp;nbsp;문자열입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이러한 문자열을 원하는 형식으로 조합하여 출력하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt; 예를 들어, date(&quot;Y년 m월 d일 H시 i분 s초&quot;) 형식으로 작성하면 &quot;2021년 9월 6일 15시 25분 30초&quot;와 같이 출력됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt; 위와 같이 date() 함수는 다양한 형식으로 날짜와 시간 정보를 출력할 수 있으므로 필요한 형식을 선택하여 사용하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;strtotime() 함수&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;PHP에서&amp;nbsp;strtotime()&amp;nbsp;함수는&amp;nbsp;일시를&amp;nbsp;나타내는&amp;nbsp;문자열을&amp;nbsp;Unix&amp;nbsp;타임스탬프로&amp;nbsp;변환해 주는&amp;nbsp;함수입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이&amp;nbsp;함수는&amp;nbsp;PHP에서&amp;nbsp;날짜와&amp;nbsp;시간을&amp;nbsp;다룰&amp;nbsp;때&amp;nbsp;유용하게&amp;nbsp;사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;strtotime()&amp;nbsp;함수의&amp;nbsp;사용법은&amp;nbsp;다음과&amp;nbsp;같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688687195159&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

	$date_string = &quot;2021-04-10 15:30:00&quot;;

	$timestamp = strtotime($date_string);

	echo $timestamp; // 출력 결과: 1618095000

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위의&amp;nbsp;코드에서는&amp;nbsp;&quot;2021-04-10&amp;nbsp;15:30:00&quot;이라는&amp;nbsp;문자열을&amp;nbsp;strtotime()&amp;nbsp;함수로&amp;nbsp;넘겨서&amp;nbsp;해당&amp;nbsp;일시에&amp;nbsp;대한&amp;nbsp;Unix&amp;nbsp;타임스탬프를&amp;nbsp;구하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;타임스탬프는 1618095000이며, 이 값을 이용하여 다양한 연산을 수행할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;time() 함수&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;PHP에서&amp;nbsp;time()&amp;nbsp;함수는&amp;nbsp;현재&amp;nbsp;시각의&amp;nbsp;Unix&amp;nbsp;타임스탬프를&amp;nbsp;반환하는&amp;nbsp;함수입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&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;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;time()&amp;nbsp;함수의&amp;nbsp;사용법은&amp;nbsp;다음과&amp;nbsp;같습니다.&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;time()&amp;nbsp;함수는&amp;nbsp;매개변수&amp;nbsp;없이&amp;nbsp;호출되며,&amp;nbsp;현재&amp;nbsp;시간에&amp;nbsp;해당하는&amp;nbsp;Unix&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;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688689869392&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

	$timestamp = time();

	$date_string = date(&quot;Y-m-d H:i:s&quot;, $timestamp);

	echo $date_string; // 출력 결과: 2021-04-10 16:30:00

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위의&amp;nbsp;코드에서는&amp;nbsp;time()&amp;nbsp;함수를&amp;nbsp;이용해서&amp;nbsp;현재&amp;nbsp;시각에&amp;nbsp;해당하는&amp;nbsp;Unix&amp;nbsp;타임스탬프를&amp;nbsp;구하고,&amp;nbsp;date()&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;&quot;2021-04-10&amp;nbsp;16:30:00&quot;과&amp;nbsp;같이&amp;nbsp;나타납니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;strtotime()&amp;nbsp;함수 vs time()&amp;nbsp; 함수 차이점&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;PHP의&amp;nbsp;time()&amp;nbsp;함수와&amp;nbsp;strtotime()&amp;nbsp;함수는&amp;nbsp;모두&amp;nbsp;시간과&amp;nbsp;관련된&amp;nbsp;기능을&amp;nbsp;수행하는&amp;nbsp;함수이지만,&amp;nbsp;동작&amp;nbsp;방식에&amp;nbsp;차이가&amp;nbsp;있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;time() 함수는 현재 시각의 Unix 타임스탬프를 반환하는 반면, strtotime() 함수는 문자열로 표현된 시간을 Unix 타임스탬프로 변환합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt; 즉, time() 함수는 호출하는 시점의 시각에 대한 타임스탬프를 반환하고, strtotime() 함수는 인자로 전달된 문자열에서 시간 정보를 추출하여 그 시각에 대한 타임스탬프를 반환합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt; 예를 들어, 현재 시각에 대한 Unix 타임스탬프를 구하는 경우 time() 함수를 사용하면 되고,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&quot;2021-04-10 15:30:00&quot;과 같은 문자열로 표현된 시간에 대한 Unix 타임스탬프를 구하는 경우 strtotime() 함수를 사용하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688690398699&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	$current_timestamp = time();
	echo $current_timestamp; // 현재 시각의 Unix 타임스탬프 출력

	$date_string = &quot;2021-04-10 15:30:00&quot;;
	$timestamp = strtotime($date_string);
	echo $timestamp; // 문자열로 표현된 시각의 Unix 타임스탬프 출력
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;mktime()&amp;nbsp;함수&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;PHP에서&amp;nbsp;mktime()&amp;nbsp;함수는&amp;nbsp;주어진&amp;nbsp;시간과&amp;nbsp;날짜에&amp;nbsp;해당하는&amp;nbsp;Unix&amp;nbsp;타임스탬프를&amp;nbsp;반환하는&amp;nbsp;함수입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 함수를 사용하면, 시간과 날짜를 직접 지정해서 타임스탬프를 생성할 수 있습니다. mktime() 함수의 사용법은 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688690637361&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$timestamp = mktime($hour, $minute, $second, $month, $day, $year);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;$hour,&amp;nbsp;$minute,&amp;nbsp;$second,&amp;nbsp;$month,&amp;nbsp;$day,&amp;nbsp;$year&amp;nbsp;매개변수는&amp;nbsp;각각&amp;nbsp;생성하고자&amp;nbsp;하는&amp;nbsp;Unix&amp;nbsp;타임스탬프의&amp;nbsp;시간과&amp;nbsp;날짜를&amp;nbsp;지정합니다.&amp;nbsp;예를&amp;nbsp;들어,&amp;nbsp;&quot;2021년&amp;nbsp;4월&amp;nbsp;9일&amp;nbsp;오후&amp;nbsp;3시&amp;nbsp;30분&amp;nbsp;0초&quot;에&amp;nbsp;대한&amp;nbsp;Unix&amp;nbsp;타임스탬프를&amp;nbsp;생성하려면&amp;nbsp;다음과&amp;nbsp;같이&amp;nbsp;mktime()&amp;nbsp;함수를&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1688690685490&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	$timestamp = mktime(15, 30, 0, 4, 9, 2021);
	echo $timestamp; // 출력 결과: 1617973800
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위&amp;nbsp;코드에서는&amp;nbsp;mktime(15,&amp;nbsp;30,&amp;nbsp;0,&amp;nbsp;4,&amp;nbsp;9,&amp;nbsp;2021)&amp;nbsp;로&amp;nbsp;&quot;2021년&amp;nbsp;4월&amp;nbsp;9일&amp;nbsp;오후&amp;nbsp;3시&amp;nbsp;30분&amp;nbsp;0초&quot;에&amp;nbsp;대한&amp;nbsp;타임스탬프를&amp;nbsp;생성하였습니다.&amp;nbsp;이때&amp;nbsp;반환된&amp;nbsp;값은&amp;nbsp;1617973800이며,&amp;nbsp;이&amp;nbsp;값을&amp;nbsp;이용하여&amp;nbsp;다양한&amp;nbsp;연산을&amp;nbsp;수행할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;또한,&amp;nbsp;mktime()&amp;nbsp;함수는&amp;nbsp;선택적으로&amp;nbsp;$is_dst&amp;nbsp;매개변수를&amp;nbsp;지원합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 매개변수는 Daylight Saving Time (DST)를 고려하여 타임스탬프를 생성할지 여부를 지정하는 데 사용됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기본값은 -1로, PHP 설정 파일에서 설정된 값에 따라 DST를 고려하거나 고려하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;정리&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;php의 날자 관련&amp;nbsp; 기본적 함수를 알아봤습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #f2f7ff; color: #505567; text-align: justify;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;date()&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수: 주어진 포맷에 따라 날짜와 시간을 표시합니다. 예를 들어,&lt;span&gt;&amp;nbsp;&lt;/span&gt;date(&quot;Y-m-d H:i:s&quot;)과 같이 사용하면 현재의 날짜와 시간을 &quot;2021-04-10 16:30:00&quot;과 같은 포맷으로 반환합니다.&lt;/li&gt;
&lt;li&gt;time()&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수: 현재 시간의 Unix 타임스탬프를 반환합니다.&lt;/li&gt;
&lt;li&gt;strtotime()&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수: 앞서 설명했듯이, 문자열 형태의 날짜와 시간을 Unix 타임스탬프로 변환합니다.&lt;/li&gt;
&lt;li&gt;mktime()&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수: 지정된 시간의 Unix 타임스탬프를 반환합니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f2f7ff; color: #505567; text-align: justify;&quot;&gt;이 외에도 &lt;/span&gt;gmdate()&lt;span style=&quot;background-color: #f2f7ff; color: #505567; text-align: justify;&quot;&gt;, &lt;/span&gt;strftime()&lt;span style=&quot;background-color: #f2f7ff; color: #505567; text-align: justify;&quot;&gt;, &lt;/span&gt;getdate()&lt;span style=&quot;background-color: #f2f7ff; color: #505567; text-align: justify;&quot;&gt; 등의 다양한 함수가 존재합니다. 이 함수들은 각각 특정한 기능을 수행하므로, 필요에 따라 적절한 함수를 선택하여 사용하시면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>PHP &amp;amp; MySQL</category>
      <category>php 날자 함수</category>
      <author>Seong Story</author>
      <guid isPermaLink="true">https://chillin-dev.tistory.com/76</guid>
      <comments>https://chillin-dev.tistory.com/76#entry76comment</comments>
      <pubDate>Fri, 7 Jul 2023 09:51:20 +0900</pubDate>
    </item>
  </channel>
</rss>