<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>팁스토리 Tips</title>
    <link>https://zxchsr.tistory.com/</link>
    <description>프로그래밍 코딩뿐만 아니라 알고 있으면 유용한 꿀팁 모음 공유, 팁 스토리 Tips</description>
    <language>ko</language>
    <pubDate>Tue, 23 Jun 2026 00:59:41 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>chsr</managingEditor>
    <image>
      <title>팁스토리 Tips</title>
      <url>https://tistory1.daumcdn.net/tistory/3901695/attach/6377378c769241c9b85ec90fbcc8b65f</url>
      <link>https://zxchsr.tistory.com</link>
    </image>
    <item>
      <title>[LINUX] localhost, 로컬에서 도메인 설정하는 방법</title>
      <link>https://zxchsr.tistory.com/357</link>
      <description>&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;localhost, 로컬에서 도메인 설정하는 방법&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1. &lt;/span&gt;로컬&lt;span&gt; &lt;/span&gt;디렉토리&lt;span&gt; &lt;/span&gt;생성&lt;/p&gt;
&lt;pre id=&quot;code_1779238961223&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ex. /Users/chsr/Documents/Work/02_Project/testProject&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. sudo vi /etc/hosts &lt;span&gt;로컬&lt;/span&gt; &lt;span&gt;도메인&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1779239539537&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;127.0.0.1 test.project.local&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. vi /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf &lt;span&gt;하단에&lt;/span&gt; &lt;span&gt;추가&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1779239562740&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;
     ServerName test.project.local
     DocumentRoot &quot;/Users/chsr/Documents/Work/02_Project/testProject&quot;
     &amp;lt;Directory &quot;/Users/chsr/Documents/Work/02_Project/testProject&quot;&amp;gt;
         AllowOverride All
         Require all granted
         DirectoryIndex index.php index.html
      &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>LINUX</category>
      <category>localhost</category>
      <category>localhost setting</category>
      <category>localhost 설정</category>
      <category>localhost 셋팅</category>
      <category>로컬 설정</category>
      <category>로컬 셋팅</category>
      <category>로컬 연결</category>
      <category>로컬호스트 설정</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/357</guid>
      <comments>https://zxchsr.tistory.com/357#entry357comment</comments>
      <pubDate>Wed, 20 May 2026 10:13:44 +0900</pubDate>
    </item>
    <item>
      <title>[LINUX] apache 아파치 재실행</title>
      <link>https://zxchsr.tistory.com/356</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;LINUX apache 아파치 재실행&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;명령어&lt;/h2&gt;
&lt;pre id=&quot;code_1779238611856&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; sudo apachectl -k restart&lt;/code&gt;&lt;/pre&gt;</description>
      <category>LINUX</category>
      <category>apache</category>
      <category>apache 재실행</category>
      <category>apachectl</category>
      <category>linux</category>
      <category>linux apache</category>
      <category>아파치 재실행</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/356</guid>
      <comments>https://zxchsr.tistory.com/356#entry356comment</comments>
      <pubDate>Wed, 20 May 2026 09:57:28 +0900</pubDate>
    </item>
    <item>
      <title>[Git] remote: HTTP Basic: Access denied. - Missing or invalid credentials. Error: Bad status code: 401</title>
      <link>https://zxchsr.tistory.com/355</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Missing or invalid credentials. &lt;br /&gt;Error: Bad status code: 401&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;remote: HTTP Basic: Access denied. The&amp;nbsp;provided&amp;nbsp;password&amp;nbsp;or&amp;nbsp;token&amp;nbsp;is&amp;nbsp;incorrect&amp;nbsp;or&amp;nbsp;your&amp;nbsp;account&amp;nbsp;has&amp;nbsp;2FA&amp;nbsp;enabled&amp;nbsp;and&amp;nbsp;you&amp;nbsp;must&amp;nbsp;use&amp;nbsp;a&amp;nbsp;personal&amp;nbsp;access&amp;nbsp;token&amp;nbsp;instead&amp;nbsp;of&amp;nbsp;a&amp;nbsp;password.&amp;nbsp;See&amp;nbsp;&lt;a href=&quot;http://gitlab.adererror.com/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://gitlab.adererror.com/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied&lt;/a&gt;&lt;br /&gt;fatal: Authentication failed for '&lt;a href=&quot;https://gitlab.adererror.com/fivespace/store.git/'&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gitlab.~~~~~.git/'&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;해결방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;json 설정 파일 내 terminalAuthentication: false; 추가&lt;/p&gt;
&lt;pre id=&quot;code_1779237894687&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git.terminalAuthentication: false&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;vscode 설정 &lt;br /&gt;terminalAuthentication 검색 &amp;rarr; 해당 설정 선택 해제 &amp;rarr; 터미널 재실행 &amp;rarr; git fetch &amp;rarr; gitlab Username &amp;amp; Password 입력&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1143&quot; data-origin-height=&quot;267&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yARqs/dJMcaarQwDW/k4qk5aNkpFdP23RkKRTltK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yARqs/dJMcaarQwDW/k4qk5aNkpFdP23RkKRTltK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yARqs/dJMcaarQwDW/k4qk5aNkpFdP23RkKRTltK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyARqs%2FdJMcaarQwDW%2Fk4qk5aNkpFdP23RkKRTltK%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;1143&quot; height=&quot;267&quot; data-origin-width=&quot;1143&quot; data-origin-height=&quot;267&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div id=&quot;gtx-trans&quot; style=&quot;position: absolute; left: 189px; top: 379.75px;&quot;&gt;
&lt;div class=&quot;gtx-trans-icon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Tips</category>
      <category>401</category>
      <category>access denied</category>
      <category>git error</category>
      <category>git remote error</category>
      <category>Missing or invalid credentials</category>
      <category>terminalAuthentication</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/355</guid>
      <comments>https://zxchsr.tistory.com/355#entry355comment</comments>
      <pubDate>Wed, 20 May 2026 09:49:53 +0900</pubDate>
    </item>
    <item>
      <title>[Mac] 터미널(iterm2) 커서이동 단축키</title>
      <link>https://zxchsr.tistory.com/354</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Mac 맥에서 터미널(iterm) 커서이동 단축키 설정하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Iterm2 &lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;&amp;rarr; &lt;/span&gt;Setting(command + ,) &lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;&amp;rarr; Keys &lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;&amp;rarr; Key Bindings&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;&lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;+ 누른 후 Action 에 Send Hex Code 검색 후 선택&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;907&quot; data-origin-height=&quot;548&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGRYef/btsQh2GQiHN/T3DxByV5CWasNAhQ60sRF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGRYef/btsQh2GQiHN/T3DxByV5CWasNAhQ60sRF0/img.png&quot; data-alt=&quot;iterms 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGRYef/btsQh2GQiHN/T3DxByV5CWasNAhQ60sRF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGRYef%2FbtsQh2GQiHN%2FT3DxByV5CWasNAhQ60sRF0%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;907&quot; height=&quot;548&quot; data-origin-width=&quot;907&quot; data-origin-height=&quot;548&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;iterms 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Keyboard Shortcut - Click to Set 클릭 후 첫번째 컬럼값 ex. &lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;⌘ + &amp;larr;&lt;/span&gt;&amp;nbsp; 키보드 액션을 해주면 됨&lt;br /&gt;Action - Send Hex Code 선택 시 textarea 영역이 노출됨 &lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;&amp;rarr;&lt;/span&gt; 두번째 컬럼값 ex. &lt;span style=&quot;color: #222222; text-align: start;&quot;&gt;0x01 입력해주면 됨&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;color: #222222; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;⌘ + &amp;larr;&lt;/td&gt;
&lt;td&gt;0x01&lt;/td&gt;
&lt;td&gt;줄 맨 앞으로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌘ + &amp;rarr;&lt;/td&gt;
&lt;td&gt;0x05&lt;/td&gt;
&lt;td&gt;줄 맨 뒤로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌘ + ⌫&lt;/td&gt;
&lt;td&gt;0x15&lt;/td&gt;
&lt;td&gt;줄 처음까지 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌘ + ⇧ + ⌫&lt;/td&gt;
&lt;td&gt;0x0b&lt;/td&gt;
&lt;td&gt;줄 맨 뒤까지 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌥ + &amp;larr;&lt;/td&gt;
&lt;td&gt;0x1b 0x62&lt;/td&gt;
&lt;td&gt;앞 단어 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌥ + &amp;rarr;&lt;/td&gt;
&lt;td&gt;0x1b 0x66&lt;/td&gt;
&lt;td&gt;뒷 단어 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌥ + ⌫&lt;/td&gt;
&lt;td&gt;0x1b 0x08&lt;/td&gt;
&lt;td&gt;앞 단어 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌥ + ⇧ + ⌫&lt;/td&gt;
&lt;td&gt;0x1b 0x64&lt;/td&gt;
&lt;td&gt;뒷 단어 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌘ + Z&lt;/td&gt;
&lt;td&gt;0x1f&lt;/td&gt;
&lt;td&gt;되돌리기&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Tips</category>
      <category>iterm2</category>
      <category>iterm2 단축키</category>
      <category>iterm2 단축키설정</category>
      <category>iterm2 설정</category>
      <category>iterm2 커서단축키</category>
      <category>iterm2 커서이동</category>
      <category>터미널</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/354</guid>
      <comments>https://zxchsr.tistory.com/354#entry354comment</comments>
      <pubDate>Wed, 3 Sep 2025 12:26:47 +0900</pubDate>
    </item>
    <item>
      <title>[Mac] 맥북 코어 개수 확인 명령어</title>
      <link>https://zxchsr.tistory.com/352</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;맥북&amp;nbsp;코어&amp;nbsp;개수&amp;nbsp;확인&amp;nbsp;명령어&lt;/h2&gt;
&lt;pre id=&quot;code_1750399321084&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sysctl -n machdep.cpu.core_count #12&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;/h2&gt;
&lt;pre id=&quot;code_1750399339925&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;system_profiler SPHardwareDataType&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>mac 사양</category>
      <category>mac 성능</category>
      <category>mac 코어수</category>
      <category>맥북 명령어</category>
      <category>맥북 사양</category>
      <category>맥북 성능</category>
      <category>맥북 코어수</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/352</guid>
      <comments>https://zxchsr.tistory.com/352#entry352comment</comments>
      <pubDate>Fri, 20 Jun 2025 15:03:10 +0900</pubDate>
    </item>
    <item>
      <title>[iterm2] iterm2(oh-my-zsh) vim 편집기 설정</title>
      <link>https://zxchsr.tistory.com/351</link>
      <description>&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;iterm2(oh-my-zsh)&amp;nbsp;vim&amp;nbsp;편집기&amp;nbsp;설정&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;.vimrc 파일 수정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vi ~/.vimrc&lt;/p&gt;
&lt;pre id=&quot;code_1750399135811&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if has(&quot;syntax&quot;)        &quot; 구문 강조 사용
 syntax on
endif
set hlsearch            &quot; 검색어 하이라이팅
set nu                  &quot; 줄번호
set cursorline        &quot; (선택) 현재 줄 하이라이트
set autoindent          &quot; 자동 들여쓰기
set autowrite           &quot; 다른 파일로 넘어갈 때 자동 저장
set autoread            &quot; 작업 중인 파일 외부에서 변경됬을 경우 자동으로 불러옴
set cindent             &quot; C언어 자동 들여쓰기
set paste               &quot; 붙여넣기 계단현상 없애기
set shiftwidth=4        &quot; 자동 들여쓰기 너비 설정
set showmatch           &quot; 일치하는 괄호 하이라이팅
set smartcase           &quot; 검색시 대소문자 구별
set tabstop=4           &quot; tab 할때 스페이스 갯수
set ruler               &quot; 현재 커서 위치 표시
set laststatus=2        &quot; 상태바 표시
&quot; 파일 인코딩을 한국어로
if $LANG[0]=='k' &amp;amp;&amp;amp; $LANG[1]=='o'
set fileencoding=korea
endif&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>iterm2</category>
      <category>iterm2 vi</category>
      <category>iterm2 vim</category>
      <category>iterm2 vimrc</category>
      <category>iterm2 설정</category>
      <category>iterm2 커스텀</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/351</guid>
      <comments>https://zxchsr.tistory.com/351#entry351comment</comments>
      <pubDate>Fri, 20 Jun 2025 14:59:28 +0900</pubDate>
    </item>
    <item>
      <title>[iterm2] iterm2(oh-my-zsh) 커스텀 유저 이름 변경</title>
      <link>https://zxchsr.tistory.com/350</link>
      <description>&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■ &lt;/b&gt;iterm2(oh-my-zsh)&amp;nbsp;커스텀&amp;nbsp;유저&amp;nbsp;이름&amp;nbsp;변경&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프롬프트&amp;nbsp;사용자&amp;nbsp;이름&amp;nbsp;즉&amp;nbsp;유저&amp;nbsp;이름&amp;nbsp;변경을&amp;nbsp;하고싶다면?&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;.zshrc 파일 수정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vi&amp;nbsp;~/.zshrc&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1750398818568&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;prompt_context() {
  # Custom (Random emoji)
  emojis=( &quot;❤️&quot; &quot; &quot; &quot; &quot; &quot; &quot; &quot; &quot; &quot; &quot; &quot;⭐️&quot; &quot; &quot;)
  RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
  prompt_segment black default &quot;{사용자이름} ${emojis[$RAND_EMOJI_N]}&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;적용 예시&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OYAxE/btsOLgGanOY/2qZQDu4EzEbgCEKfcP3Gxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OYAxE/btsOLgGanOY/2qZQDu4EzEbgCEKfcP3Gxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OYAxE/btsOLgGanOY/2qZQDu4EzEbgCEKfcP3Gxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOYAxE%2FbtsOLgGanOY%2F2qZQDu4EzEbgCEKfcP3Gxk%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;654&quot; height=&quot;401&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Tips</category>
      <category>iterm2</category>
      <category>iterm2 name</category>
      <category>iterm2 user</category>
      <category>iterm2 사용자이름</category>
      <category>iterm2 유저이름</category>
      <category>iterm2 이름</category>
      <category>iterm2 이름변경</category>
      <category>iterm2 커스텀</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/350</guid>
      <comments>https://zxchsr.tistory.com/350#entry350comment</comments>
      <pubDate>Fri, 20 Jun 2025 14:57:00 +0900</pubDate>
    </item>
    <item>
      <title>[VSCode] multi sftp workspace 설정</title>
      <link>https://zxchsr.tistory.com/349</link>
      <description>&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;VSCode&amp;nbsp;multi&amp;nbsp;sftp&amp;nbsp;workspace 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VSCode에서 여러 서버(SFTP, FTP 등)를 동시에 탐색기에서 보고싶다면?&lt;br /&gt;multi-sftp-workspace.code-workspace&amp;nbsp;를&amp;nbsp;이용하면&amp;nbsp;됨&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. .code-workspace 파일 열기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VSCode에서&amp;nbsp;직접&amp;nbsp;워크스페이스&amp;nbsp;파일을&amp;nbsp;열어야&amp;nbsp;합니다.&lt;br /&gt;File&amp;nbsp;&amp;rarr;&amp;nbsp;Open&amp;nbsp;Workspace...&amp;nbsp;클릭&lt;br /&gt;multi-sftp-workspace.code-workspace&amp;nbsp;선택해서&amp;nbsp;열기&lt;br /&gt;*단축키: Ctrl+K Ctrl+O &amp;rarr; 파일 선택 가능&lt;/p&gt;
&lt;pre id=&quot;code_1750397875768&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;folders&quot;: [
    { &quot;name&quot;: &quot;develop-server&quot;, &quot;path&quot;: &quot;develop-server&quot; },
    { &quot;name&quot;: &quot;staging-server&quot;, &quot;path&quot;: &quot;staging-server&quot; },
    { &quot;name&quot;: &quot;prod-server&quot;, &quot;path&quot;: &quot;prod-server&quot; }
  ],
  &quot;settings&quot;: {
    &quot;editor.tabSize&quot;: 2,
    &quot;files.autoSave&quot;: &quot;off&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  폴더구조 예시&lt;/h2&gt;
&lt;pre id=&quot;code_1750398239287&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;your-project/
├── multi-sftp-workspace.code-workspace
├── develop-server/
├── staging-server/
├── prod-server/&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 열렸다면? 이제 .vscode/sftp.json 각각 만들기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;develop-server/.vscode/sftp.json&amp;nbsp;에&amp;nbsp;FTP&amp;nbsp;설정&lt;br /&gt;staging-server/.vscode/sftp.json&amp;nbsp;에&amp;nbsp;SFTP&amp;nbsp;설정&lt;br /&gt;prod-server/.vscode/sftp.json 에 SFTP 설정&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;develop-server/.vscode/sftp.json (예시)&lt;/h2&gt;
&lt;pre id=&quot;code_1750397893382&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;FTP SERVER&quot;,
  &quot;host&quot;: &quot;your.ftpserver.com&quot;,
  &quot;protocol&quot;: &quot;ftp&quot;,
  &quot;port&quot;: 21,
  &quot;username&quot;: &quot;your_username&quot;,
  &quot;password&quot;: &quot;your_password&quot;,
  &quot;remotePath&quot;: &quot;/public_html&quot;,
  &quot;uploadOnSave&quot;: true
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;  폴더구조 예시&lt;/h2&gt;
&lt;pre id=&quot;code_1750398312209&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;multi-sftp-workspace.code-workspace
├── develop-server/
│   └── .vscode/
│       └── sftp.json
├── staging-server/
│   └── .vscode/
│       └── sftp.json
├── prod-server/
│   └── .vscode/
│       └── sftp.json&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Tips</category>
      <category>cursor</category>
      <category>cursor multi</category>
      <category>cursor sftp</category>
      <category>multi sftp</category>
      <category>multi-sftp</category>
      <category>multi-sftp-workspace</category>
      <category>vscode</category>
      <category>vscode multi</category>
      <category>vscode multi sftp</category>
      <category>vscode sftp</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/349</guid>
      <comments>https://zxchsr.tistory.com/349#entry349comment</comments>
      <pubDate>Fri, 20 Jun 2025 14:46:38 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] Cross-Origin Request Headers(CORS) Header 설정</title>
      <link>https://zxchsr.tistory.com/347</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ PHP Cross-Origin Request Headers(CORS) Header 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP에서 다른 도메인 호출에 대한 엑세스(Access) 권한이 없는 경우 HTTP 메소드 지정하여 호출 권한을 설정할 수 있음&lt;br /&gt;-&amp;nbsp;Axios&amp;nbsp;통신을&amp;nbsp;위해&amp;nbsp;PHP&amp;nbsp;CORS&amp;nbsp;설정을&amp;nbsp;함&lt;br /&gt;-&amp;nbsp;GET,&amp;nbsp;POST,&amp;nbsp;PUT,&amp;nbsp;DELETE,&amp;nbsp;OPTIONS&amp;nbsp;메소드를&amp;nbsp;허용&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;CORS 위한 Header 설정 값&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Access-Control-Allow-Origin&lt;/li&gt;
&lt;li&gt;Access-Control-Allow-Credentials&lt;/li&gt;
&lt;li&gt;Access-Control-Allow-Methods&lt;/li&gt;
&lt;li&gt;Access-Control-Allow-Headers&lt;/li&gt;
&lt;li&gt;Content-type&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;예시&lt;/h2&gt;
&lt;pre id=&quot;code_1712537592881&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 특정 도메인(test.com)의 호출만을 허용
header(&quot;Access-Control-Allow-Origin: test.com&quot;);

// 모든 도메인 호출을 허용
header(&quot;Access-Control-Allow-Origin: *&quot;);

// GET, POST, PUT, DELETE, OPTIONS 메소드를 허용
header(&quot;Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS&quot;);

header(&quot;Access-Control-Allow-Headers: X-Requested-With&quot;);

// cache for 1 day
header('Access-Control-Max-Age: 86400');    

// return type = json
header('Content-Type: application/json');&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>php access</category>
      <category>php axios</category>
      <category>php content-type</category>
      <category>php CORS</category>
      <category>php header</category>
      <category>php headers</category>
      <category>php http</category>
      <category>php method</category>
      <category>php return type</category>
      <category>php type</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/347</guid>
      <comments>https://zxchsr.tistory.com/347#entry347comment</comments>
      <pubDate>Mon, 8 Apr 2024 09:55:52 +0900</pubDate>
    </item>
    <item>
      <title>[LINUX] vi/vim 줄번호(라인넘버) 보기, 이동 명령어 (영구설정 방법)</title>
      <link>https://zxchsr.tistory.com/346</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ LINUX vi/vim 줄번호(라인넘버) 보기, 이동 명령어 (영구설정 방법)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로&amp;nbsp;vi/vim&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;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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;명령어&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 129px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 19px;&quot;&gt;&lt;b&gt;기능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;shift + g&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;파일 최하단으로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;gg&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;파일 최상단으로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;ctrl + b&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;Page UP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;ctrl + f&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;Page Down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;:set number 또는 :set nu&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;줄번호(라인넘버) 보기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;[원하는 줄번호] + shift + g&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;원하는 줄번호로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;영구설정&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;1.&amp;nbsp;홈&amp;nbsp;디렉토리에서&amp;nbsp;.vimrc&amp;nbsp;파일을&amp;nbsp;만듦&lt;br /&gt;*파일명&amp;nbsp;앞에&amp;nbsp;마침표(.)가&amp;nbsp;있으면&amp;nbsp;히든파일로&amp;nbsp;ls&amp;nbsp;시&amp;nbsp;옵션&amp;nbsp;-a&amp;nbsp;를&amp;nbsp;주지&amp;nbsp;않으면&amp;nbsp;해당&amp;nbsp;파일은&amp;nbsp;리스트에&amp;nbsp;포함되지&amp;nbsp;않음&lt;br /&gt;&lt;br /&gt;2. vi .vimrc 에디터 입력모드(i)&lt;br /&gt;3.&amp;nbsp;set&amp;nbsp;nu&amp;nbsp;입력&lt;br /&gt;4.&amp;nbsp;명령모드(esc)&amp;nbsp;이후&amp;nbsp;저장하고&amp;nbsp;나가기(:wq!)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>LINUX</category>
      <category>linux</category>
      <category>linux 라인 이동</category>
      <category>linux 라인넘버</category>
      <category>linux 라인번호</category>
      <category>linux 라인수 보기</category>
      <category>Linux 명령어</category>
      <category>linux 줄번호</category>
      <category>linux 줄번호 보기</category>
      <category>linux 줄번호 이동</category>
      <category>linux 줄번호 표시</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/346</guid>
      <comments>https://zxchsr.tistory.com/346#entry346comment</comments>
      <pubDate>Fri, 15 Mar 2024 13:45:08 +0900</pubDate>
    </item>
    <item>
      <title>[Error] EACCES: permission denied, unlink '/usr/local/bin/code'</title>
      <link>https://zxchsr.tistory.com/345</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;[Error]&amp;nbsp;EACCES:&amp;nbsp;permission&amp;nbsp;denied,&amp;nbsp;unlink&amp;nbsp;'/usr/local/bin/code'&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MAC 터미널에서 code 를 치면 vscode 가 실행되게 설정하려면 &lt;br /&gt;vscode에서 ⇧⌘P(cmd+shift+P) 입력&lt;br /&gt;shell 을 검색 후 &quot;Shell Command: Install &amp;lsquo;code&amp;rsquo; command in PATH&quot; 를 눌러 설정해줘야 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때 EACCES: permission denied, unlink '/usr/local/bin/code' 문구가 팝업으로 뜸&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;716&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXG1Vu/btszKdc0fVG/0AH6fO37adk227BnTlLkN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXG1Vu/btszKdc0fVG/0AH6fO37adk227BnTlLkN1/img.png&quot; data-alt=&quot;ERROR EACCES 캡처&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXG1Vu/btszKdc0fVG/0AH6fO37adk227BnTlLkN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXG1Vu%2FbtszKdc0fVG%2F0AH6fO37adk227BnTlLkN1%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;288&quot; height=&quot;208&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;716&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ERROR EACCES 캡처&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 해결방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널에서 하기 명령어 실행 후 vscode에서 다시 설정해주면 잘 됨&lt;/p&gt;
&lt;pre id=&quot;code_1699001849522&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /usr/local/bin
sudo rm -rf code&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>EACCES</category>
      <category>vscode</category>
      <category>vscode denied</category>
      <category>vscode EACCES</category>
      <category>vscode permission</category>
      <category>vscode permission denied</category>
      <category>vscode terminal</category>
      <category>vscode 터미널 실행</category>
      <category>터미널 vscode</category>
      <category>터미널 vscode 실행</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/345</guid>
      <comments>https://zxchsr.tistory.com/345#entry345comment</comments>
      <pubDate>Fri, 3 Nov 2023 18:01:42 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 자바 개발 인텔리제이 플러그인 추천 (Intellij Plugin)</title>
      <link>https://zxchsr.tistory.com/344</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■ JAVA &lt;/b&gt;&lt;span&gt;&lt;b&gt;자바&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span&gt;&lt;b&gt;개발&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span&gt;&lt;b&gt;인텔리제이&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span&gt;&lt;b&gt;플러그인&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span&gt;&lt;b&gt;추천&lt;/b&gt;&lt;/span&gt;&lt;b&gt; (Intellij Plugin)&lt;/b&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;b&gt;1.&amp;nbsp;Atom&amp;nbsp;Material&amp;nbsp;Icons &lt;/b&gt;&lt;br /&gt;Atom&amp;nbsp;IDE&amp;nbsp;를&amp;nbsp;입혀&amp;nbsp;메뉴&amp;nbsp;아이콘을&amp;nbsp;가독성&amp;nbsp;좋게&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_스크린샷 2023-10-26 오후 5.32.52.png&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;439&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2mDRx/btszcp6RqWL/uwA2Rd3Xb1HBmvNNWPhdS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2mDRx/btszcp6RqWL/uwA2Rd3Xb1HBmvNNWPhdS0/img.png&quot; data-alt=&quot;atom material icons&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2mDRx/btszcp6RqWL/uwA2Rd3Xb1HBmvNNWPhdS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2mDRx%2Fbtszcp6RqWL%2FuwA2Rd3Xb1HBmvNNWPhdS0%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;539&quot; height=&quot;770&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.52.png&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;439&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;atom material icons&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;2. aiXcoder Code Completer &lt;/b&gt;&lt;br /&gt;코드&amp;nbsp;완성&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_스크린샷 2023-10-26 오후 5.33.20.png&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;1050&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s0Xkq/btszglvhMat/qvQRTiQOm4Q6FCjIaYUzak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s0Xkq/btszglvhMat/qvQRTiQOm4Q6FCjIaYUzak/img.png&quot; data-alt=&quot;aixcoder code completer&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s0Xkq/btszglvhMat/qvQRTiQOm4Q6FCjIaYUzak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs0Xkq%2FbtszglvhMat%2FqvQRTiQOm4Q6FCjIaYUzak%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;504&quot; height=&quot;403&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.33.20.png&quot; data-origin-width=&quot;1312&quot; data-origin-height=&quot;1050&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;aixcoder code completer&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. codeGlance Pro &lt;/b&gt;&lt;br /&gt;우측&amp;nbsp;상단에&amp;nbsp;미니맵&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_스크린샷 2023-10-26 오후 5.32.43.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;738&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cT6uBy/btszejSwOWs/1hhjofpciXbr3ueYtMAAW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cT6uBy/btszejSwOWs/1hhjofpciXbr3ueYtMAAW0/img.png&quot; data-alt=&quot;codeglance pro&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cT6uBy/btszejSwOWs/1hhjofpciXbr3ueYtMAAW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcT6uBy%2FbtszejSwOWs%2F1hhjofpciXbr3ueYtMAAW0%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;471&quot; height=&quot;420&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.43.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;738&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;codeglance pro&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. GitToolBox &lt;/b&gt;&lt;br /&gt;현재&amp;nbsp;브랜치&amp;nbsp;표시&amp;nbsp;및&amp;nbsp;일정시간에&amp;nbsp;맞춰&amp;nbsp;자동으로&amp;nbsp;Git&amp;nbsp;Petch&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_스크린샷 2023-10-26 오후 5.32.35.png&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;771&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v2dFj/btszb7L4WAB/EGMK1DOmZCbFAQy3fpMIdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v2dFj/btszb7L4WAB/EGMK1DOmZCbFAQy3fpMIdk/img.png&quot; data-alt=&quot;gittoolbox&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v2dFj/btszb7L4WAB/EGMK1DOmZCbFAQy3fpMIdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv2dFj%2Fbtszb7L4WAB%2FEGMK1DOmZCbFAQy3fpMIdk%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;435&quot; height=&quot;416&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.35.png&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;771&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;gittoolbox&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;5.&amp;nbsp;Key&amp;nbsp;Promoter&amp;nbsp;X &lt;/b&gt;&lt;br /&gt;IDE&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.00.png&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8yHfN/btszcpy3G7A/kc5Ot9E7M4AsS0uHBOMack/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8yHfN/btszcpy3G7A/kc5Ot9E7M4AsS0uHBOMack/img.png&quot; data-alt=&quot;key promoter x&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8yHfN/btszcpy3G7A/kc5Ot9E7M4AsS0uHBOMack/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8yHfN%2Fbtszcpy3G7A%2Fkc5Ot9E7M4AsS0uHBOMack%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;451&quot; height=&quot;328&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.00.png&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;597&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;key promoter x&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. Presentation Assitant &lt;/b&gt;&lt;br /&gt;사용되는&amp;nbsp;단축키를&amp;nbsp;화면&amp;nbsp;중앙에&amp;nbsp;잠깐&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_스크린샷 2023-10-26 오후 5.32.26.png&quot; data-origin-width=&quot;818&quot; data-origin-height=&quot;952&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lPXyx/btszfMfJPhz/gGyJS6bZxodrfaBKL1NlLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lPXyx/btszfMfJPhz/gGyJS6bZxodrfaBKL1NlLK/img.png&quot; data-alt=&quot;presentation assistant&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lPXyx/btszfMfJPhz/gGyJS6bZxodrfaBKL1NlLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlPXyx%2FbtszfMfJPhz%2FgGyJS6bZxodrfaBKL1NlLK%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;386&quot; height=&quot;449&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.26.png&quot; data-origin-width=&quot;818&quot; data-origin-height=&quot;952&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;presentation assistant&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;7.&amp;nbsp;Rainbow&amp;nbsp;Brackets &lt;/b&gt;&lt;br /&gt;중괄호&amp;nbsp;{&amp;nbsp;}&amp;nbsp;짝을&amp;nbsp;구분할&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;짝마다&amp;nbsp;색상을&amp;nbsp;지정해줌&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.10.png&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;883&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vwIYE/btszdn8BKLg/X7buIcKFZ4ST7oYUPGgrrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vwIYE/btszdn8BKLg/X7buIcKFZ4ST7oYUPGgrrk/img.png&quot; data-alt=&quot;rainbow brackets&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vwIYE/btszdn8BKLg/X7buIcKFZ4ST7oYUPGgrrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvwIYE%2Fbtszdn8BKLg%2FX7buIcKFZ4ST7oYUPGgrrk%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;504&quot; height=&quot;548&quot; data-filename=&quot;edited_스크린샷 2023-10-26 오후 5.32.10.png&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;883&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;rainbow brackets&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>JAVA</category>
      <category>Intellij java</category>
      <category>Intellij java plugin</category>
      <category>intelliJ plugin</category>
      <category>Intellij plugin 추천</category>
      <category>Intellij plugins</category>
      <category>Intellij 자바</category>
      <category>Intellij 자바 플러그인</category>
      <category>Intellij 플러그인</category>
      <category>intelliJ 플러그인 추천</category>
      <category>java intellij</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/344</guid>
      <comments>https://zxchsr.tistory.com/344#entry344comment</comments>
      <pubDate>Thu, 26 Oct 2023 17:49:22 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 자바 어노테이션(Java Annotation) 개념 정리, 종류</title>
      <link>https://zxchsr.tistory.com/343</link>
      <description>&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;JAVA 자바 어노테이션(Java Annotation) 개념 정리, 종류&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자바 어노테이션(Java Annotation)이 뭘까?&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;자바&amp;nbsp;소스&amp;nbsp;코드에&amp;nbsp;추가하여&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;메타데이터의&amp;nbsp;일종으로&lt;br /&gt;앞에&amp;nbsp;@&amp;nbsp;기호를&amp;nbsp;붙여서&amp;nbsp;사용함&amp;nbsp;(JDK&amp;nbsp;1.5&amp;nbsp;version&amp;nbsp;이상에서&amp;nbsp;사용&amp;nbsp;가능)&lt;br /&gt;클래스&amp;nbsp;파일에&amp;nbsp;내장되어&amp;nbsp;컴파일러에&amp;nbsp;의해&amp;nbsp;생성된&amp;nbsp;후&amp;nbsp;자바&amp;nbsp;가상머신에&amp;nbsp;포함되어&amp;nbsp;작동함&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 종류&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;@Entity&lt;/b&gt;&amp;nbsp;&lt;/span&gt;클래스&lt;span&gt; &lt;/span&gt;위에&lt;span&gt; &lt;/span&gt;선언하여&lt;span&gt; &lt;/span&gt;해당&lt;span&gt; &lt;/span&gt;클래스가&lt;span&gt; &lt;/span&gt;엔티티(Entity)임을&lt;span&gt; &lt;/span&gt;알려줌으로써,&lt;span&gt;&amp;nbsp;JPA&lt;/span&gt;에서&lt;span&gt; &lt;/span&gt;정의된&lt;span&gt; &lt;/span&gt;필드들을&lt;span&gt; &lt;/span&gt;바탕으로&lt;span&gt; &lt;/span&gt;데이터베이스에&lt;span&gt; &lt;/span&gt;테이블을&lt;span&gt; &lt;/span&gt;만들어줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;@Builder&lt;/b&gt; &lt;/span&gt;클래스에&lt;span&gt; &lt;/span&gt;해당하는&lt;span&gt; &lt;/span&gt;엔티티&lt;span&gt; &lt;/span&gt;객체를&lt;span&gt;&amp;nbsp;생성할&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;때&lt;span&gt; &lt;/span&gt;빌더&lt;span&gt; &lt;/span&gt;패턴을&lt;span&gt; &lt;/span&gt;이용해서&lt;span&gt; &lt;/span&gt;만들 수&lt;span&gt; &lt;/span&gt;있도록&lt;span&gt; &lt;/span&gt;지정해주는&lt;span&gt; &lt;/span&gt;어노테이션,&lt;span&gt;&amp;nbsp;&lt;/span&gt;선언해놓으면&lt;span&gt; &lt;/span&gt;추후&lt;span&gt; &lt;/span&gt;다른&lt;span&gt; &lt;/span&gt;곳에서&lt;span&gt; Board.builder(). {&lt;/span&gt;여러가지&lt;span&gt; &lt;/span&gt;필드의&lt;span&gt; &lt;/span&gt;초기값&lt;span&gt; &lt;/span&gt;선언&lt;span&gt; }. build() &lt;/span&gt;형태로&lt;span&gt; &lt;/span&gt;객체를&lt;span&gt; &lt;/span&gt;만들&lt;span&gt; &lt;/span&gt;수&lt;span&gt;&amp;nbsp;있음&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;@AllArgsConstructor&lt;/b&gt;&amp;nbsp;: &lt;/span&gt;선언된&lt;span&gt; &lt;/span&gt;모든&lt;span&gt; &lt;/span&gt;필드를&lt;span&gt; &lt;/span&gt;파라미터로&lt;span&gt; &lt;/span&gt;갖는&lt;span&gt; &lt;/span&gt;생성자를&lt;span&gt; &lt;/span&gt;자동으로&lt;span&gt; &lt;/span&gt;생성함&lt;span&gt;&lt;br /&gt;&lt;b&gt;@NoArgsConstructor&lt;/b&gt;&amp;nbsp;: &lt;/span&gt;파라미터가&lt;span&gt;&amp;nbsp;없는&amp;nbsp;&lt;/span&gt;기본 생성자를&lt;span&gt; &lt;/span&gt;자동으로&lt;span&gt; &lt;/span&gt;생성함&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;@Getter&lt;/b&gt; &lt;/span&gt;각&lt;span&gt; &lt;/span&gt;필드값을&lt;span&gt; &lt;/span&gt;조회할&lt;span&gt; &lt;/span&gt;수&lt;span&gt; &lt;/span&gt;있는&lt;span&gt; getter&lt;/span&gt;를&lt;span&gt; &lt;/span&gt;자동으로&lt;span&gt; &lt;/span&gt;생성함,&lt;span&gt;&amp;nbsp;&lt;/span&gt;예를 들어&lt;span&gt; &lt;/span&gt;다른&lt;span&gt; &lt;/span&gt;파일에서&lt;span&gt; Board &lt;/span&gt;객체의&lt;span&gt; title&lt;/span&gt;값을&lt;span&gt; &lt;/span&gt;얻고&lt;span&gt; &lt;/span&gt;싶다면&lt;span&gt; getTitle() &lt;/span&gt;메소드를&lt;span&gt; &lt;/span&gt;정의해서&lt;span&gt; &lt;/span&gt;해당&lt;span&gt; &lt;/span&gt;객체의&lt;span&gt; title &lt;/span&gt;값을&lt;span&gt; &lt;/span&gt;얻어오게&lt;span&gt; &lt;/span&gt;되는데 이때&lt;span&gt;&amp;nbsp;&lt;/span&gt;해당&lt;span&gt; &lt;/span&gt;메 소드를&lt;span&gt; &lt;/span&gt;굳이&lt;span&gt; &lt;/span&gt;작성하지&lt;span&gt; &lt;/span&gt;않아도&lt;span&gt; &lt;/span&gt;자동으로&lt;span&gt; &lt;/span&gt;생성해줌&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;보통 변수는&lt;span&gt;&amp;nbsp;&lt;/span&gt;직접&lt;span&gt; &lt;/span&gt;접근&lt;span&gt; &lt;/span&gt;및&lt;span&gt; &lt;/span&gt;변경이&lt;span&gt; &lt;/span&gt;안되도록&lt;span&gt; private &lt;/span&gt;선언자를&lt;span&gt; &lt;/span&gt;통해&lt;span&gt; &lt;/span&gt;지정함,&lt;span&gt;&amp;nbsp;title &lt;/span&gt;이라는&lt;span&gt; &lt;/span&gt;변수를&lt;span&gt; &lt;/span&gt;조회하기&lt;span&gt; &lt;/span&gt;위해서&lt;span&gt; getTitle() &lt;/span&gt;이라는&lt;span&gt; &lt;/span&gt;메소드를&lt;span&gt; &lt;/span&gt;선언하고&lt;span&gt;, title&lt;/span&gt;을&lt;span&gt; &lt;/span&gt;리턴하도록&lt;span&gt; &lt;/span&gt;해주는데&lt;span&gt;&amp;nbsp;&lt;/span&gt;해당&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드를&lt;span&gt;&amp;nbsp;&lt;b&gt;getter 라고 함&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1698308702722&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private&amp;nbsp;String&amp;nbsp;title
public&amp;nbsp;String&amp;nbsp;getTitle()&amp;nbsp;{&amp;nbsp;
	return&amp;nbsp;title&amp;nbsp;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;@ToString&lt;/b&gt;&amp;nbsp;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;클래스에&lt;/span&gt; &lt;span&gt;선언된&lt;/span&gt; &lt;span&gt;필드들을&lt;/span&gt; &lt;span&gt;전부&lt;/span&gt;&amp;nbsp;&lt;span&gt;출력할&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있는&lt;/span&gt; toString &lt;span&gt;메소드를&lt;/span&gt; &lt;span&gt;자동으로 생성할 수 있게 해줌&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;@Id, @GeneratedValue&lt;/b&gt; &lt;br /&gt;&lt;span&gt;@Id 는 해당&lt;/span&gt; &lt;span&gt;엔티티의&lt;/span&gt; &lt;span&gt;주요&lt;/span&gt; &lt;span&gt;키&lt;/span&gt;(Primary Key, PK)&lt;span&gt;가&lt;/span&gt; &lt;span&gt;될&lt;/span&gt; &lt;span&gt;값을&lt;/span&gt; &lt;span&gt;지정해줌&lt;/span&gt;&lt;br /&gt;@GeneratedValue &lt;span&gt;는&lt;/span&gt; &lt;span&gt;이&lt;/span&gt; Primary Key&lt;span&gt;가&lt;/span&gt; &lt;span&gt;자동으로&lt;/span&gt; 1&lt;span&gt;씩&lt;/span&gt; &lt;span&gt;증가하는&lt;/span&gt; &lt;span&gt;형태로&lt;/span&gt; &lt;span&gt;생성될지&lt;/span&gt; &lt;span&gt;등을&lt;/span&gt; &lt;span&gt;결정해줌&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;@ManyToOne&lt;br /&gt;&lt;/b&gt;&lt;span&gt;해당&lt;/span&gt; &lt;span&gt;엔티티와&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;엔티티를&lt;/span&gt; &lt;span&gt;관계짓고&lt;/span&gt; &lt;span&gt;싶을&lt;/span&gt; &lt;span&gt;때&lt;/span&gt; &lt;span&gt;쓰는&lt;/span&gt; &lt;span&gt;어노테이션으로&lt;/span&gt;&amp;nbsp;ManyToOne&lt;span&gt;이라고&lt;/span&gt; &lt;span&gt;부르는&lt;/span&gt; &lt;span&gt;이유는&lt;/span&gt; Writer &lt;span&gt;입장에서&lt;/span&gt; Board&lt;span&gt;는&lt;/span&gt; &lt;span&gt;여러&lt;/span&gt; &lt;span&gt;개가&lt;/span&gt; &lt;span&gt;될&lt;/span&gt; &lt;span&gt;수&lt;/span&gt; &lt;span&gt;있기&lt;/span&gt; &lt;span&gt;때문에&lt;/span&gt; Writer : Board = 1 : N &lt;span&gt;관계이기 때문&lt;/span&gt;&lt;/p&gt;</description>
      <category>JAVA</category>
      <category>annotation</category>
      <category>annotation 개념</category>
      <category>annotation 종류</category>
      <category>java</category>
      <category>java annotation</category>
      <category>어노테이션</category>
      <category>어노테이션 개념</category>
      <category>어노테이션 정리</category>
      <category>어노테이션 종류</category>
      <category>자바 어노테이션</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/343</guid>
      <comments>https://zxchsr.tistory.com/343#entry343comment</comments>
      <pubDate>Thu, 26 Oct 2023 17:29:54 +0900</pubDate>
    </item>
    <item>
      <title>[Docker] Docker Container 명령어 (전체실행/중지)</title>
      <link>https://zxchsr.tistory.com/342</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Docker Container 명령어 (전체실행/중지)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 컨테이너들을 한번에 실행하거나 중지시키는 명령어&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;명령어&lt;/h2&gt;
&lt;pre id=&quot;code_1698306021109&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#현재 컨테이너 리스트
docker container ls -a 

#컨테이너 전체 시작
docker start $(docker ps -a -q)

#컨테이너 전체 중지
docker stop $(docker ps -a -q)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>container all start</category>
      <category>container start</category>
      <category>docker</category>
      <category>docker all start</category>
      <category>docker all stop</category>
      <category>docker container</category>
      <category>docker container start</category>
      <category>docker container 전체실행</category>
      <category>docker start</category>
      <category>docker 명령어</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/342</guid>
      <comments>https://zxchsr.tistory.com/342#entry342comment</comments>
      <pubDate>Thu, 26 Oct 2023 16:42:00 +0900</pubDate>
    </item>
    <item>
      <title>[Docker] Docker Container 명령어(start, stop, create, rm, run, cp)</title>
      <link>https://zxchsr.tistory.com/341</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Docker Container 도커 컨테이너 명령어(start, stop, create, rm, run, cp)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 컨테이너를 명령어로 제어할 수 있음(실행, 중지, 생성, 삭제 등)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;명령어&lt;/h2&gt;
&lt;pre id=&quot;code_1698305452881&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#모든 명령어 확인
docker

#컨테이너 리스트 확인(status 포함)
docker container ls -a

#실행
docker start [CONTAINER ID or NAMES]

#중지
docker stop [CONTAINER ID or NAMES]

#생성 (도커 이미지를 컨테이너로 생성해주는 명령어)
docker create [OPTIONS] IMAGE [COMMAND] [ARG..]

#삭제
docker rm [CONTAINER ID]&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>docker</category>
      <category>docker container 명령어</category>
      <category>docker run</category>
      <category>docker start</category>
      <category>docker stop</category>
      <category>docker 명령어</category>
      <category>docker 실행</category>
      <category>도커</category>
      <category>도커 컨테이너 명령어</category>
      <category>도커 컨테이너 실행</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/341</guid>
      <comments>https://zxchsr.tistory.com/341#entry341comment</comments>
      <pubDate>Thu, 26 Oct 2023 16:39:05 +0900</pubDate>
    </item>
    <item>
      <title>[CSS] HTML &amp;amp; CSS Tabs example, tab menu 탭메뉴 만들기</title>
      <link>https://zxchsr.tistory.com/340</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ CSS HTML &amp;amp; CSS Tabs example, tab menu 탭메뉴 만들기&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;이미지 2023. 10. 16. 오전 9.47.jpg&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l4cih/btsyCiFLvac/QOPhkhOlznmKbhZRB4evd0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l4cih/btsyCiFLvac/QOPhkhOlznmKbhZRB4evd0/img.jpg&quot; data-alt=&quot;HTML &amp;amp;amp; CSS Tabs example&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l4cih/btsyCiFLvac/QOPhkhOlznmKbhZRB4evd0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl4cih%2FbtsyCiFLvac%2FQOPhkhOlznmKbhZRB4evd0%2Fimg.jpg&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;1719&quot; height=&quot;370&quot; data-filename=&quot;이미지 2023. 10. 16. 오전 9.47.jpg&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;370&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;HTML &amp;amp; CSS Tabs example&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt; HTML&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1697417450493&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 class='tabs'&amp;gt;
  &amp;lt;div class='tab'&amp;gt;
    &amp;lt;input type='radio' name='css-tabs' id='tab-1' checked class='tab-switch'&amp;gt;
    &amp;lt;label for='tab-1' class='tab-label'&amp;gt;Tab One&amp;lt;/label&amp;gt;
    &amp;lt;div class='tab-content'&amp;gt;My father had a small estate in Nottinghamshire: I was the third of five sons. He sent me to Emanuel College in Cambridge at fourteen years old, where I resided three years, and applied myself close to my studies; but the charge of maintaining me, although I had a very scanty allowance, being too great for a narrow fortune, I was bound apprentice to Mr. James Bates, an eminent surgeon in London, with whom I continued four years. &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class='tab'&amp;gt;
    &amp;lt;input type='radio' name='css-tabs' id='tab-2' class='tab-switch'&amp;gt;
    &amp;lt;label for='tab-2' class='tab-label'&amp;gt;Tab Two&amp;lt;/label&amp;gt;
    &amp;lt;div class='tab-content'&amp;gt;My father now and then sending me small sums of money, I laid them out in learning navigation, and other parts of the mathematics, useful to those who intend to travel, as I always believed it would be, some time or other, my fortune to do. &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class='tab'&amp;gt;
    &amp;lt;input type='radio' name='css-tabs' id='tab-3' class='tab-switch'&amp;gt;
    &amp;lt;label for='tab-3' class='tab-label'&amp;gt;Tab Three&amp;lt;/label&amp;gt;
    &amp;lt;div class='tab-content'&amp;gt;When I left Mr. Bates, I went down to my father: where, by the assistance of him and my uncle John, and some other relations, I got forty pounds, and a promise of thirty pounds a year to maintain me at Leyden: there I studied physic two years and seven months, knowing it would be useful in long voyages.&amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;p&amp;gt;Example line outside of tab box&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;■ CSS&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1697417503206&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;* {
    box-sizing: border-box;
}
body {
    font-family: &quot;Open Sans&quot;;
    background: #2c3e50;
    color: #ecf0f1;
    line-height: 1.618em;
}
.tabs {
    position: relative;
    margin: 3rem 0;
    background: #1abc9c;
    height: 14.75rem;
}
.tabs::before,
.tabs::after {
    content: &quot;&quot;;
    display: table;
}
.tabs::after {
    clear: both;
}
.tab {
    float: left;
}
.tab-switch {
    display: none;
}
.tab-label {
    position: relative;
    display: block;
    line-height: 2.75em;
    height: 3em;
    padding: 0 1.618em;
    background: #1abc9c;
    border-right: 0.125rem solid #16a085;
    color: #fff;
    cursor: pointer;
    top: 0;
    transition: all 0.25s;
}
.tab-label:hover {
    top: -0.25rem;
    transition: top 0.25s;
}
.tab-content {
    height: 12rem;
    position: absolute;
    z-index: 1;
    top: 2.75em;
    left: 0;
    padding: 1.618rem;
    background: #fff;
    color: #2c3e50;
    border-bottom: 0.25rem solid #bdc3c7;
    opacity: 0;
    transition: all 0.35s;
}
.tab-switch:checked + .tab-label {
    background: #fff;
    color: #2c3e50;
    border-bottom: 0;
    border-right: 0.125rem solid #fff;
    transition: all 0.35s;
    z-index: 1;
    top: -0.0625rem;
}
.tab-switch:checked + label + .tab-content {
    z-index: 2;
    opacity: 1;
    transition: all 0.35s;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>CSS</category>
      <category>css tab menu</category>
      <category>css tabs</category>
      <category>css tabs example</category>
      <category>css 탭메뉴</category>
      <category>html css tabs</category>
      <category>html tabs</category>
      <category>html 탭메뉴</category>
      <category>tab menu</category>
      <category>tabs example</category>
      <category>tabs examples</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/340</guid>
      <comments>https://zxchsr.tistory.com/340#entry340comment</comments>
      <pubDate>Mon, 16 Oct 2023 09:52:56 +0900</pubDate>
    </item>
    <item>
      <title>[CSS] Display Image On Text (a tag) Hover Only CSS</title>
      <link>https://zxchsr.tistory.com/339</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ CSS Display Image On Text (a tag) Hover Only CSS&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;a&amp;gt;&amp;nbsp;태그&amp;nbsp;hover&amp;nbsp;시&amp;nbsp;이미지&amp;nbsp;미리보기&amp;nbsp;기능&amp;nbsp;css&amp;nbsp;로만&amp;nbsp;구현하기&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt; HTML &amp;amp; CSS&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1697013652865&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    .image_hover a { position:relative; }
    .image_hover a span { position:absolute; display:none; z-index:9999; }
    .image_hover a:hover span { display:block; }
&amp;lt;/style&amp;gt;

&amp;lt;div class='image_hover'&amp;gt;
    &amp;lt;a href='image_url' target=&quot;_blank&quot;&amp;gt;
        Show Image&amp;lt;span&amp;gt;&amp;lt;img src='image_url' alt='image' width='100' /&amp;gt;&amp;lt;/span&amp;gt;
    &amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>CSS</category>
      <category>css</category>
      <category>css hover</category>
      <category>css hover image</category>
      <category>css hover show image</category>
      <category>css image</category>
      <category>css show image</category>
      <category>hover</category>
      <category>hover image</category>
      <category>hover show image</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/339</guid>
      <comments>https://zxchsr.tistory.com/339#entry339comment</comments>
      <pubDate>Wed, 11 Oct 2023 17:42:52 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 맥 MacOS brew로 자바 설치하기 (버전별 11,17)</title>
      <link>https://zxchsr.tistory.com/338</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ JAVA 맥 MacOS brew로 자바 설치하기 (버전별 11,17)&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Java 16 &lt;span&gt;버전&lt;/span&gt; &lt;span&gt;이하와&lt;/span&gt; 17 &lt;span&gt;버전&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;방법이&lt;/span&gt; &lt;span&gt;다른&lt;/span&gt; &lt;span&gt;이유&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;AdoptOpenJDK는&amp;nbsp;2021년&amp;nbsp;07월&amp;nbsp;24일&amp;nbsp;&lt;br /&gt;OpenJDK&amp;nbsp;16&amp;nbsp;버전&amp;nbsp;이후&amp;nbsp;Eclipse&amp;nbsp;Adoptium&amp;nbsp;로&amp;nbsp;이전&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Java 16 &lt;span&gt;버전&lt;/span&gt; &lt;span&gt;이하&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;설치방법&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. homebrew &lt;span&gt;설치&lt;/span&gt;, &lt;span&gt;업데이트&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690500702&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew update&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2. &lt;a href=&quot;https://github.com/AdoptOpenJDK/homebrew-openjdk&quot;&gt;adoptopenjdk/openjdk&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;추가&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690544115&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#서드파티 저장소 내 adoptopenjdk/openjdk 저장
brew tap adoptopenjdk/openjdk

#MacOS 운영체제에서 애플리케이션을 설치하고 관리할 때 필요한 명령어
brew install cask&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;brew&amp;nbsp;tap&amp;nbsp;?&lt;/b&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;지원함&lt;br /&gt;-&amp;nbsp;사용자가&amp;nbsp;별도의&amp;nbsp;저장소&amp;nbsp;공간을&amp;nbsp;등록하여&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;함&lt;/li&gt;
&lt;li&gt;&lt;b&gt;brew cask ?&lt;/b&gt;&lt;br /&gt;-&amp;nbsp;MacOS에서&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;nbsp;brew&amp;nbsp;cask를&amp;nbsp;사용&amp;nbsp;시&amp;nbsp;GUI&amp;nbsp;애플리케이션도&amp;nbsp;CLI에서&amp;nbsp;쉽게&amp;nbsp;설치할&amp;nbsp;수&amp;nbsp;있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;가능한&lt;/span&gt; JDK &lt;span&gt;검색&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690584616&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew search jdk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2802&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bikC57/btsvMKZ83eV/lnUPY9iVsltRsA3EgkyU6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bikC57/btsvMKZ83eV/lnUPY9iVsltRsA3EgkyU6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bikC57/btsvMKZ83eV/lnUPY9iVsltRsA3EgkyU6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbikC57%2FbtsvMKZ83eV%2FlnUPY9iVsltRsA3EgkyU6k%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;2802&quot; height=&quot;694&quot; data-origin-width=&quot;2802&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;4. &lt;/span&gt;원하는&lt;span&gt; &lt;/span&gt;버전&lt;span&gt; &lt;/span&gt;설치&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690606065&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Java 11 버전 설치
brew install --cask adoptopenjdk11&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Java 17&lt;span&gt;버전&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt; &lt;span&gt;시&lt;/span&gt; &lt;span&gt;설치방법&lt;/span&gt; (22&lt;span&gt;년도&lt;/span&gt;)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Java 17 &lt;span&gt;버전&lt;/span&gt; &lt;span&gt;설치&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690623431&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install openjdk@17&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 시스템이 openjdk17 찾을 수 있도록 설정&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690665415&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. zsh 사용 시 PATH에 대해 추가&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690705382&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo 'export PATH=&quot;/opt/homebrew/opt/openjdk@17/bin:$PATH&quot;' &amp;gt;&amp;gt; ~/.zshrc&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. shell 변경사항 적용&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1695690737897&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;source ~/.zshrc&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;설치 확인&lt;/h2&gt;
&lt;pre id=&quot;code_1695690758595&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java -version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1230&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lyOQt/btsvDib7Vln/Yehl8lZfpkvv9TeJ7XoVf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lyOQt/btsvDib7Vln/Yehl8lZfpkvv9TeJ7XoVf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lyOQt/btsvDib7Vln/Yehl8lZfpkvv9TeJ7XoVf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlyOQt%2FbtsvDib7Vln%2FYehl8lZfpkvv9TeJ7XoVf0%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;1230&quot; height=&quot;150&quot; data-origin-width=&quot;1230&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>JAVA</category>
      <category>brew install java</category>
      <category>brew java</category>
      <category>brew java11</category>
      <category>brew java17</category>
      <category>java</category>
      <category>java11</category>
      <category>java17</category>
      <category>mac brew</category>
      <category>mac brew java</category>
      <category>MAC JAVA</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/338</guid>
      <comments>https://zxchsr.tistory.com/338#entry338comment</comments>
      <pubDate>Tue, 26 Sep 2023 10:15:03 +0900</pubDate>
    </item>
    <item>
      <title>[Iterm2] Iterm2 명령어 자동완성 기능, Oh-My-Zsh autosuggestions</title>
      <link>https://zxchsr.tistory.com/337</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■ Iterm2 &lt;/b&gt;&lt;span&gt;&lt;b&gt;명령어&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span&gt;&lt;b&gt;자동완성&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span&gt;&lt;b&gt;기능&lt;/b&gt;&lt;/span&gt;&lt;b&gt;, Oh-My-Zsh autosuggestions&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;autosuggestions&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;최근&amp;nbsp;사용한&amp;nbsp;명령어&amp;nbsp;히스토리&amp;nbsp;기반으로&amp;nbsp;자동으로&amp;nbsp;제시해주는&amp;nbsp;기능을&amp;nbsp;제공하는&amp;nbsp;플러그인&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&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 id=&quot;code_1694998133070&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. vi ~/.zshrc &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;수정&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/plugin &lt;span&gt;검색&lt;/span&gt; &lt;span&gt;후&lt;/span&gt; &lt;span&gt;아래&lt;/span&gt; &lt;span&gt;영역&lt;/span&gt; &lt;span&gt;찾아서&lt;/span&gt; i(insert) &amp;gt; zsh-autosuggestions 추가 &amp;gt; esc &amp;gt; wq!&lt;/p&gt;
&lt;pre id=&quot;code_1694998189921&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#기존
plugins=(git)

#수정
plugins=(
git
zsh-autosuggestions
)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>AutoComplete</category>
      <category>autosuggestions</category>
      <category>iterm2</category>
      <category>Iterm2 autocomplete</category>
      <category>Iterm2 autosuggestions</category>
      <category>Iterm2 zsh</category>
      <category>zsh</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/337</guid>
      <comments>https://zxchsr.tistory.com/337#entry337comment</comments>
      <pubDate>Mon, 18 Sep 2023 09:52:56 +0900</pubDate>
    </item>
    <item>
      <title>[LINUX] LINUX Crontab 크론탭 설정 및 중지, 재시작 service cron</title>
      <link>https://zxchsr.tistory.com/336</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;LINUX Crontab &lt;span&gt;크론탭&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;중지&lt;/span&gt;, &lt;span&gt;재시작&lt;/span&gt; service cron&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Crontab&lt;/h2&gt;
&lt;pre id=&quot;code_1694064178676&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#크론탭 시작
service crond start

#크론탭 중지
service crond stop

#크론탭 재시작
service crond restart

#크론탭 설치여부 확인(설치되어 있는 리스트 확인)
ps -ef | grep cron

#wget 사용
0 0 * * * /usr/bin/wget&amp;nbsp;http://test.co.kr/test

#curl 사용
0 0 * * * /usr/bin/curl&amp;nbsp;http://test.co.kr/test&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;명령어&lt;/h2&gt;
&lt;pre id=&quot;code_1694064264009&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yy	#복사
p	#붙여넣기
dd	#잘라내기
i	#입력모드
esc	#명령모드

:wq	#저장하고 나가기
:q!	#저장하지 않고 강제 종료
:set nu	#줄번호&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;분,&amp;nbsp;시간,&amp;nbsp;일(1-31),&amp;nbsp;월(1-12),&amp;nbsp;요일(0-6)&amp;nbsp;순&amp;nbsp;설정&lt;/p&gt;
&lt;pre id=&quot;code_1694064355976&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |   .---------- day of month (1 - 31)
# |  |   |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |   |  |   .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |   |  |   |
# *  *  *  *  * user-name command to be executed&lt;/code&gt;&lt;/pre&gt;</description>
      <category>LINUX</category>
      <category>linux</category>
      <category>linux cron</category>
      <category>linux cron 설정</category>
      <category>Linux Crontab</category>
      <category>linux crontab stop</category>
      <category>linux crontab 설정</category>
      <category>linux crontab 중지</category>
      <category>Linux 명령어</category>
      <category>linux 설정</category>
      <category>linux 시간</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/336</guid>
      <comments>https://zxchsr.tistory.com/336#entry336comment</comments>
      <pubDate>Thu, 7 Sep 2023 14:26:58 +0900</pubDate>
    </item>
    <item>
      <title>[JQuery] DIV 가로 세로 순서 이동, sortable</title>
      <link>https://zxchsr.tistory.com/335</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;JQuery DIV 가로 세로 순서 이동, sortable&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ CSS&lt;/h2&gt;
&lt;pre id=&quot;code_1693462471143&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#sortWrap {
	padding: 10px;
}
#sortWrap div {
	margin: 10px;
	padding: 10px 0 10px 20px;
	background-color: #FFF;
	border: 1px solid #ddd;
	cursor: move;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ HTML&lt;/h2&gt;
&lt;pre id=&quot;code_1693462531577&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;sortWrap&quot;&amp;gt;
	&amp;lt;div data-order=1 data-code=&amp;lsquo;number1&amp;rsquo;&amp;gt;1&amp;lt;/div&amp;gt;
	&amp;lt;div data-order=2 data-code=&amp;lsquo;number2&amp;rsquo;&amp;gt;2&amp;lt;/div&amp;gt;
	&amp;lt;div data-order=3 data-code=&amp;lsquo;number3&amp;rsquo;&amp;gt;3&amp;lt;/div&amp;gt;
	&amp;lt;div data-order=4 data-code=&amp;lsquo;number4'&amp;gt;4&amp;lt;/div&amp;gt;
	&amp;lt;div data-order=5 data-code=&amp;lsquo;number5&amp;rsquo;&amp;gt;5&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Javascript&lt;/h2&gt;
&lt;pre id=&quot;code_1693462565378&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#sortWrap&quot;).sortable({
	axis: &quot;y&quot;,	// 가로 이동 시 x 로 변경
	containment: &quot;parent&quot;,
	update: function (event, ui) {
		var order = $(this).sortable('toArray', {
			attribute: 'data-order'
		});
		console.log(order);
	}
});&lt;/code&gt;&lt;/pre&gt;</description>
      <category>JQuery</category>
      <category>javascript div 이동</category>
      <category>javascript sortable</category>
      <category>JQuery div</category>
      <category>jquery div 순서</category>
      <category>jquery div 이동</category>
      <category>jquery sortable</category>
      <category>jquery 이미지 순서</category>
      <category>sortable</category>
      <category>sortable 가로</category>
      <category>sortable 세로</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/335</guid>
      <comments>https://zxchsr.tistory.com/335#entry335comment</comments>
      <pubDate>Thu, 31 Aug 2023 15:18:00 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] PHPExcel 엑셀 다운로드 기능 (.xls, .xlsx 차이)</title>
      <link>https://zxchsr.tistory.com/334</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ PHP PHPExcel 엑셀 다운로드 기능 (.xls, .xlsx 차이)&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ .xls 다운로드&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.xls 엑셀 파일로 다운로드하게 할 경우 createWriter 함수 2번째 변수를 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Excel5&lt;/b&gt;&lt;/span&gt; 로 설정해줘야 함&lt;/p&gt;
&lt;pre id=&quot;code_1692000348615&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

require_once $_SERVER['DOCUMENT_ROOT'].&quot;PHPExcel/Classes/PHPExcel.php&quot;;

ini_set(&quot;memory_limit&quot; , -1);
@set_time_limit(0);

// EXCEL START
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel-&amp;gt;getActiveSheet();

// 타이틀 셋팅
$objPHPExcel-&amp;gt; setActiveSheetIndex(0)
    -&amp;gt; setCellValue(&quot;A1&quot;, &quot;id&quot;)
    -&amp;gt; setCellValue(&quot;B1&quot;, &quot;title&quot;)
    -&amp;gt; setCellValue(&quot;C1&quot;, &amp;ldquo;description)
;

// 셀 가로크기 지정
$sheet-&amp;gt;getColumnDimension('A')-&amp;gt;setWidth(30);
$sheet-&amp;gt;getColumnDimension('B')-&amp;gt;setWidth(30);
$sheet-&amp;gt;getColumnDimension('C')-&amp;gt;setWidth(15);

// 타이틀 스타일 (중앙정렬,B)
$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;getStyle('A1:C1')-&amp;gt;applyFromArray(
    array(
        'alignment' =&amp;gt; array(
            'horizontal' =&amp;gt; PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
            'vertical' =&amp;gt; PHPExcel_Style_Alignment::VERTICAL_CENTER
        )
        ,'font' =&amp;gt; array( 'bold' =&amp;gt; true )
    )
);

// 틀 고정 (A1행까지 고정)
$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;freezePane('A2');

for( $i=1; $i&amp;lt;=3; $i++ ){    
    $objPHPExcel-&amp;gt;setActiveSheetIndex(0)
        -&amp;gt; setCellValue(&quot;A&quot;.($i+1), &amp;lsquo;id&amp;rsquo;.$i)
        -&amp;gt; setCellValue(&quot;B&quot;.($i+1), &amp;lsquo;title&amp;rsquo;.$i)
        -&amp;gt; setCellValue(&quot;C&quot;.($i+1), &amp;lsquo;desc&amp;rsquo;.$i)
    ;
}

// 시트 이름 설정
$sheet-&amp;gt;setTitle(&amp;ldquo;Sample Sheet&amp;rdquo;);

// EXCEL 파일명
$excel_name = &amp;ldquo;Sample.xls&amp;rdquo;;

// EXCEL OUTPUT
header( &quot;Content-type: application/vnd.ms-excel; charset=utf-8&quot;);
header( &quot;Content-type: application/x-msexcel; charset=utf-8&quot;);
header('Content-Disposition: attachment;filename=&quot;' . $excel_name . '&quot;');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &quot;Excel5&quot;);
$objWriter-&amp;gt;save('php://output');

?&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;■ .xlsx 다운로드&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.xlsx 엑셀 파일로 다운로드하게 할 경우 createWriter 함수 2번째 변수를 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Excel2007&lt;/span&gt;&lt;/b&gt; 로 설정해줘야 함&lt;br /&gt;+ &lt;b&gt;최상단 header 추가 (utf-8)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1692000489480&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

header(&quot;Content-Type:text/html;charset=utf-8&quot;);
require_once $_SERVER['DOCUMENT_ROOT'].&quot;PHPExcel/Classes/PHPExcel.php&quot;;

ini_set(&quot;memory_limit&quot; , -1);
@set_time_limit(0);

// EXCEL START
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel-&amp;gt;getActiveSheet();

// 타이틀 셋팅
$objPHPExcel-&amp;gt; setActiveSheetIndex(0)
    -&amp;gt; setCellValue(&quot;A1&quot;, &quot;id&quot;)
    -&amp;gt; setCellValue(&quot;B1&quot;, &quot;title&quot;)
    -&amp;gt; setCellValue(&quot;C1&quot;, &amp;ldquo;description)
;

// 셀 가로크기 지정
$sheet-&amp;gt;getColumnDimension('A')-&amp;gt;setWidth(30);
$sheet-&amp;gt;getColumnDimension('B')-&amp;gt;setWidth(30);
$sheet-&amp;gt;getColumnDimension('C')-&amp;gt;setWidth(15);

// 타이틀 스타일 (중앙정렬,B)
$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;getStyle('A1:C1')-&amp;gt;applyFromArray(
    array(
        'alignment' =&amp;gt; array(
            'horizontal' =&amp;gt; PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
            'vertical' =&amp;gt; PHPExcel_Style_Alignment::VERTICAL_CENTER
        )
        ,'font' =&amp;gt; array( 'bold' =&amp;gt; true )
    )
);

// 틀 고정 (A1행까지 고정)
$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;freezePane('A2');

for( $i=1; $i&amp;lt;=3; $i++ ){    
    $objPHPExcel-&amp;gt;setActiveSheetIndex(0)
        -&amp;gt; setCellValue(&quot;A&quot;.($i+1), &amp;lsquo;id&amp;rsquo;.$i)
        -&amp;gt; setCellValue(&quot;B&quot;.($i+1), &amp;lsquo;title&amp;rsquo;.$i)
        -&amp;gt; setCellValue(&quot;C&quot;.($i+1), &amp;lsquo;desc&amp;rsquo;.$i)
    ;
}

// 시트 이름 설정
$sheet-&amp;gt;setTitle(&amp;ldquo;Sample Sheet&amp;rdquo;);

// EXCEL 파일명
$excel_name = &amp;ldquo;Sample.xlsx&amp;rdquo;;

// EXCEL OUTPUT
header( &quot;Content-type: application/vnd.ms-excel; charset=utf-8&quot;);
header( &quot;Content-type: application/x-msexcel; charset=utf-8&quot;);
header('Content-Disposition: attachment;filename=&quot;' . $excel_name . '&quot;');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &quot;Excel2007&quot;);
$objWriter-&amp;gt;save('php://output');

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>php</category>
      <category>php excel</category>
      <category>php excel down</category>
      <category>PHP XLS</category>
      <category>php xlsx</category>
      <category>phpexcel</category>
      <category>phpexcel down</category>
      <category>phpexcel download</category>
      <category>phpexcel xls</category>
      <category>phpexcle xlsx</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/334</guid>
      <comments>https://zxchsr.tistory.com/334#entry334comment</comments>
      <pubDate>Mon, 14 Aug 2023 17:09:30 +0900</pubDate>
    </item>
    <item>
      <title>[LINUX] NGINX + PHP7.0 + PHP-FPM 설치방법</title>
      <link>https://zxchsr.tistory.com/333</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;NGINX + PHP7.0 + PHP-FPM 설치방법&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;설치 및 업데이트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.1. 업데이트&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051323911&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum update&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.2. NGINX 설치&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051361040&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install nginx -y&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.3. PHP 7.0 설치 (+php-fpm, mysql 등)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051417491&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install php70 php70-fpm php70-mcrypt php70-xml php70-mcrypt php70-zip php70-xmlrpc php70-gd php70-curl php70-pdo php70-mysqlnd php70-mbstring php70-gmp&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.4. NGINX + PHP 재시작&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051475758&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo service nginx restart
sudo service php-fpm restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.5. NGINX + PHP 상태 체크&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051499425&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo service nginx status
sudo service php-fpm status&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;2.1. php-fpm&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051558993&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/php-fpm.d/www.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000; text-align: start;&quot;&gt;처음에 ; 추가 또는 주석 해제하기&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051651561&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[global]
emergency_restart_threshold = 10
emergency_restart_interval = 1m
process_control_timeout = 10s

[www]
listen = /var/run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0664
user = nginx
group = nginx

pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 200

php_admin_value[memory_limit] = 128M&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;php-fpm 재시작&lt;/p&gt;
&lt;pre id=&quot;code_1691051678060&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo service php-fpm restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2.2. nginx&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051703346&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/nginx/conf.d/virtual.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 구성 추가&lt;/p&gt;
&lt;pre id=&quot;code_1691051733328&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;server {
    listen 80;
    server_name mydomain.com;
    location / {
        root   /var/www/html/mydomain/public;
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        root /var/www/html/mydomain/public;
        fastcgi_pass   unix:/var/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nginx 재시작&lt;/p&gt;
&lt;pre id=&quot;code_1691051751395&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo service nginx restart&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 자주 발생하는 에러 체크&lt;/h2&gt;
&lt;p id=&quot;76d2&quot; style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;502 Bad Gateway NGINX or 502 Service Temporarily Overloaded&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;소유자 권한 확인&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;background-color: #f2f2f2; color: #242424; text-align: start;&quot;&gt;/var/run/php-fpm/www.sock&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051826664&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo chown -R nginx /var/run/php-fpm/www.sock&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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.1. composer 설치&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051911066&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd ~
sudo curl -sS https://getcomposer.org/installer | sudo php
sudo mv composer.phar /usr/local/bin/composer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.2. git 설치&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1691051924866&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install git&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;figure id=&quot;og_1691052078060&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;How to install NGINX + PHP7.1 + PHP-FPM in Amazon AMI EC2 for LARAVEL 5.x&quot; data-og-description=&quot;No blah blah blah, let&amp;rsquo;s go to the point&amp;hellip;&quot; data-og-host=&quot;medium.com&quot; data-og-source-url=&quot;https://medium.com/@fdcgoncalves/how-to-install-nginx-php7-1-php-fpm-in-amazon-ami-ec2-for-laravel-5-x-ea4ca8b0fcb4&quot; data-og-url=&quot;https://medium.com/@fdcgoncalves/how-to-install-nginx-php7-1-php-fpm-in-amazon-ami-ec2-for-laravel-5-x-ea4ca8b0fcb4&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bwHm2Y/hyTxQIgpRO/5QlPUu7hAJ5bYmnBmEIUqk/img.png?width=590&amp;amp;height=234&amp;amp;face=0_0_590_234,https://scrap.kakaocdn.net/dn/oR5FL/hyTxY0AOQb/ZrO9agJKbgEwf4g8K81hRk/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800,https://scrap.kakaocdn.net/dn/cwcFe2/hyTxURqoOS/Gbh2RUq9sSqo8cQzPc3PA1/img.png?width=875&amp;amp;height=382&amp;amp;face=0_0_875_382&quot;&gt;&lt;a href=&quot;https://medium.com/@fdcgoncalves/how-to-install-nginx-php7-1-php-fpm-in-amazon-ami-ec2-for-laravel-5-x-ea4ca8b0fcb4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://medium.com/@fdcgoncalves/how-to-install-nginx-php7-1-php-fpm-in-amazon-ami-ec2-for-laravel-5-x-ea4ca8b0fcb4&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bwHm2Y/hyTxQIgpRO/5QlPUu7hAJ5bYmnBmEIUqk/img.png?width=590&amp;amp;height=234&amp;amp;face=0_0_590_234,https://scrap.kakaocdn.net/dn/oR5FL/hyTxY0AOQb/ZrO9agJKbgEwf4g8K81hRk/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800,https://scrap.kakaocdn.net/dn/cwcFe2/hyTxURqoOS/Gbh2RUq9sSqo8cQzPc3PA1/img.png?width=875&amp;amp;height=382&amp;amp;face=0_0_875_382');&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;How to install NGINX + PHP7.1 + PHP-FPM in Amazon AMI EC2 for LARAVEL 5.x&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;No blah blah blah, let&amp;rsquo;s go to the point&amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;medium.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;</description>
      <category>LINUX</category>
      <category>Composer</category>
      <category>git</category>
      <category>nginx</category>
      <category>php-fpm</category>
      <category>php7</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/333</guid>
      <comments>https://zxchsr.tistory.com/333#entry333comment</comments>
      <pubDate>Thu, 3 Aug 2023 17:40:23 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 브랜치 이름 변경하기, Rename Branch</title>
      <link>https://zxchsr.tistory.com/332</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Git 브랜치 이름 변경하기, Rename Branch&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 사용법&lt;/h2&gt;
&lt;pre id=&quot;code_1691051091791&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git branch -m [현재_브랜치명] [변경할_브랜치명]&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>Branch</category>
      <category>branch name</category>
      <category>git</category>
      <category>git branch</category>
      <category>git rename</category>
      <category>git rename branch</category>
      <category>rename branch</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/332</guid>
      <comments>https://zxchsr.tistory.com/332#entry332comment</comments>
      <pubDate>Thu, 3 Aug 2023 17:25:44 +0900</pubDate>
    </item>
    <item>
      <title>[Git] pull, push 할 때 username, password 생략하기 (git-credential-cache 저장)</title>
      <link>https://zxchsr.tistory.com/331</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Git pull, push 할 때 username, password 생략하기 (git-credential-cache 저장)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git 작업 이후 pull, push 시 username, password 를 매번 입력해야할 때 아래 명령어 입력 이후 작업하게 되면 git-credential-cache 메모리에 정보를 저장하게 되며 이후 pull, push 할 때 입력하지 않아도 됨&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 사용법&lt;/h2&gt;
&lt;pre id=&quot;code_1691050846570&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; git config credential.helper store --global&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>git</category>
      <category>git credential</category>
      <category>git credential cache</category>
      <category>git password</category>
      <category>git pull</category>
      <category>git pull password</category>
      <category>git push</category>
      <category>git push password</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/331</guid>
      <comments>https://zxchsr.tistory.com/331#entry331comment</comments>
      <pubDate>Thu, 3 Aug 2023 17:22:03 +0900</pubDate>
    </item>
    <item>
      <title>[LINUX] 리눅스 파일 권한 설정 명령어 (chmod, chown, chgrp)</title>
      <link>https://zxchsr.tistory.com/330</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ LINUX 리눅스 파일 권한 설정 명령어 (chmod, chown, chgrp)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스(Linux)는&amp;nbsp;1대의&amp;nbsp;컴퓨터를&amp;nbsp;여러명이&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;멀티유저&amp;nbsp;운영체제(OS)로&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;&lt;br /&gt;중요한 파일 or 디렉토리와 같이 보안이 필요한 부분에 대한 권한(퍼미션) 관리가 매우 중요함&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;권한&amp;nbsp;종류&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;r = read(읽기) = 4&lt;/li&gt;
&lt;li&gt;w = write(쓰기) = 2&lt;/li&gt;
&lt;li&gt;x&amp;nbsp;=&amp;nbsp;execute(실행) =&amp;nbsp;1&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;r&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #009a87;&quot;&gt;w&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #006dd7;&quot;&gt;x&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;4&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style=&quot;color: #009a87;&quot;&gt;2&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style=&quot;color: #006dd7;&quot;&gt;1&lt;/span&gt;&amp;nbsp;=&amp;nbsp;7&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 권한 구조 및 의미&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;이미지 2023. 7. 25. 오후 2.23.jpg&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7NyGb/btsoQtS4NtR/BkekRosIDxIk7AEUcWmu6k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7NyGb/btsoQtS4NtR/BkekRosIDxIk7AEUcWmu6k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7NyGb/btsoQtS4NtR/BkekRosIDxIk7AEUcWmu6k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7NyGb%2FbtsoQtS4NtR%2FBkekRosIDxIk7AEUcWmu6k%2Fimg.jpg&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;370&quot; height=&quot;123&quot; data-filename=&quot;이미지 2023. 7. 25. 오후 2.23.jpg&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;example. &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;rwx&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;r-x&lt;/span&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;r-x&lt;/span&gt;&lt;/b&gt;&lt;/span&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;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;d&lt;/span&gt;&lt;/b&gt; 파일(-), 디렉토리(d) 구분&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;rwx&lt;/span&gt;&lt;/b&gt; 소유자(owner) 권한(퍼미션)&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;r-x&lt;/b&gt;&lt;/span&gt; 그룹(group) 권한&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;r-x&lt;/b&gt;&lt;/span&gt;&amp;nbsp;다른사용자(other)&amp;nbsp;권한&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;사용법&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;1. 파일 or 디렉토리 권한 확인&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1690262482585&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ls -l&lt;/code&gt;&lt;/pre&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;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;2. 파일 or 디렉토리 권한 변경 (chmod)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;chmod [권한] [변경할 파일 or 디렉터리]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1690263130048&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod u+x test.txt 
#소유자에게 실행 권한부여

chmod g+rwx test.txt
#그룹에게 읽기,쓰기,실행 권한부여

chmod go+r test.txt
#그룹과 다른 사용자에게 읽기 권한부여


chmod 000 test.txt
#소유자,그룹,다른사용자의 모든 권한제거

chmod 777 test.txt
#소유자,그룹,다른사용자에게 모든 권한부여

chmod 700 test.txt
#소유자에게만 모든 권한 부여

chmod 744 test.txt
#소유자에게는 모든 권한부여 및 그룹,다른사용자에게는 읽기 권한만 부여&lt;/code&gt;&lt;/pre&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;b&gt;3. 파일 or 디렉토리 소유권 변경 (chown)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;chown&amp;nbsp;[소유주]&amp;nbsp;[변경할&amp;nbsp;파일&amp;nbsp;or&amp;nbsp;디렉토리]&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;chown&amp;nbsp;[소유주]:[그룹]&amp;nbsp;[변경할&amp;nbsp;디렉터리]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일&amp;nbsp;or&amp;nbsp;디렉토리의&amp;nbsp;소유자&amp;nbsp;및&amp;nbsp;그룹&amp;nbsp;변경&lt;br /&gt;즉,&amp;nbsp;파일의&amp;nbsp;소유권&amp;nbsp;변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;-R&lt;/span&gt; 옵션 &lt;/b&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;적용 시 하위 디렉터리 &amp;amp; 파일까지 적용&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1690263625208&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo chown user01 test.txt
#test.txt 파일의 소유자를 user01로 변경

sudo chown -R user02:user02 test
#test 디렉토리 및 하위 디렉토리 &amp;amp; 파일 모두 소유자와 그룹을 user02로 변경&lt;/code&gt;&lt;/pre&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;b&gt;4. 파일 그룹 변경 (chgrp)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;chgrp&amp;nbsp;[그룹]&amp;nbsp;[변경할&amp;nbsp;파일]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1690263932622&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo chgrp chsr test.txt
#test.txt 파일의 그룹을 chsr로 변경&lt;/code&gt;&lt;/pre&gt;</description>
      <category>LINUX</category>
      <category>chgrp</category>
      <category>chmod</category>
      <category>linux chgrp</category>
      <category>Linux chmod</category>
      <category>linux chown</category>
      <category>linux 권한</category>
      <category>linux 파일</category>
      <category>리눅스 chmod</category>
      <category>리눅스 chown</category>
      <category>리눅스 파일 권한</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/330</guid>
      <comments>https://zxchsr.tistory.com/330#entry330comment</comments>
      <pubDate>Tue, 25 Jul 2023 14:49:27 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] php 문자열 역슬래시 제거 stripslashes()</title>
      <link>https://zxchsr.tistory.com/329</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ PHP &lt;span&gt;문자열&lt;/span&gt; &lt;span&gt;역슬래시&lt;/span&gt; &lt;span&gt;제거&lt;/span&gt; stripslashes()&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;php &lt;/span&gt;문자열&lt;span&gt; &lt;/span&gt;내&lt;span&gt; &lt;/span&gt;역슬래시&lt;span&gt; &lt;/span&gt;제거해주는&lt;span&gt; &lt;/span&gt;변수&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;예제&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1689836796985&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$test = 'hi\imtest';
$tmp_test = stripslashes($test);

echo $tmp_test;	// hiimtest&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>php stripslashes</category>
      <category>php 역슬래시</category>
      <category>php 역슬래시 제거</category>
      <category>php 역슬래시 제거 stripslashes</category>
      <category>php 함수</category>
      <category>stripslashes</category>
      <category>역슬래시</category>
      <category>역슬래시 제거</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/329</guid>
      <comments>https://zxchsr.tistory.com/329#entry329comment</comments>
      <pubDate>Thu, 20 Jul 2023 16:07:39 +0900</pubDate>
    </item>
    <item>
      <title>[Magento] magento 2 How to Create a new Database Table</title>
      <link>https://zxchsr.tistory.com/328</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Magento&amp;nbsp;2 How to Create a new Database Table&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;db_schema.xml &lt;span&gt;파일을&lt;/span&gt; &lt;span&gt;사용하여&lt;/span&gt;&amp;nbsp;신규&amp;nbsp;&lt;span&gt;데이터베이스&lt;/span&gt; &lt;span&gt;테이블&lt;/span&gt; &lt;span&gt;생성&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■ &lt;span style=&quot;background-color: #fdfdfd; color: #000000; text-align: start;&quot;&gt;How to create&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. app/code/&amp;lt;CompanyName&amp;gt;/&amp;lt;ModuleName&amp;gt;/etc/&lt;b&gt;db-schema.xml&lt;/b&gt; 파일 생성&lt;/p&gt;
&lt;pre id=&quot;code_1688017760142&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;
&amp;lt;schema xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd&quot;&amp;gt;
    &amp;lt;table name=&quot;new_table_name&quot; resource=&quot;default&quot; engine=&quot;innodb&quot; comment=&quot;new table purpose of use&quot;&amp;gt;
        &amp;lt;column xsi:type=&quot;int&quot; name=&quot;entity_id&quot; unsigned=&quot;true&quot; nullable=&quot;false&quot; identity=&quot;true&quot; comment=&quot;Entity ID&quot;/&amp;gt;
        &amp;lt;column xsi:type=&quot;int&quot; name=&quot;status&quot; padding=&quot;11&quot; unsigned=&quot;false&quot; nullable=&quot;false&quot; default=&quot;0&quot; comment=&quot;Status&quot;/&amp;gt;
        &amp;lt;column xsi:type=&quot;timestamp&quot; name=&quot;created_at&quot; on_update=&quot;false&quot; nullable=&quot;true&quot; default=&quot;CURRENT_TIMESTAMP&quot;
                comment=&quot;Created At&quot;/&amp;gt;
        &amp;lt;column xsi:type=&quot;timestamp&quot; name=&quot;updated_at&quot; on_update=&quot;true&quot; nullable=&quot;true&quot; default=&quot;CURRENT_TIMESTAMP&quot;
                comment=&quot;Updated At&quot;/&amp;gt;
        &amp;lt;constraint xsi:type=&quot;primary&quot; referenceId=&quot;PRIMARY&quot;&amp;gt;
            &amp;lt;column name=&quot;entity_id&quot; /&amp;gt;
        &amp;lt;/constraint&amp;gt;
    &amp;lt;/table&amp;gt;
&amp;lt;/schema&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 하기 명령어 실행하여 &lt;b&gt;db_schema_whitelist.json&lt;/b&gt; 파일 추가 (하기 명령어 실행 시 json 파일이 자동으로 생성됨)&lt;/p&gt;
&lt;pre id=&quot;code_1688017791779&quot; class=&quot;ruby&quot; data-ke-language=&quot;ruby&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;php bin/magento setup:db-declaration:generate-whitelist --module-name=CompanyName_ModuleName&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. json 파일 생성되면 하기 명령어 순차적으로 실행&lt;/p&gt;
&lt;pre id=&quot;code_1688017830730&quot; class=&quot;ruby&quot; data-ke-language=&quot;ruby&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;php bin/magento s:up &amp;amp;&amp;amp; php bin/magento se:s:d -f&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>Magento</category>
      <category>magento2</category>
      <category>magento2 create table</category>
      <category>magento2 database</category>
      <category>magento2 db table</category>
      <category>magento2 db xml</category>
      <category>magento2 db-schema</category>
      <category>magento2 how to create table</category>
      <category>magento2 new table</category>
      <category>magento2 table</category>
      <category>magento2 xml</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/328</guid>
      <comments>https://zxchsr.tistory.com/328#entry328comment</comments>
      <pubDate>Thu, 29 Jun 2023 14:55:00 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] location.href 와 location.replace 페이지 이동 차이점</title>
      <link>https://zxchsr.tistory.com/327</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Javascript location.href &lt;span&gt;와&lt;/span&gt; location.replace &lt;span&gt;페이지&lt;/span&gt; &lt;span&gt;이동&lt;/span&gt; &lt;span&gt;차이점&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;페이지&amp;nbsp;&amp;nbsp;이동&amp;nbsp;시&amp;nbsp;사용되는&amp;nbsp;location.href&amp;nbsp;와&amp;nbsp;location.replace&amp;nbsp;의&lt;br /&gt;&lt;b&gt;가장&amp;nbsp;큰&amp;nbsp;차이점은&amp;nbsp;location.href&amp;nbsp;는&amp;nbsp;객체의&amp;nbsp;속성이고&amp;nbsp;location.replace&amp;nbsp;는&amp;nbsp;매소드(함수)로&amp;nbsp;작동됨&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;location.href&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;location.replace&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 차이점&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;기능&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;형태&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;주소 히스토리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;&lt;b&gt;location&lt;span style=&quot;color: #ee2323;&quot;&gt;.href&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;신규 페이지로 이동(단순이동)&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;객체 속성&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;기록됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20%; text-align: center;&quot;&gt;&lt;b&gt;location&lt;span style=&quot;color: #ee2323;&quot;&gt;.replace&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;기존 페이지에서 신규페이지 변경&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;매소드(함수)&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;기록되지 않음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;사용 예제&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1688016200309&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// similar behavior as an HTTP redirect
location.replace(&quot;http://test_domain_name.com&quot;);

// similar behavior as clicking on a link
location.href = &quot;http://test_domain_name.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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Javascript</category>
      <category>href replace</category>
      <category>href replace 차이</category>
      <category>javascript location</category>
      <category>javascript location.href</category>
      <category>javascript location.replace</category>
      <category>javascript 페이지이동</category>
      <category>location href replace</category>
      <category>location.href</category>
      <category>location.replace</category>
      <category>replace method</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/327</guid>
      <comments>https://zxchsr.tistory.com/327#entry327comment</comments>
      <pubDate>Thu, 29 Jun 2023 14:21:53 +0900</pubDate>
    </item>
    <item>
      <title>[Magento] magento 2 available conditions type</title>
      <link>https://zxchsr.tistory.com/326</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ magento 2 available conditions type&amp;nbsp;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ &lt;b&gt;What are the available Magento 2 condition types?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Magento 2 condition types that are available according to Magento documentation:&lt;/p&gt;
&lt;pre id=&quot;code_1687140764169&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;eq&quot; =&amp;gt; equalValue
 &quot;neq&quot; =&amp;gt; notEqualValue
 &quot;like&quot; =&amp;gt; likeValue
 &quot;nlike&quot; =&amp;gt; notLikeValue
 &quot;is&quot; =&amp;gt; isValue
 &quot;in&quot; =&amp;gt; inValues
 &quot;nin&quot; =&amp;gt; notInValues
 &quot;notnull&quot; =&amp;gt; valueIsNotNull
 &quot;null&quot; =&amp;gt; valueIsNull
 &quot;moreq&quot; =&amp;gt; moreOrEqualValue
 &quot;gt&quot; =&amp;gt; greaterValue
 &quot;lt&quot; =&amp;gt; lessValue
 &quot;gteq&quot; =&amp;gt; greaterOrEqualValue
 &quot;lteq&quot; =&amp;gt; lessOrEqualValue
 &quot;finset&quot; =&amp;gt; valueInSet
 &quot;from&quot; =&amp;gt; fromValue, &quot;to&quot; =&amp;gt; toValue&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Magento</category>
      <category>condition type</category>
      <category>conditions type</category>
      <category>magento</category>
      <category>magento conditions</category>
      <category>magento type</category>
      <category>magento2</category>
      <category>magento2 conditions</category>
      <category>magento2 conditions type</category>
      <category>magento2 eq</category>
      <category>magento2 type</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/326</guid>
      <comments>https://zxchsr.tistory.com/326#entry326comment</comments>
      <pubDate>Mon, 19 Jun 2023 11:14:01 +0900</pubDate>
    </item>
    <item>
      <title>[Magento] magento 2 Run cron</title>
      <link>https://zxchsr.tistory.com/325</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■  Magento 2 Run cron&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt; 필요 시 크론 강제로 돌려볼때 사용할 수 있음&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;terminal or iterm group&lt;span&gt;별&lt;/span&gt; cron &lt;span&gt;돌리기&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*&lt;span&gt;특정&lt;/span&gt; group cron &lt;span&gt;돌릴경우&lt;/span&gt; default &lt;span&gt;가&lt;/span&gt; &lt;span&gt;아닌&lt;/span&gt; group id &lt;span&gt;변경해주면&lt;/span&gt; &lt;span&gt;됨&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1679535980010&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;php bin/magento cron:run --group default&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;특정&lt;span&gt; &lt;/span&gt;페이지&lt;span&gt; &lt;/span&gt;호출&lt;span&gt; &lt;/span&gt;시&lt;span&gt; cron &lt;/span&gt;돌려보고&lt;span&gt; &lt;/span&gt;싶은&lt;span&gt; &lt;/span&gt;경우&lt;/h2&gt;
&lt;pre id=&quot;code_1679535999312&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$cron = \Magento\Framework\App\ObjectManager::getInstance()
                    -&amp;gt;create('Vendor\Module\Cron\Test');

$cron-&amp;gt;execute();&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;예시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;**Note if using Nginx you can put these files in the pub/ folder and adjust the require path for the Test.php file to&amp;nbsp;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;require '../app/bootstrap.php'&lt;/span&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;b&gt;Test.php&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1679536043426&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    require __DIR__ . '/app/bootstrap.php';
    $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
    /** @var \Magento\Framework\App\Http $app */
    $app = $bootstrap-&amp;gt;createApplication('TestApp');
    $bootstrap-&amp;gt;run($app);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;TestApp.php&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1679536063727&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public function launch()
 {
        /** @var \Vendor\Module\Cron\Test $cron */
        $cron = \Magento\Framework\App\ObjectManager::getInstance()
            -&amp;gt;create('Vendor\Module\Cron\Test');

        $cron-&amp;gt;execute();

        return $this-&amp;gt;_response;

 }&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;figure id=&quot;og_1679536075928&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Magento 2 run a specific Cron without cron:run CLI command?&quot; data-og-description=&quot;To make a long story short xdebug will not reliably stop on the breakpoints in my cron files when using the typical: php bin/magento cron:run Xdebug is all setup properly and sometimes it will wo...&quot; data-og-host=&quot;magento.stackexchange.com&quot; data-og-source-url=&quot;https://magento.stackexchange.com/questions/152806/magento-2-run-a-specific-cron-without-cronrun-cli-command&quot; data-og-url=&quot;https://magento.stackexchange.com/questions/152806/magento-2-run-a-specific-cron-without-cronrun-cli-command&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZjxxc/hyR1W4In8E/cs52YKtKMBVJUvc7jNSLO1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/I0nYZ/hyR1XP4UTe/GEQklyYVlz4FDrL3TkUlTK/img.png?width=836&amp;amp;height=478&amp;amp;face=0_0_836_478&quot;&gt;&lt;a href=&quot;https://magento.stackexchange.com/questions/152806/magento-2-run-a-specific-cron-without-cronrun-cli-command&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://magento.stackexchange.com/questions/152806/magento-2-run-a-specific-cron-without-cronrun-cli-command&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZjxxc/hyR1W4In8E/cs52YKtKMBVJUvc7jNSLO1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/I0nYZ/hyR1XP4UTe/GEQklyYVlz4FDrL3TkUlTK/img.png?width=836&amp;amp;height=478&amp;amp;face=0_0_836_478');&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;Magento 2 run a specific Cron without cron:run CLI command?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;To make a long story short xdebug will not reliably stop on the breakpoints in my cron files when using the typical: php bin/magento cron:run Xdebug is all setup properly and sometimes it will wo...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;magento.stackexchange.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;</description>
      <category>Magento</category>
      <category>cron group</category>
      <category>cron run</category>
      <category>cron run group</category>
      <category>magento 2</category>
      <category>magento 2 cron</category>
      <category>magento 2 cron run</category>
      <category>magento 2 run cron</category>
      <category>magento cron</category>
      <category>magento cron run</category>
      <category>run cron</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/325</guid>
      <comments>https://zxchsr.tistory.com/325#entry325comment</comments>
      <pubDate>Thu, 23 Mar 2023 10:50:14 +0900</pubDate>
    </item>
    <item>
      <title>[Mac] 맥북 터미널에서 AWS Bastion 터널링 설정 및 접속</title>
      <link>https://zxchsr.tistory.com/324</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Mac &lt;span&gt;맥북&lt;/span&gt; &lt;span&gt;터미널에서&lt;/span&gt; AWS Bastion &lt;span&gt;터널링&lt;/span&gt; &lt;span&gt;설정&lt;/span&gt; &lt;span&gt;및&lt;/span&gt; &lt;span&gt;접속&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ssh&lt;/span&gt;로&lt;span&gt; &lt;/span&gt;서버&lt;span&gt; &lt;/span&gt;접근&lt;span&gt; &lt;/span&gt;시&lt;span&gt; key &lt;/span&gt;를&lt;span&gt; &lt;/span&gt;등록하여&lt;span&gt; &lt;/span&gt;설정&lt;span&gt; &lt;/span&gt;및&lt;span&gt; &lt;/span&gt;접속&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;ssh key &lt;span&gt;등록방법&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1679535201496&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh-add -K .pem파일경로&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Bastion 터널링 설정방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;Mac&amp;nbsp;terminal&amp;nbsp;or&amp;nbsp;iterm&amp;nbsp;실행&lt;br /&gt;2.&amp;nbsp;터널링에&amp;nbsp;필요한&amp;nbsp;.pem&amp;nbsp;파일&amp;nbsp;경로&amp;nbsp;확인&amp;nbsp;(해당&amp;nbsp;파일&amp;nbsp;권한&amp;nbsp;400&amp;nbsp;or&amp;nbsp;700)&lt;br /&gt;3.&amp;nbsp;하기&amp;nbsp;명령어&amp;nbsp;실행&lt;br /&gt;local_port: 로컬 포트 (임의 지정)&lt;/p&gt;
&lt;pre id=&quot;code_1679535280994&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#ssh -i ~/.pem파일경로/.pem aws_username@aws_db_ip -p 22 -L local_port:DNS_path

ssh -i ~/mykeypair.pem -N -D 8157 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com&lt;/code&gt;&lt;/pre&gt;</description>
      <category>AWS</category>
      <category>aws bastion</category>
      <category>aws bastion 설정</category>
      <category>bastion 터널링</category>
      <category>iterm bastion</category>
      <category>mac bastion</category>
      <category>terminal bastion</category>
      <category>맥 베스천</category>
      <category>베스천설정</category>
      <category>터미널 베스천설정</category>
      <category>터미널 베스천접속</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/324</guid>
      <comments>https://zxchsr.tistory.com/324#entry324comment</comments>
      <pubDate>Thu, 23 Mar 2023 10:36:56 +0900</pubDate>
    </item>
    <item>
      <title>[MySql] 줄바꿈(엔터) 개행문자 제거, 문자열 치환</title>
      <link>https://zxchsr.tistory.com/323</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;MySql 줄바꿈(엔터) 개행문자 제거, 문자열 치환&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mysql 데이터를 엑셀 추출할 때 개행문자가 포함된 경우 엑셀은 엔터, 탭, 쉼표 등으로 구분되기 때문에 셀의 범위가 원하는 것과 상이하게 표현될 때가 있기 때문에 Mysql 의 REPLACE 함수를 사용해 개행문자를 제거(공백으로 치환)해야 함&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;REPLACE()&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1673586680863&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;REPLACE(컬럼명, 치환할문자, 치환될문자);&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 탭(tab) 제거 - CHAR(9)&lt;/h2&gt;
&lt;pre id=&quot;code_1673586741785&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT REPLACE(변환할컬럼명, CHAR(9), '');&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;■ 개행문자 제거 - \r\n&lt;/h2&gt;
&lt;pre id=&quot;code_1673586827667&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT REPLACE(변환할컬럼명, '\r\n', '');&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;■ 라인피드 제거 - CHAR(10)&lt;/h2&gt;
&lt;pre id=&quot;code_1673586856818&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT REPLACE(변환할컬럼명, CHAR(10), '');&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;■ 캐리지 리턴 제거 - CHAR(13)&lt;/h2&gt;
&lt;pre id=&quot;code_1673586895417&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT REPLACE(변환할컬럼명, CHAR(13), '');&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;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;모든 공백 한번에 제거&lt;/h2&gt;
&lt;pre id=&quot;code_1673586914667&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT REPLACE(REPLACE(REPLACE(변환할컬럼명, CHAR(9), ''), CHAR(10), ''), CHAR(13), '');&lt;/code&gt;&lt;/pre&gt;</description>
      <category>MySql</category>
      <category>MYSQL</category>
      <category>mysql replace</category>
      <category>mysql replace 공백</category>
      <category>mysql 공백 없애기</category>
      <category>mysql 공백 제거</category>
      <category>mysql 공백 치환</category>
      <category>mysql 문자열 치환</category>
      <category>mysql 엔터 제거</category>
      <category>mysql 엔터 치환</category>
      <category>mysql 치환</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/323</guid>
      <comments>https://zxchsr.tistory.com/323#entry323comment</comments>
      <pubDate>Fri, 13 Jan 2023 14:17:06 +0900</pubDate>
    </item>
    <item>
      <title>[VSCode] 파일 항상 새탭으로 열기</title>
      <link>https://zxchsr.tistory.com/322</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ VSCode &lt;span&gt;파일&lt;/span&gt; &lt;span&gt;항상&lt;/span&gt; &lt;span&gt;새탭으로&lt;/span&gt; &lt;span&gt;열기&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;vscode&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;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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;항상&lt;span&gt; &lt;/span&gt;새탭으로&lt;span&gt; &lt;/span&gt;파일&lt;span&gt; &lt;/span&gt;열기&lt;span&gt; &lt;/span&gt;설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;span&gt;설정&lt;/span&gt; (Command + ,) - &amp;ldquo;enable preview&amp;rdquo; &lt;span&gt;검색&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2.&amp;nbsp;하기&amp;nbsp;2개의&amp;nbsp;리스트&amp;nbsp;모두&amp;nbsp;선택&amp;nbsp;해제 &lt;br /&gt;-&amp;nbsp;Workbench&amp;nbsp;&amp;gt;&amp;nbsp;Editor:Enable&amp;nbsp;Preview &lt;br /&gt;-&amp;nbsp;Workbench&amp;nbsp;&amp;gt;&amp;nbsp;Editor:Enable&amp;nbsp;Preview&amp;nbsp;From&amp;nbsp;Code&amp;nbsp;Navigation&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2022-11-07 오전 11.33.30.png&quot; data-origin-width=&quot;2332&quot; data-origin-height=&quot;682&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t0jmI/btrQtUJh7JK/g16AaJadVeyHdY8rFxmdI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t0jmI/btrQtUJh7JK/g16AaJadVeyHdY8rFxmdI0/img.png&quot; data-alt=&quot;vscode 새탭으로 파일 열기 설정 - 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t0jmI/btrQtUJh7JK/g16AaJadVeyHdY8rFxmdI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft0jmI%2FbtrQtUJh7JK%2Fg16AaJadVeyHdY8rFxmdI0%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;2332&quot; height=&quot;682&quot; data-filename=&quot;스크린샷 2022-11-07 오전 11.33.30.png&quot; data-origin-width=&quot;2332&quot; data-origin-height=&quot;682&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;vscode 새탭으로 파일 열기 설정 - 캡처 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Tips</category>
      <category>vscode</category>
      <category>vscode 새창으로 열기</category>
      <category>vscode 새창으로 파일열기</category>
      <category>vscode 새탭 설정</category>
      <category>vscode 새탭으로 열기</category>
      <category>vscode 새탭으로 파일열기</category>
      <category>vscode 설정</category>
      <category>vscode 파일 여러개</category>
      <category>vscode 파일 여러개 열기</category>
      <category>vscode 파일 열기</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/322</guid>
      <comments>https://zxchsr.tistory.com/322#entry322comment</comments>
      <pubDate>Mon, 7 Nov 2022 11:45:18 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] MsSQL 연동하여 쿼리 실행하기 sqlsrv</title>
      <link>https://zxchsr.tistory.com/321</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ PHP MsSQL 연동하여 쿼리 실행하기 sqlsrv&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP에서&amp;nbsp;MsSQL&amp;nbsp;connect&amp;nbsp;연동하여&amp;nbsp;쿼리&amp;nbsp;실행하는&amp;nbsp;방법&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;MsSQL&amp;nbsp;연동&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;sqlsrv_connect&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1667543560782&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$endpoint = &quot;test.zxchsr.amazonaws.com&quot;;
$connectionOptions = array(
    &quot;database&quot; =&amp;gt; &quot;user_database_name&quot;,
    &quot;uid&quot; =&amp;gt; &quot;user_id&quot;,
    &quot;pwd&quot; =&amp;gt; &quot;user_password&quot;
);

// Establishes the connection
$conn = sqlsrv_connect($endpoint, $connectionOptions);
if ($conn === false) {
    die(formatErrors(sqlsrv_errors()));
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;연동한&amp;nbsp;MsSQL&amp;nbsp;쿼리&amp;nbsp;실행&amp;nbsp;방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;sqlsrv_fetch_object &lt;/b&gt;&lt;/span&gt;OR &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;sqlsrv_fetch_array&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1667543591659&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$selSql = &quot;
    SELECT *
    FROM test_table_name
&quot;;
$selRes = sqlsrv_query($conn, $selSql);
/* Retrieve each row as a PHP object and display the results.*/  
while( $obj = sqlsrv_fetch_object($selRes) ){  
	echo $obj-&amp;gt;LastName.&quot;, &quot;.$obj-&amp;gt;FirstName.&quot;\n&quot;;  
}

// OR
// while( $obj = sqlsrv_fetch_array($selRes) )  {  
//      echo $obj['LastName'].&quot;, &quot;.$obj['FirstName'].&quot;\n&quot;;  
// }&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>mssql connect</category>
      <category>mssql 연동</category>
      <category>mssql 쿼리</category>
      <category>mssql 쿼리 실행</category>
      <category>php mssql</category>
      <category>php mssql connect</category>
      <category>php mssql 연결</category>
      <category>php mssql 연동</category>
      <category>php mssql 쿼리</category>
      <category>php mssql 쿼리 실행</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/321</guid>
      <comments>https://zxchsr.tistory.com/321#entry321comment</comments>
      <pubDate>Fri, 4 Nov 2022 15:34:26 +0900</pubDate>
    </item>
    <item>
      <title>[JQuery] attr 다중 처리</title>
      <link>https://zxchsr.tistory.com/320</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ JQuery attr &lt;span&gt;다중&lt;/span&gt; &lt;span&gt;처리&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;attr &lt;/span&gt;속성&lt;span&gt; &lt;/span&gt;추가할&lt;span&gt; &lt;/span&gt;때&lt;span&gt; &lt;/span&gt;여러개의&lt;span&gt; &lt;/span&gt;속성값을&lt;span&gt; &lt;/span&gt;추가해야&lt;span&gt; &lt;/span&gt;할&lt;span&gt; &lt;/span&gt;경우가&lt;span&gt; &lt;/span&gt;있음&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;JQuery attr &lt;span&gt;추가하는&lt;/span&gt; &lt;span&gt;방법&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;lsquo;test_btn&amp;rsquo; &lt;/span&gt;클래스명을&lt;span&gt; &lt;/span&gt;가진&lt;span&gt; &lt;/span&gt;버튼&lt;span&gt; &lt;/span&gt;태그에&lt;span&gt; &lt;/span&gt;속성값을&lt;span&gt; &lt;/span&gt;추가한다고&lt;span&gt; &lt;/span&gt;할&lt;span&gt; &lt;/span&gt;때&lt;/p&gt;
&lt;pre id=&quot;code_1667203408839&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button class=&amp;lsquo;test_btn&amp;rsquo;&amp;gt;버튼&amp;lt;/button&amp;gt;&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;단일&amp;nbsp;처리&amp;nbsp;시&lt;/b&gt;&lt;br /&gt;&amp;lsquo;test_button&amp;rsquo;&amp;nbsp;아이디값&amp;nbsp;추가&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1667203434551&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$('test_btn').attr('id', 'test_button');&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;다중&amp;nbsp;처리&amp;nbsp;시&lt;/b&gt;&lt;br /&gt;&amp;lsquo;test_button&amp;rsquo;&amp;nbsp;아이디값&amp;nbsp;추가,&amp;nbsp;disabled&amp;nbsp;값&amp;nbsp;추가&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1667203610887&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$('test_btn').attr(
    'id' : 'test_button'
    , 'disabled' : 'disabled'
);&lt;/code&gt;&lt;/pre&gt;</description>
      <category>JQuery</category>
      <category>attr</category>
      <category>attr 다중</category>
      <category>attr 다중 처리</category>
      <category>attr 다중 추가</category>
      <category>attr 수정</category>
      <category>attr 추가</category>
      <category>jquery attr</category>
      <category>jquery attr 다중</category>
      <category>jquery attr 수정</category>
      <category>jquery attr 추가</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/320</guid>
      <comments>https://zxchsr.tistory.com/320#entry320comment</comments>
      <pubDate>Mon, 31 Oct 2022 17:08:32 +0900</pubDate>
    </item>
    <item>
      <title>[Windows] 윈도우 hosts 설정 방법 (메모장)</title>
      <link>https://zxchsr.tistory.com/319</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Windows 윈도우 hosts 설정 방법 (메모장)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hosts&amp;nbsp;파일&amp;nbsp;=&amp;nbsp;호스트명을&amp;nbsp;설정하는&amp;nbsp;IP&amp;nbsp;주소로&amp;nbsp;변경해주는&amp;nbsp;파일&lt;br /&gt;*로컬&amp;nbsp;개발&amp;nbsp;환경의&amp;nbsp;경우&amp;nbsp;hosts&amp;nbsp;설정을&amp;nbsp;해줘야&amp;nbsp;하는&amp;nbsp;경우가&amp;nbsp;있음&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;Windows&amp;nbsp;윈도우&amp;nbsp;환경에서&amp;nbsp;메모장을&amp;nbsp;통한&amp;nbsp;hosts&amp;nbsp;설정&amp;nbsp;방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;메모장&amp;nbsp;열기&lt;br /&gt;검색&amp;nbsp;-&amp;nbsp;&quot;메모장&quot;&amp;nbsp;검색&amp;nbsp;후&amp;nbsp;해당&amp;nbsp;앱&amp;nbsp;마우스&amp;nbsp;오른쪽&amp;nbsp;클릭&amp;nbsp;-&amp;nbsp;&quot;관리자&amp;nbsp;권한으로&amp;nbsp;실행&quot;&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;350&quot; data-origin-height=&quot;616&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQOKAz/btrPEIP2UI7/9BnuxK9xksd1uSu5hzcJpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQOKAz/btrPEIP2UI7/9BnuxK9xksd1uSu5hzcJpk/img.png&quot; data-alt=&quot;windows - search 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQOKAz/btrPEIP2UI7/9BnuxK9xksd1uSu5hzcJpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQOKAz%2FbtrPEIP2UI7%2F9BnuxK9xksd1uSu5hzcJpk%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;284&quot; height=&quot;500&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;616&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;windows - search 캡처 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;2.&amp;nbsp;메모장&amp;nbsp;-&amp;nbsp;파일&amp;nbsp;-&amp;nbsp;열기&amp;nbsp;-&amp;nbsp;하기&amp;nbsp;경로&amp;nbsp;접근&lt;br /&gt;\Windows\System32\drivers\etc\&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;526&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJyXsM/btrPGPt0kkk/H2PVy8anQnacx2KY0THiP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJyXsM/btrPGPt0kkk/H2PVy8anQnacx2KY0THiP0/img.png&quot; data-alt=&quot;메모장 - 파일 - 열기 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJyXsM/btrPGPt0kkk/H2PVy8anQnacx2KY0THiP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJyXsM%2FbtrPGPt0kkk%2FH2PVy8anQnacx2KY0THiP0%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;416&quot; height=&quot;261&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;330&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;&lt;br /&gt;3.&amp;nbsp;모든&amp;nbsp;파일로&amp;nbsp;검색&amp;nbsp;후&amp;nbsp;hosts&amp;nbsp;파일&amp;nbsp;열기&lt;/p&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;760&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AC2iR/btrPFy7lU3h/qHhDn3ktOvG5tJ6N2ihD21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AC2iR/btrPFy7lU3h/qHhDn3ktOvG5tJ6N2ihD21/img.png&quot; data-alt=&quot;hosts 파일 경로 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AC2iR/btrPFy7lU3h/qHhDn3ktOvG5tJ6N2ihD21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAC2iR%2FbtrPFy7lU3h%2FqHhDn3ktOvG5tJ6N2ihD21%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;641&quot; height=&quot;406&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;481&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;hosts 파일 경로 캡처 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;4. ip주소, 매핑할 호스트명 추가 (예) 123.12.1.0&amp;nbsp;&lt;a href=&quot;http://www.test.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.test.com&lt;/a&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1666835488689&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
123.12.1.0	www.test.com&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>windows hosts</category>
      <category>windows hosts 설정</category>
      <category>windows 도메인 설정</category>
      <category>windows 호스트</category>
      <category>windows 호스트 설정</category>
      <category>도메인 설정</category>
      <category>윈도우 호스트</category>
      <category>윈도우 호스트 설정</category>
      <category>윈도우 호스팅 설정</category>
      <category>호스트 설정</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/319</guid>
      <comments>https://zxchsr.tistory.com/319#entry319comment</comments>
      <pubDate>Thu, 27 Oct 2022 10:53:34 +0900</pubDate>
    </item>
    <item>
      <title>[Mac] 맥북 hosts 설정 방법 (터미널)</title>
      <link>https://zxchsr.tistory.com/318</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ Mac 맥북 hosts 설정 방법 (터미널)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hosts&amp;nbsp;파일&amp;nbsp;=&amp;nbsp;호스트명을&amp;nbsp;설정하는&amp;nbsp;IP&amp;nbsp;주소로&amp;nbsp;변경해주는&amp;nbsp;파일&lt;br /&gt;*로컬&amp;nbsp;개발&amp;nbsp;환경의&amp;nbsp;경우&amp;nbsp;hosts&amp;nbsp;설정을&amp;nbsp;해줘야&amp;nbsp;하는&amp;nbsp;경우가&amp;nbsp;있음&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Mac 맥북에서 터미널을 통한 hosts 설정 방법&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;터미널&amp;nbsp;열기&lt;br /&gt;spotlight&amp;nbsp;검색&amp;nbsp;(command&amp;nbsp;+&amp;nbsp;space)&amp;nbsp;-&amp;nbsp;&quot;터미널&quot;&amp;nbsp;입력&amp;nbsp;후&amp;nbsp;엔터&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLeTQR/btrPDluBdXO/2Q6fDkzkEKsPVNvu1E6lM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLeTQR/btrPDluBdXO/2Q6fDkzkEKsPVNvu1E6lM0/img.png&quot; data-alt=&quot;mac - spotlight 이미지 캡처&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLeTQR/btrPDluBdXO/2Q6fDkzkEKsPVNvu1E6lM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLeTQR%2FbtrPDluBdXO%2F2Q6fDkzkEKsPVNvu1E6lM0%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;651&quot; height=&quot;87&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;mac - spotlight 이미지 캡처&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;2.&amp;nbsp;터미널&amp;nbsp;창&amp;nbsp;내&amp;nbsp;명령어&amp;nbsp;입력&amp;nbsp;(sudo&amp;nbsp;vi&amp;nbsp;/etc/hosts)&lt;/p&gt;
&lt;pre id=&quot;code_1666833265479&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/hosts&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;3.&amp;nbsp;Password(패스워드)&amp;nbsp;입력&lt;br /&gt;&lt;br /&gt;4.&amp;nbsp;hosts&amp;nbsp;파일&amp;nbsp;들어가서&amp;nbsp;i&amp;nbsp;명령어&amp;nbsp;통해&amp;nbsp;입력모드로&amp;nbsp;변환&amp;nbsp;후&amp;nbsp;내용&amp;nbsp;수정&amp;nbsp;후&amp;nbsp;명령모드(esc)&amp;nbsp;-&amp;nbsp;:wq!&amp;nbsp;(저장&amp;nbsp;후&amp;nbsp;나가기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ip주소&amp;nbsp; &amp;nbsp; &amp;nbsp; 매핑할 호스트명&lt;/p&gt;
&lt;pre id=&quot;code_1666833311709&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##

123.12.1.0	www.test.com&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tips</category>
      <category>mac hosts</category>
      <category>mac hosts 설정</category>
      <category>mac 도메인 설정</category>
      <category>mac 호스팅</category>
      <category>도메인 설정</category>
      <category>맥 도메인 설정</category>
      <category>맥 호스트</category>
      <category>맥 호스트설정</category>
      <category>맥 호스팅</category>
      <category>호스트 설정</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/318</guid>
      <comments>https://zxchsr.tistory.com/318#entry318comment</comments>
      <pubDate>Thu, 27 Oct 2022 10:21:16 +0900</pubDate>
    </item>
    <item>
      <title>[LINUX] 리눅스 crontab(크론탭) 특정 시간 설정 방법 (batch time setting)</title>
      <link>https://zxchsr.tistory.com/317</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;LINUX 리눅스 crontab(크론탭) 특정 시간 설정 방법 (batch time setting)&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 주기설정&lt;/h2&gt;
&lt;pre id=&quot;code_1663117066752&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Example of job definition:
# .---------------- minute (0 - 59)
# |   .------------- hour (0 - 23)
# |   |   .---------- day of month (1 - 31)
# |   |   |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |   |   |  |   .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |   |   |  |   |
# *   *   *  *   *   user-name command to be executed
# 분  시  일 월  요일 명령어 또는 스크립트&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;분 (minute)&lt;/td&gt;
&lt;td&gt;0-59, * 설정 시 1분 단위로 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;시 (hour)&lt;/td&gt;
&lt;td&gt;0-23, * 설정 시 매시간 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;일 (day of month)&lt;/td&gt;
&lt;td&gt;1-31, * 설정 시 매일 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;월 (month)&lt;/td&gt;
&lt;td&gt;1-12, *&amp;nbsp;설정&amp;nbsp;시&amp;nbsp;매달&amp;nbsp;실행&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;요일 (day of week)&lt;/td&gt;
&lt;td&gt;0-7, * 설정 시 월요일부터 일요일까지 매일 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;명령어 또는 스크립트 (command)&lt;/td&gt;
&lt;td&gt;실행할&amp;nbsp;명령어&amp;nbsp;또는&amp;nbsp;프로그램&amp;nbsp;등&amp;nbsp;설정&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;/li&gt;
&lt;li&gt;특정 시간에만 실행&lt;/li&gt;
&lt;li&gt;특정 시간 범위 내 매 시간마다 실행&lt;/li&gt;
&lt;li&gt;특정 요일 제외한 특정 시간 범위 내 매 시간마다 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1663117221952&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;0 */2 * * * /home/test_page.php
# 2시간마다 실행

00 10,14 * * * /home/test_page.php
# 오전 10시와 오후 2시마다 실행

00 09-18 * * * /home/test_page.php
# 근무시간(오전 9시 ~ 오후 6시) 내 매 시간마다 실행
# 특정 페이지 호출 작업이 근무 시간 내에만 실행되도록 설정하기 위해 시간을 09-18으로 표현하여 사용

00 09-18 * * 1-5 /home/test_page.php
# 주말을 제외한 근무 시간 내 매 시간마다 실행
# 특정 페이지 호출 작업을 주중 근무일 및 근무 시간 내에만 실행되도록 하기 위해 시간은 09-18으로 표현하고, 1-5로 요일 표현하여 사용&lt;/code&gt;&lt;/pre&gt;</description>
      <category>LINUX</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/317</guid>
      <comments>https://zxchsr.tistory.com/317#entry317comment</comments>
      <pubDate>Wed, 14 Sep 2022 10:02:39 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] PHPExcel 엑셀 스타일 (정렬, 틀고정) 자주 쓰는 함수</title>
      <link>https://zxchsr.tistory.com/316</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ PHP PHPExcel 엑셀 스타일 (정렬, 틀고정)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀 다운로드 기능 개발 시 종종 사용하는 스타일 정리&lt;br /&gt;Example.&amp;nbsp;타이틀영역&amp;nbsp;가운데&amp;nbsp;정렬이나&amp;nbsp;특정&amp;nbsp;행&amp;nbsp;틀&amp;nbsp;고정&amp;nbsp;등&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ PHPExcel 자주 쓰는 함수&lt;/h2&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;/ul&gt;
&lt;pre id=&quot;code_1659665271989&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$sheet-&amp;gt;getColumnDimension('A')-&amp;gt;setWidth(30);&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;타이틀 스타일 (A1부터 C1까지 텍스트 가운데 정렬, 폰트 진하게)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1659665339442&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;getStyle('A1:C1')-&amp;gt;applyFromArray(
    array(
        'alignment' =&amp;gt; array(
            'horizontal' =&amp;gt; PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
            'vertical' =&amp;gt; PHPExcel_Style_Alignment::VERTICAL_CENTER
        )
        ,'font' =&amp;gt; array( 'bold' =&amp;gt; true )
    )
);&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;틀고정 (A1행까지 고정)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1659665407990&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;freezePane('A2');&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;셀 배경색 채우기 (단색/색상지정)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1659665550075&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 셀 배경색 채우기 (단색)
$excel-&amp;gt;getActiveSheet()-&amp;gt;getStyle(&quot;A1:C1&quot;)-&amp;gt;getFill()-&amp;gt;setFillType(PHPExcel_Style_Fill::FILL_SOLID);

// 셀 배경색 채우기 (색상지정)
$excel-&amp;gt;getActiveSheet()-&amp;gt;getStyle(&quot;A1:C1&quot;)-&amp;gt;getFill()-&amp;gt;getStartColor()-&amp;gt;setRGB('000000');&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;셀 테두리 지정 (바깥테두리 진하게)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1659665617241&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$excel-&amp;gt;getActiveSheet()-&amp;gt;getStyle(&quot;A1:C1&quot;)-&amp;gt;getBorders()-&amp;gt;getOutline()-&amp;gt;setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 행 높이 지정 (첫번째행 높이 30)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1659665685941&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$excel-&amp;gt;getActiveSheet()-&amp;gt;getRowDimension(1)-&amp;gt;setRowHeight(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;&amp;nbsp;&lt;/p&gt;</description>
      <category>PHP</category>
      <category>php</category>
      <category>php excel style</category>
      <category>php PHPExcel</category>
      <category>php 엑셀 스타일</category>
      <category>phpexcel</category>
      <category>PHPExcel style</category>
      <category>PHPExcel 배경색</category>
      <category>PHPExcel 스타일</category>
      <category>PHPExcel 정렬</category>
      <category>PHPExcel 틀고정</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/316</guid>
      <comments>https://zxchsr.tistory.com/316#entry316comment</comments>
      <pubDate>Fri, 5 Aug 2022 11:16:27 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] PHPExcel 엑셀 다운로드 기능</title>
      <link>https://zxchsr.tistory.com/315</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ PHP PHPExcel 엑셀 다운로드 기능&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 데이터를 엑셀 파일로 다운받을 수 있음&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1659665047303&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php

header(&quot;Content-Type:text/html;charset=utf-8&quot;);
require_once $_SERVER['DOCUMENT_ROOT'].&quot;PHPExcel/Classes/PHPExcel.php&quot;;

ini_set(&quot;memory_limit&quot; , -1);
@set_time_limit(0);

// EXCEL START
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel-&amp;gt;getActiveSheet();

// 타이틀 셋팅
$objPHPExcel-&amp;gt; setActiveSheetIndex(0)
    -&amp;gt; setCellValue(&quot;A1&quot;, &quot;id&quot;)
    -&amp;gt; setCellValue(&quot;B1&quot;, &quot;title&quot;)
    -&amp;gt; setCellValue(&quot;C1&quot;, &amp;ldquo;description)
;

// 셀 가로크기 지정
$sheet-&amp;gt;getColumnDimension('A')-&amp;gt;setWidth(30);
$sheet-&amp;gt;getColumnDimension('B')-&amp;gt;setWidth(30);
$sheet-&amp;gt;getColumnDimension('C')-&amp;gt;setWidth(15);

// 타이틀 스타일 (중앙정렬,B)
$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;getStyle('A1:C1')-&amp;gt;applyFromArray(
    array(
        'alignment' =&amp;gt; array(
            'horizontal' =&amp;gt; PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
            'vertical' =&amp;gt; PHPExcel_Style_Alignment::VERTICAL_CENTER
        )
        ,'font' =&amp;gt; array( 'bold' =&amp;gt; true )
    )
);

// 틀 고정 (A1행까지 고정)
$objPHPExcel-&amp;gt;getActiveSheet()-&amp;gt;freezePane('A2');

for( $i=1; $i&amp;lt;=3; $i++ ){    
    $objPHPExcel-&amp;gt;setActiveSheetIndex(0)
        -&amp;gt; setCellValue(&quot;A&quot;.($i+1), &amp;lsquo;id&amp;rsquo;.$i)
        -&amp;gt; setCellValue(&quot;B&quot;.($i+1), &amp;lsquo;title&amp;rsquo;.$i)
        -&amp;gt; setCellValue(&quot;C&quot;.($i+1), &amp;lsquo;desc&amp;rsquo;.$i)
    ;
}

// 시트 이름 설정
$sheet-&amp;gt;setTitle(&amp;ldquo;Sample Sheet&amp;rdquo;);

// EXCEL 파일명
$excel_name = &amp;ldquo;Sample.xls&amp;rdquo;;

// EXCEL OUTPUT
header( &quot;Content-type: application/vnd.ms-excel; charset=utf-8&quot;);
header( &quot;Content-type: application/x-msexcel; charset=utf-8&quot;);
header('Content-Disposition: attachment;filename=&quot;' . $excel_name . '&quot;');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, &quot;Excel5&quot;);
$objWriter-&amp;gt;save('php://output');

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>php</category>
      <category>php excel</category>
      <category>php PHPExcel</category>
      <category>PHP 엑셀</category>
      <category>phpexcel</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/315</guid>
      <comments>https://zxchsr.tistory.com/315#entry315comment</comments>
      <pubDate>Fri, 5 Aug 2022 11:04:57 +0900</pubDate>
    </item>
    <item>
      <title>[Google] Oauth 로그인 인증 scope 여러개 설정 방법</title>
      <link>https://zxchsr.tistory.com/314</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;Google&amp;nbsp;Oauth&amp;nbsp;로그인&amp;nbsp;인증&amp;nbsp;scope&amp;nbsp;여러개&amp;nbsp;설정&amp;nbsp;방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;액세스&amp;nbsp;토큰(access&amp;nbsp;token)&amp;nbsp;발급을&amp;nbsp;위해서는&amp;nbsp; &lt;br /&gt;scope,&amp;nbsp;response_type,&amp;nbsp;redirect_uri,&amp;nbsp;client_id&amp;nbsp;이&amp;nbsp;4가지는&amp;nbsp;반드시&amp;nbsp;설정해야&amp;nbsp;함 &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;중&amp;nbsp;scope&amp;nbsp;은&amp;nbsp;구글에서&amp;nbsp;제공해주는&amp;nbsp;인증받은&amp;nbsp;사용자의&amp;nbsp;정보&amp;nbsp;범위로 &lt;br /&gt;uri&amp;nbsp;를&amp;nbsp;단일&amp;nbsp;또는&amp;nbsp;다중으로&amp;nbsp;설정해주면&amp;nbsp;됨 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;이&amp;nbsp;때&amp;nbsp;다중으로&amp;nbsp;설정하기&amp;nbsp;위해서는&amp;nbsp;배열을&amp;nbsp;사용하는&amp;nbsp;것이&amp;nbsp;아니라 &lt;/b&gt;&lt;br /&gt;&lt;b&gt;두&amp;nbsp;uri&amp;nbsp;사이에&amp;nbsp;공백&amp;nbsp;'&amp;nbsp;'&amp;nbsp;처리로&amp;nbsp;구분하여&amp;nbsp;기재해주면&amp;nbsp;됨&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;예시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.googleapis.com/auth/content&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.googleapis.com/auth/content&lt;/a&gt; 와&amp;nbsp;analytics.readonly&amp;nbsp;를&amp;nbsp;사용하고자&amp;nbsp;할&amp;nbsp;경우&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1654850621135&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;scope=https://www.googleapis.com/auth/content https://www.googleapis.com/auth/analytics.readonly&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Tips</category>
      <category>Google Oauth</category>
      <category>Google Oauth scope</category>
      <category>Google Oauth scope 다중</category>
      <category>Google Oauth scope 설정</category>
      <category>Google Oauth scope 여러개</category>
      <category>Google Oauth 로그인</category>
      <category>Google Oauth 인증</category>
      <category>Google scope</category>
      <category>Google scope 여러개</category>
      <category>Oauth scope</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/314</guid>
      <comments>https://zxchsr.tistory.com/314#entry314comment</comments>
      <pubDate>Fri, 10 Jun 2022 17:42:01 +0900</pubDate>
    </item>
    <item>
      <title>[MySql] 특정 구분자 기준 문자열 자르기 SUBSTRING_INDEX()</title>
      <link>https://zxchsr.tistory.com/313</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;MySql&amp;nbsp;특정&amp;nbsp;구분자&amp;nbsp;기준&amp;nbsp;문자열&amp;nbsp;자르기&amp;nbsp;SUBSTRING_INDEX()&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JAVA의&amp;nbsp;split&amp;nbsp;함수&amp;nbsp;또는&amp;nbsp;PHP의&amp;nbsp;explode&amp;nbsp;함수와&amp;nbsp;같이&amp;nbsp;특정&amp;nbsp;문자&amp;nbsp;기준으로&amp;nbsp;문자열을&amp;nbsp;자르는&amp;nbsp;기능&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;구문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;SUBSTRING_INDEX(string $string, string $separator, number $separator_index)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;구분자로&amp;nbsp;설정하여&amp;nbsp;&lt;b&gt;띄어쓰기&amp;nbsp;기준으로&amp;nbsp;n번째&amp;nbsp;문자열&amp;nbsp;가져오기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1654217524268&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Hello
SELECT SUBSTRING_INDEX('Hello World!', ' ', 1);		

# Hello World!
SELECT SUBSTRING_INDEX('Hello World!', ' ', 2);		

# World!
SELECT SUBSTRING_INDEX('Hello World!', ' ', -1);&lt;/code&gt;&lt;/pre&gt;</description>
      <category>MySql</category>
      <category>mysql substring</category>
      <category>mysql SUBSTRING_INDEX</category>
      <category>MySQL 띄어쓰기로 나누기</category>
      <category>mysql 문자열</category>
      <category>MySQL 문자열 나누기</category>
      <category>mysql 문자열 자르기</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/313</guid>
      <comments>https://zxchsr.tistory.com/313#entry313comment</comments>
      <pubDate>Fri, 3 Jun 2022 09:54:04 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] 날짜 요일 구하기 date()</title>
      <link>https://zxchsr.tistory.com/312</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;PHP 날짜 요일 구하기 date()&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;date()&amp;nbsp;의&amp;nbsp;포맷&amp;nbsp;문자열&amp;nbsp;'w'을&amp;nbsp;사용하여&amp;nbsp;날짜&amp;nbsp;요일&amp;nbsp;정보를&amp;nbsp;구할&amp;nbsp;수&amp;nbsp;있음 &lt;br /&gt;'w'&amp;nbsp;포맷&amp;nbsp;문자열&amp;nbsp;사용&amp;nbsp;시&amp;nbsp;해당&amp;nbsp;날짜에&amp;nbsp;대한&amp;nbsp;0~6까지의&amp;nbsp;숫자값을&amp;nbsp;반환해줌 &lt;br /&gt;이&amp;nbsp;때&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;0~6은&amp;nbsp;일~토요일을&amp;nbsp;나타냄&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;사용법&lt;/h2&gt;
&lt;pre id=&quot;code_1653978077423&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$yoil = array(&quot;일&quot;,&quot;월&quot;,&quot;화&quot;,&quot;수&quot;,&quot;목&quot;,&quot;금&quot;,&quot;토&quot;);
$target_yoil = $yoil[date('w', strtotime(date('Y-m-d')))];	// 현재 2022-05-31 (화요일)
echo $target_yoil;	// 화&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>php date</category>
      <category>php 날짜</category>
      <category>php 요일</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/312</guid>
      <comments>https://zxchsr.tistory.com/312#entry312comment</comments>
      <pubDate>Tue, 31 May 2022 15:22:43 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] PDO(PHP Data Objects) 정의 및 사용법, mssql 연결</title>
      <link>https://zxchsr.tistory.com/311</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;PHP PDO(PHP Data Objects) 정의 및 사용법, mssql 연결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP&amp;nbsp;내&amp;nbsp;데이터베이스(DB)에&amp;nbsp;액세스할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp; &lt;br /&gt;기존&amp;nbsp;mysql&amp;nbsp;연결함수(mysql&amp;nbsp;이나&amp;nbsp;mysqli)&amp;nbsp;보다&amp;nbsp;기능&amp;nbsp;향상된&amp;nbsp;객체지향적&amp;nbsp;DB&amp;nbsp;연결&amp;nbsp;방식&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;연결&amp;nbsp;(mssql)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1653527190412&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;try {
    $db = new PDO('mssql:host=sqlserver;dbname=database', 'username', 'password');
    //$db = new PDO('dblib:host=sqlserver;dbname=database', 'username', 'password');

} catch (PDOException $e) {
    echo $e-&amp;gt;getMessage();
}&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;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;쿼리&amp;nbsp;실행&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1653527208405&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$query = $db-&amp;gt;prepare('p_sel_all_termlength ?');
$query-&amp;gt;execute();

// 모든 row 배열 저장
$result = $query-&amp;gt;fetchAll();		

// row 별 루프
while( $resultRow = $query-&amp;gt;fetch() ){
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>pdo</category>
      <category>PHP Data Objects</category>
      <category>PHP db연결</category>
      <category>php mysql</category>
      <category>php mysqli</category>
      <category>php pdo</category>
      <category>PHP PDO DB 연결</category>
      <category>PHP PDO mssql</category>
      <category>PHP PDO mysql</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/311</guid>
      <comments>https://zxchsr.tistory.com/311#entry311comment</comments>
      <pubDate>Thu, 26 May 2022 10:08:08 +0900</pubDate>
    </item>
    <item>
      <title>[JQuery] 숫자 0부터 특정수까지 증가하는 애니메이션 넣기</title>
      <link>https://zxchsr.tistory.com/310</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;JQuery&amp;nbsp;숫자&amp;nbsp;0부터&amp;nbsp;특정수까지&amp;nbsp;증가하는&amp;nbsp;애니메이션&amp;nbsp;넣기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를&amp;nbsp;들어&amp;nbsp;특정&amp;nbsp;수&amp;nbsp;100&amp;nbsp;이라는&amp;nbsp;숫자를&amp;nbsp;나타낼&amp;nbsp;때 &lt;br /&gt;0부터&amp;nbsp;100까지&amp;nbsp;숫자가&amp;nbsp;올라가는&amp;nbsp;모션을&amp;nbsp;넣어주고&amp;nbsp;싶을&amp;nbsp;때&amp;nbsp;사용 &lt;br /&gt;(따로&amp;nbsp;라이브러리&amp;nbsp;js&amp;nbsp;필요없음)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;사용법&lt;/h2&gt;
&lt;pre id=&quot;code_1652839858766&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;span class=&quot;target_cnt&quot;&amp;gt;&amp;lt;/span&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
    // $({ val : 시작숫자 }).animate({ val : 종료숫자 }, {
    $({ val : 0 }).animate({ val : 100 }, {
        duration: 1500,
        step: function() {
            var num = numberWithCommas(Math.floor(this.val));
            $(&quot;.target_cnt&quot;).text(num);
        },
        complete: function() {
            var num = numberWithCommas(Math.floor(this.val));
            $(&quot;.target_cnt&quot;).text(num);
        }
    });

    function numberWithCommas(x) {
        return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, &quot;,&quot;);
    }
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;나타내고&amp;nbsp;싶다면&amp;nbsp;toFixed()&amp;nbsp;사용하여&amp;nbsp;나타내고&amp;nbsp;싶은&amp;nbsp;자리수까지&amp;nbsp;나타낼&amp;nbsp;수&amp;nbsp;있음&lt;/p&gt;
&lt;pre id=&quot;code_1652839893690&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var num = numberWithCommas(this.val.toFixed(1));&lt;/code&gt;&lt;/pre&gt;</description>
      <category>JQuery</category>
      <category>Javascript 숫자 애니메이션</category>
      <category>Javascript 숫자 증가</category>
      <category>Javascript 숫자증가</category>
      <category>Javascript 애니메이션</category>
      <category>JQuery 숫자</category>
      <category>JQuery 숫자 애니메이션</category>
      <category>JQuery 숫자증가</category>
      <category>JQuery 애니메이션</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/310</guid>
      <comments>https://zxchsr.tistory.com/310#entry310comment</comments>
      <pubDate>Wed, 18 May 2022 11:12:32 +0900</pubDate>
    </item>
    <item>
      <title>[HTML] 텍스트 깜빡임 효과 CSS</title>
      <link>https://zxchsr.tistory.com/309</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ HTML 텍스트 깜빡임 효과 CSS&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSS만으로&amp;nbsp;HTML의&amp;nbsp;&lt;u&gt;텍스트&amp;nbsp;또는&amp;nbsp;특정&amp;nbsp;요소에&amp;nbsp;대해&amp;nbsp;깜빡이는&amp;nbsp;효과&lt;/u&gt;를&amp;nbsp;만드는&amp;nbsp;방법&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;사용법&lt;/h2&gt;
&lt;pre id=&quot;code_1652753941253&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style&amp;gt;
/* 텍스트 깜빡임 */
@keyframes blink-effect { 50% { opacity: 0; } } 
.blink { 
    animation: blink-effect 1s step-end infinite; 
    /* 
        animation-name: blink-effect; 
        animation-duration: 1s; 
        animation-iteration-count:infinite; 
        animation-timing-function:step-end; 
    */ 
}
&amp;lt;/style&amp;gt;

&amp;lt;p class=&quot;blink&quot;&amp;gt;텍스트 깜빡이는 효과&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>HTML</category>
      <category>CSS 깜빡이는 효과</category>
      <category>CSS 깜빡임</category>
      <category>HTML TEXT 깜빡임</category>
      <category>HTML 깜빡이는 효과</category>
      <category>HTML 태그 깜빡임</category>
      <category>html 텍스트</category>
      <category>HTML 텍스트 CSS</category>
      <category>HTML 텍스트 깜빡임</category>
      <category>HTML 텍스트 반짝</category>
      <category>HTML 텍스트 효과</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/309</guid>
      <comments>https://zxchsr.tistory.com/309#entry309comment</comments>
      <pubDate>Tue, 17 May 2022 11:21:13 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] 특정 원하는 길이만큼 문자열 자르기 substr()</title>
      <link>https://zxchsr.tistory.com/308</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Javascript 특정 원하는 길이만큼 문자열 자르기 substr()&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 문법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;str.substr(start&amp;nbsp;,&amp;nbsp;length)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1652752161166&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;str.substr(start , length);&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;사용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*start만&amp;nbsp;입력&amp;nbsp;시&amp;nbsp;start&amp;nbsp;부터&amp;nbsp;마지막&amp;nbsp;문자열까지&amp;nbsp;리턴함&lt;/p&gt;
&lt;pre id=&quot;code_1652752201930&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var str = 'HelloWorldJavaScript';

console.log(str.substr(5));		// WorldJavascript
console.log(str.substr(0, 5));		// Hello
console.log(str.substr(0, 10));		// HelloWorld&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Javascript</category>
      <category>javascript substr</category>
      <category>javascript 문자열</category>
      <category>javascript 문자열 길이</category>
      <category>javascript 문자열 자르기</category>
      <category>JQuery substr</category>
      <category>jquery 문자열</category>
      <category>JQuery 문자열 길이</category>
      <category>JQuery 문자열 자르기</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/308</guid>
      <comments>https://zxchsr.tistory.com/308#entry308comment</comments>
      <pubDate>Tue, 17 May 2022 10:51:29 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] 숫자,영문 조합하여 랜덤 출력하는 함수</title>
      <link>https://zxchsr.tistory.com/307</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;PHP 숫자,영문 조합하여 랜덤 출력하는 함수&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자,&amp;nbsp;영문을&amp;nbsp;혼합하여&amp;nbsp;원하는&amp;nbsp;길이만큼&amp;nbsp;랜덤으로&amp;nbsp;문자열을&amp;nbsp;출력하는&amp;nbsp;함수&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 사용법&lt;/h2&gt;
&lt;pre id=&quot;code_1652420811801&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo getRandStr(10);	// NCoMdrSPmY

// 숫자,영문 랜덤 조합
function getRandStr($length = 8) { 
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
    $charactersLength = strlen($characters); $randomString = ''; 
    for( $i=0; $i&amp;lt;$length; $i++ ){ 
        $randomString .= $characters[rand(0, $charactersLength - 1)]; 
    } 
    return $randomString; 
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>PHP</category>
      <category>php 랜덤생성</category>
      <category>php 문자열 랜덤</category>
      <category>php 숫자 랜덤</category>
      <category>php 영문 랜덤</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/307</guid>
      <comments>https://zxchsr.tistory.com/307#entry307comment</comments>
      <pubDate>Fri, 13 May 2022 15:00:28 +0900</pubDate>
    </item>
    <item>
      <title>[Javascript] FullCalendar(풀 캘린더) 사용 시 Google Calendar API (구글 캘린더 API) 연동하기</title>
      <link>https://zxchsr.tistory.com/306</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;Javascript&amp;nbsp;FullCalendar(풀&amp;nbsp;캘린더)&amp;nbsp;사용&amp;nbsp;시&amp;nbsp;Google&amp;nbsp;Calendar&amp;nbsp;API&amp;nbsp;(구글&amp;nbsp;캘린더&amp;nbsp;API)&amp;nbsp;연동하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fullcalendar&amp;nbsp;(풀캘린더)&amp;nbsp;이미&amp;nbsp;설정된&amp;nbsp;일정&amp;nbsp;외&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;구글 캘린더 API를 이용해 공휴일 추가하는&amp;nbsp;방법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctWGMt/btrBSFSqKNx/8t6fqxghS9kDZY533IVkJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctWGMt/btrBSFSqKNx/8t6fqxghS9kDZY533IVkJk/img.png&quot; data-alt=&quot;Google Calendar API (구글 캘린더 API) - 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctWGMt/btrBSFSqKNx/8t6fqxghS9kDZY533IVkJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctWGMt%2FbtrBSFSqKNx%2F8t6fqxghS9kDZY533IVkJk%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;542&quot; height=&quot;206&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;206&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Google Calendar API (구글 캘린더 API) - 캡처 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;Google&amp;nbsp;Calendar&amp;nbsp;API&amp;nbsp;키&amp;nbsp;발급&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;구글&amp;nbsp;계정으로&amp;nbsp;로그인&amp;nbsp;후&amp;nbsp;Google&amp;nbsp;Calendar&amp;nbsp;API&amp;nbsp;(구글&amp;nbsp;캘린더&amp;nbsp;API)&amp;nbsp;&quot;ENABLE&quot;&amp;nbsp;사용하게&amp;nbsp;설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://console.developers.google.com&quot;&gt;https://console.developers.google.com&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1652247671064&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Google Cloud Platform&quot; data-og-description=&quot;하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.&quot; data-og-host=&quot;accounts.google.com&quot; data-og-source-url=&quot;https://console.developers.google.com&quot; data-og-url=&quot;https://accounts.google.com/ServiceLogin?service=cloudconsole&amp;amp;passive=1209600&amp;amp;osid=1&amp;amp;continue=https://console.cloud.google.com/apis/dashboard&amp;amp;followup=https://console.cloud.google.com/apis/dashboard&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://console.developers.google.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://console.developers.google.com&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;Google Cloud Platform&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;accounts.google.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctWGMt/btrBSFSqKNx/8t6fqxghS9kDZY533IVkJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctWGMt/btrBSFSqKNx/8t6fqxghS9kDZY533IVkJk/img.png&quot; data-alt=&quot;Google Calendar API (구글 캘린더 API) - 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctWGMt/btrBSFSqKNx/8t6fqxghS9kDZY533IVkJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctWGMt%2FbtrBSFSqKNx%2F8t6fqxghS9kDZY533IVkJk%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;542&quot; height=&quot;206&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;206&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Google Calendar API (구글 캘린더 API) - 캡처 이미지&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;2.&amp;nbsp;사용자&amp;nbsp;인증&amp;nbsp;정보&amp;nbsp;-&amp;nbsp;사용자&amp;nbsp;인증&amp;nbsp;정보&amp;nbsp;만들기&amp;nbsp;-&amp;nbsp;API&amp;nbsp;키&amp;nbsp;생성함&amp;nbsp;(Google&amp;nbsp;API&amp;nbsp;KEY)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k9PHp/btrBSFStn1F/qRKApoiKT7wOIYZysiIrdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k9PHp/btrBSFStn1F/qRKApoiKT7wOIYZysiIrdK/img.png&quot; data-alt=&quot;API Key - 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k9PHp/btrBSFStn1F/qRKApoiKT7wOIYZysiIrdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk9PHp%2FbtrBSFStn1F%2FqRKApoiKT7wOIYZysiIrdK%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;577&quot; height=&quot;109&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;API Key - 캡처 이미지&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.&amp;nbsp;구글&amp;nbsp;캘린더&amp;nbsp;-&amp;nbsp;내&amp;nbsp;캘린더&amp;nbsp;-&amp;nbsp;사용한&amp;nbsp;캘린더의&amp;nbsp;&quot;설정&amp;nbsp;및&amp;nbsp;공유&amp;nbsp;(or&amp;nbsp;Setting)&quot;&amp;nbsp;-&amp;nbsp;캘린더&amp;nbsp;ID&amp;nbsp;확인&amp;nbsp;(Google&amp;nbsp;Calendar&amp;nbsp;ID)&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;1009&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mWwhg/btrBN3UuwcN/BeeXs7ZJgV9i9Lx8iB6Gy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mWwhg/btrBN3UuwcN/BeeXs7ZJgV9i9Lx8iB6Gy1/img.png&quot; data-alt=&quot;구글 캘린더 ID 체크 - 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mWwhg/btrBN3UuwcN/BeeXs7ZJgV9i9Lx8iB6Gy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmWwhg%2FbtrBN3UuwcN%2FBeeXs7ZJgV9i9Lx8iB6Gy1%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;1009&quot; height=&quot;376&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1009&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;구글 캘린더 ID 체크 - 캡처 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;Fullcalendar&amp;nbsp;(풀캘린더)에&amp;nbsp;구글&amp;nbsp;캘린더&amp;nbsp;일정&amp;nbsp;추가&lt;/h2&gt;
&lt;pre id=&quot;code_1652247411789&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
    googleCalendarApiKey : &quot;Google API KEY&quot;,
    eventSources :[ 
        {
            googleCalendarId : 'Google Calendar ID'
            , color: 'white'   // an option!
            , textColor: 'red' // an option!
        } 
    ],
    ....&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 결과&lt;/h2&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;1187&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nACqZ/btrBSHJxTBv/91mCMzOeOybFImhy1RiI51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nACqZ/btrBSHJxTBv/91mCMzOeOybFImhy1RiI51/img.png&quot; data-alt=&quot;실제 구현 결과 - 캡처 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nACqZ/btrBSHJxTBv/91mCMzOeOybFImhy1RiI51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnACqZ%2FbtrBSHJxTBv%2F91mCMzOeOybFImhy1RiI51%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;1187&quot; height=&quot;722&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1187&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실제 구현 결과 - 캡처 이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;옵션 참고&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://fullcalendar.io/docs/event-source-object&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://fullcalendar.io/docs/event-source-object&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1652247695119&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Event Source Object - Docs
    
    
      
    
  
  | FullCalendar&quot; data-og-description=&quot;An &amp;ldquo;event source&amp;rdquo; is anything that provides FullCalendar with data about events. It can be a simple array, an event-generating function that you define, a URL to a json feed, or a Google Calendar feed. Event Objects can have &amp;ldquo;options&amp;rdquo; associated wi&quot; data-og-host=&quot;fullcalendar.io&quot; data-og-source-url=&quot;https://fullcalendar.io/docs/event-source-object&quot; data-og-url=&quot;https://fullcalendar.io/docs/event-source-object&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://fullcalendar.io/docs/event-source-object&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://fullcalendar.io/docs/event-source-object&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;Event Source Object - Docs | FullCalendar&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;An &amp;ldquo;event source&amp;rdquo; is anything that provides FullCalendar with data about events. It can be a simple array, an event-generating function that you define, a URL to a json feed, or a Google Calendar feed. Event Objects can have &amp;ldquo;options&amp;rdquo; associated wi&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;fullcalendar.io&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;</description>
      <category>Javascript</category>
      <category>FullCalendar Google Calendar API</category>
      <category>FullCalendar Google 캘린더 연동</category>
      <category>FullCalendar 공휴일</category>
      <category>google calendar api</category>
      <category>Javascript FullCalendar</category>
      <category>Javascript Google Calendar API</category>
      <category>Javascript 구글 API</category>
      <category>공휴일 API</category>
      <category>구글 캘린더 api</category>
      <category>풀캘린더 공휴일</category>
      <author>chsr</author>
      <guid isPermaLink="true">https://zxchsr.tistory.com/306</guid>
      <comments>https://zxchsr.tistory.com/306#entry306comment</comments>
      <pubDate>Wed, 11 May 2022 14:43:43 +0900</pubDate>
    </item>
  </channel>
</rss>